Programming of Mobile Platforms

Major: Professional Education (Digital Technologies)
Code of subject: 6.015.39.E.085
Credits: 5.00
Department: Information Systems and Networks
Lecturer: Teslyuk Taras
Semester: 5 семестр
Mode of study: денна
Learning outcomes: As a result of the study of the academic discipline, the student of education should be capable demonstrate the following learning outcomes: 1) the ability to demonstrate the skills to analyze and evaluate a range of tasks that contribute to the further development of the effective use of information resources of decision-making systems, to evaluate existing technologies and, based on the analysis, to formulate requirements for the development of promising information technologies; 2) the ability to demonstrate knowledge and understanding of the general principles of operation and architecture of computer systems and the basics of operating systems, mastery of system and application software; 3) the ability to demonstrate knowledge and understanding of the basics of programming, languages of different levels and their advantages for solving specific problems, methods of developing software for computerized systems using modern technologies; knowledge of basic methods and approaches regarding the organization, planning, management and control of design, development, post-project support and operation of software for computerized systems; 4) the ability to demonstrate knowledge of the basic principles of the organization and functioning of hardware of modern computerized systems and networks, their main characteristics, capabilities and application in various subject areas; 5) the ability to demonstrate knowledge of methods of identifying, formulating, specifying, analyzing and tracing requirements for computerized systems at the stage of their design, methods of designing and verifying the abstract architecture of computerized systems, and knowledge of hardware platforms and software environments corresponding to the built architecture; 6) the ability to demonstrate knowledge of basic design paradigms and software modeling languages of computerized systems, software life cycle planning methods, and resource management model development; 7) the ability to demonstrate knowledge of operating systems (Android, MacOS, Windows, Unix, etc.), system software, the most common application software packages, Internet information portals, software methods of information protection in computerized systems and networks; 8) the ability to demonstrate skills in basic and specialized software development technologies for computerized systems, methods and techniques for controlling and testing the correctness of computerized systems software, methods and rules for operating and maintaining system and application software for computerized systems; 9) mastery of good work skills to work independently (diploma work) or in a group (laboratory work, including leadership skills during their execution), ability to obtain a result within a limited time with an emphasis on professional integrity and the prevention of plagiarism.
Required prior and related subjects: Algorithmization and programming Big data technologies Object-oriented programming Software engineering Operating Systems Data visualization
Summary of the subject: 1. Introductory lesson. The history of the development of mobile devices. Types of mobile devices. Hardware of mobile devices. Operating systems of mobile devices. The main trends in the market of mobile devices. Security and protection of personal data. Basic development tools for mobile devices. 2. Development of native Android applications. The main elements of the application for Android. 3. Development of the user interface for Android applications. Basics of the Java programming language. Hierarchy of interface elements. Development of user interface tools for Android. 4. Tools for local operation of mobile applications. Tools and libraries for local data storage. System of permissions, basics of security and reliability. 5. Means of communication of mobile applications. Authorization and storage of data in cloud storage. Google Firebase Basics. 6. Designing mobile applications. Architecture of mobile applications. MVC/MVP/MVVM. 7. Development of native iOS applications. Basic elements of the iOS app. 8. Development of cross-platform mobile applications. Flutter, React Native, Xamarin, Unity. Design of hybrid mobile applications. 9. Development of specifications for mobile applications. Requirements, testing. Study of the subject area. Identifying problems. Functional and non-functional requirements for mobile applications. 10. Design development for mobile applications. Principles of UI/UX. Material Design. 11. Testing of mobile applications. JUnit tests, Mockito, Espress. Alpha, Beta testing. 12. Promotion of mobile applications. Preparing the application for release, uploading the application to the Google Play Store, updating the application.
Assessment methods and criteria: Assessment of the knowledge of students is based on the performance of tasks in within the limits of laboratory classes (current control) and performance of examination control. The teacher's decision to assess the level of knowledge and skills of the student revealed during the performance of tasks within the limits of laboratory classes and examination control is evaluated according to the national scale and the 100-point scale and is transferred to the ECTS scale in accordance with the following transfer scale: 100-88 points - grade A ("excellent") is awarded for a high level of knowledge (some inaccuracies are allowed) of the educational material of the module contained in the main and additional recommended literary sources, the ability to analyze the phenomena being studied in their relationship and development , clearly, succinctly, logically, consistently answer the questions, the ability to apply theoretical provisions when solving practical problems; 87–80 points – grade B (“very good”) is awarded for knowledge of the educational material of the module above the average level, including calculations, reasoned answers to the questions asked (a small number of inaccuracies are possible), the ability to apply theoretical provisions when solving practical problems ; 79–71 points - grade C ("good") is given for a generally correct understanding of the module's educational material, including calculations, reasoned answers to the questions posed, which, however, contain certain (insignificant) shortcomings, for the ability to apply theoretical provisions during development solving practical problems; 70-61 points - grade D ("mediocre") is given for mediocre knowledge of the module's educational material, poorly argued answers, weak application of theoretical provisions when solving practical problems; 60–50 points – grade E (“satisfactory”) is assigned for weak knowledge of the module's educational material, inaccurate or poorly reasoned answers, with a violation of the sequence of presentation, for weak application of theoretical provisions when solving practical problems; 49–26 points – the FX rating (“unsatisfactory” with the possibility of retaking the exam or credit) is awarded for ignorance of a significant part of the educational material of the module, significant errors in answering questions, inability to apply theoretical provisions when solving practical problems; 25-00 points - grade F ("unsatisfactory" with mandatory re-study of the module) is awarded for ignorance of a significant part of the educational material of the module, significant errors in answering questions, inability to navigate when solving practical problems, ignorance of the main fundamental provisions.
Recommended books: Recommended literature Bazov 1. Bill Phillips, Chris Stewart, Kristin Marsicano. Android Programming: The Big Nerd Ranch Guide (3rd Edition) (Big Nerd Ranch Guides). – Big Nerd Ranch, LLC. - 2017. 2. Christian Keur, Aaron Hillegass. iOS Programming: The Big Nerd Ranch Guide (6th Edition) (Big Nerd Ranch Guides). – Big Nerd Ranch, LLC. - 2016. Auxiliary 1. Mike van Drongelen. Android Studio Cookbook: Design, test, and debug your apps using Android Studio. - Packt publishing, 2015. 2. Neil Smith. Android Studio 3.0 Development Essentials - Android 8 Edition. - 2017. 3. Reto Meier. Professional Android Application Development. – 2nd edition. - 2017. Information resources 1. Development for Android [Electronic resource]. – Access mode: http://developer.android.com/. 2. Development for iPhone [Electronic resource]. – Access mode: https://developer.apple.com/.