460-2019/03 – Design of Applications for Mobile Devices I (TAMZ I)

Gurantor departmentDepartment of Computer ScienceCredits4
Subject guarantorIng. Pavel Moravec, Ph.D.Subject version guarantorIng. Pavel Moravec, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Year2Semestersummer
Study languageCzech
Year of introduction2019/2020Year of cancellation
Intended for the facultiesFEIIntended for study typesBachelor
Instruction secured by
LoginNameTuitorTeacher giving lectures
MOR03 Ing. Pavel Moravec, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+2
Combined Credit and Examination 18+0

Subject aims expressed by acquired skills and competences

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.

Teaching methods

Lectures
Tutorials
Experimental work in labs
Project work
Other activities

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.

Compulsory literature:

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 literature:

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.

Way of continuous check of knowledge in the course of semester

Credit requirements: Implementation and defence of (a) mobile application(-s) Voluntary presentation of extension APIs, other or related technology or the specifics of mobile application development. Development of simple applications during labs.

E-learning

Další požadavky na studenta

Basic knowledge of at least one of the following programming languages: Java, C#, C/C++ or JavaScript Basic knowledge of HTML

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.

Subject syllabus:

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.

Conditions for subject completion

Full-time form (validity from: 2019/2020 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Credit and Examination Credit and Examination 100 (100) 51
        Credit Credit 45  20
        Examination Examination 55  20
Mandatory attendence parzicipation: Attending at least 70% of labs during the semester in a way which meets the credit criteria.

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.FormStudy language Tut. centreYearWSType of duty
2019/2020 (B0714A060010) Telecommunication technology P Czech Ostrava 2 Optional study plan
2019/2020 (B0714A060008) Mobile technology P Czech Ostrava 2 Compulsory study plan
2019/2020 (B0714A060010) Telecommunication technology K Czech Ostrava 2 Optional study plan
2019/2020 (B0714A060008) Mobile technology K Czech Ostrava 2 Compulsory study plan
2019/2020 (B0613A140014) Computer Science P Czech Ostrava 2 Optional study plan
2019/2020 (B0613A140014) Computer Science K Czech Ostrava 2 Optional study plan
2019/2020 (B0914A060001) Biomedical technology P Czech Ostrava 2 Optional study plan
2019/2020 (B0914A060001) Biomedical technology K Czech Ostrava 2 Optional study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner