Skip to main content
Skip header

Design of Applications for Mobile Devices I

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-2019/03
Number of ECTS Credits Allocated4 ECTS credits
Type of Course Unit *Compulsory
Level of Course Unit *First Cycle
Year of Study *Second Year
Semester when the Course Unit is deliveredSummer Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech
Prerequisites and Co-Requisites Course succeeds to compulsory courses of previous semester
Name of Lecturer(s)Personal IDName
MOR03Ing. Pavel Moravec, Ph.D.
Summary
The applications developed for mobile devices are becoming more and more common presently. In most cases these applications are targeted for mobile phones and tablets. The most widespread technologies which allow us to develop such applications are based on Java programming language or the combination of HTML, CSS and JavaScript.

Because the devices have a reduced functionality, limited processing power and limited (but usable) network access, we usually do not develop in a desktop-based version of the platform, but with a subset of such platform, extended with parts, containing classes with reduced requirements, limited or mobile device specific functionality.
Learning Outcomes of the Course Unit
The subject aims to introduce students to the basics of mobile development.

After successful completion of the subject the student will be able to
1. Distinguish whether the used platform is suitable for given application
2. Analyze, design and implement simple mobile application
3. Compare the efficiency of mobile application with a desktop-based one
4. Make use of basic set of extension APIs and their use
5. Decide in which manner is the application going to be distributed to the target device and discriminate if the application needs to be digitally signed or not.
Course Contents
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 security model: Virtual machine security, security of processed data, especially with standardized protocols: SSL, TLS a and X.509-based techniques.
* 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.
Recommended or Required Reading
Required Reading:
A. Kosmaczewski: Mobile JavaScript Application Development, O'Reilly Media, 2012, ISBN: 978-1-4493-2785-9
J. Reid: JQuery Mobile, O'Reilly Media, Inc., 2011, 9781449306687.
P. Retting: Professional HTML5 Mobile Game Development, John Wiley & Sons (14 Sep 2012), ISBN: 978-1118301326
D. Harkey, S. Appajodu, M., Wireless Java Programming for Enterprise Applications: Mobile Devices Go Corporate, John Wiley & Sons, ISBN 0471218782.
A. Kosmaczewski: Mobile JavaScript Application Development, O'Reilly Media, 2012, ISBN: 978-1-4493-2785-9
J. Reid: JQuery Mobile, O'Reilly Media, Inc., 2011, 9781449306687.
P. Retting: Professional HTML5 Mobile Game Development, John Wiley & Sons (14 Sep 2012), ISBN: 978-1118301326
D. Harkey, S. Appajodu, M., Wireless Java Programming for Enterprise Applications: Mobile Devices Go Corporate, John Wiley & Sons, ISBN 0471218782.
Recommended Reading:
J. M. Wargo: PhoneGap Essentials: Building Cross-platform Mobile Apps, Addison-Wesley Professional, 2012, ISBN 9780321814296.
J. Munro: 20 Recipes for Programming PhoneGap, O'Reilly Media, ISBN: 978-1-4493-1954-0
A. Kosmaczewski: Sencha Touch 2 Up and Running, O'Reilly Media; 1 edition (27 Feb 2013), ISBN: 978-1449339388.

J. M. Wargo: PhoneGap Essentials: Building Cross-platform Mobile Apps, Addison-Wesley Professional, 2012, ISBN 9780321814296.
J. Munro: 20 Recipes for Programming PhoneGap, O'Reilly Media, ISBN: 978-1-4493-1954-0
A. Kosmaczewski: Sencha Touch 2 Up and Running, O'Reilly Media; 1 edition (27 Feb 2013), ISBN: 978-1449339388.
Planned learning activities and teaching methods
Lectures, Tutorials, Experimental work in labs, Project work, Other activities
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Credit and ExaminationCredit and Examination100 (100)51
        CreditCredit45 (45)22
                ProjectProject30 15
                Voluntary presentationOther task type15 7
        ExaminationExamination55 20