Syllabus of lectures:
* Introduction to design of applications for mobile devices, technology overview and their share on mobile devices, development environments. Mobile platform architectures, target devices, relation to other technologies.
* Basic principles used during mobile platform design, targeted on devices with limited hardware abilities. Development and life-cycle of mobile applications.
* Over-the-Air Provisioning (OTA) architecture. Deployment of applications via Internet.
* Universal frameworks used for multi-platform application development independently on mobile operating system.
* Platform-independent inter-application communication - Web services, AJAX, CORS.
* Technologies used for HTML5 and JavaScript based mobile application development - HTML5, CSS3, ...
* Multi-threaded and worker-based approach and related problems.
* Working with forms, graphics and sound.
* Extension APIs: API and its version detection. API examples: messaging, multimedia support, geolocation, orientation, examples of some other APIs
* File access, JSON and XML processing.
* Communication with other devices - network communication, Bluetooth.
* Application signing principles, sensitive APIs for different technologies. Limitations of unsigned applications depending on target platform.
* Debugging, code optimization, (partial) obfuscation as a protection method against reverse engineering. Automatic application startup based on external events, timer or during mobile OS startup.
The computer labs focus on obtaining of practical experience in the design of applications for mobile devices. Students will implement simple applications during the labs, following the topics addressed during lectures.
Syllabus of computer exercises:
* Basic work with developmnent environment, installation of plugins required for mobile development. Execution of developed code in emulator/simulator or on mobile devices.
* Record processing, serialization into binary (or string) format, internal storage and startup data for next execution.
* Basic GUI elements (high-level).
* HTTP, websockets, server-sent events and how to use them.
* Visual and Application Properties, especially fine-tuning the application with their use.
* Working with Canvas, keypress and touch events.
* Development of a simple 2D game.
* Working with sound and multimedia.
* Using features specific for mobile platforms (camera, orientation, geolocation).
* File access.
* Communication with a server using JSON.
Project requirements:
The students will be assigned a project, which they will implement. The time required to finish the project is approximately 21 hours. The project topic will be a mobile application or game, observing the formal requirements and using at least 3 advanced technologies/APIs covered in lectures and labs.
* Introduction to design of applications for mobile devices, technology overview and their share on mobile devices, development environments. Mobile platform architectures, target devices, relation to other technologies.
* Basic principles used during mobile platform design, targeted on devices with limited hardware abilities. Development and life-cycle of mobile applications.
* Over-the-Air Provisioning (OTA) architecture. Deployment of applications via Internet.
* Universal frameworks used for multi-platform application development independently on mobile operating system.
* Platform-independent inter-application communication - Web services, AJAX, CORS.
* Technologies used for HTML5 and JavaScript based mobile application development - HTML5, CSS3, ...
* Multi-threaded and worker-based approach and related problems.
* Working with forms, graphics and sound.
* Extension APIs: API and its version detection. API examples: messaging, multimedia support, geolocation, orientation, examples of some other APIs
* File access, JSON and XML processing.
* Communication with other devices - network communication, Bluetooth.
* Application signing principles, sensitive APIs for different technologies. Limitations of unsigned applications depending on target platform.
* Debugging, code optimization, (partial) obfuscation as a protection method against reverse engineering. Automatic application startup based on external events, timer or during mobile OS startup.
The computer labs focus on obtaining of practical experience in the design of applications for mobile devices. Students will implement simple applications during the labs, following the topics addressed during lectures.
Syllabus of computer exercises:
* Basic work with developmnent environment, installation of plugins required for mobile development. Execution of developed code in emulator/simulator or on mobile devices.
* Record processing, serialization into binary (or string) format, internal storage and startup data for next execution.
* Basic GUI elements (high-level).
* HTTP, websockets, server-sent events and how to use them.
* Visual and Application Properties, especially fine-tuning the application with their use.
* Working with Canvas, keypress and touch events.
* Development of a simple 2D game.
* Working with sound and multimedia.
* Using features specific for mobile platforms (camera, orientation, geolocation).
* File access.
* Communication with a server using JSON.
Project requirements:
The students will be assigned a project, which they will implement. The time required to finish the project is approximately 21 hours. The project topic will be a mobile application or game, observing the formal requirements and using at least 3 advanced technologies/APIs covered in lectures and labs.