Правительство Российской Федерации Федеральное государственное автономное образовательное учреждение высшего профессионального образования «Национальный исследовательский университет «Высшая школа экономики» Факультет компьютерных наук Департамент программной инженерии Утверждаю Академический руководитель образовательной программы по направлению 09.04.04 «Программная инженерия» И.А. Ломазова ______________________ «___» _____________ 2015 г. Программа дисциплины «Основы разработки мобильных приложений» на английском языке: «Mobile Applications Development: Basics» для направления 09.04.04 «Программная инженерия» подготовки магистра Магистерская программа «Системная и программная инженерия» Специализация «Проектирование и разработка мобильных приложений» Автор программы: профессор, д.т.н. Д.В. Александров Рекомендована Академическим советом образовательной программы «Программная инженерия» «___» ________ 2015 г. Одобрена на заседании Департамента программной инженерии «___» ________ 2015 г. Руководитель Департамента ______________ С.М. Авдошин Согласована Менеджер Департамента программной инженерии ______________ Т.В. Климова Москва, 2015 Настоящая программа не может быть использована другими подразделениями университета и другими вузами без разрешения департамента - разработчика программы Author of the Program: Prof., Dr.Tech.Sci. Dmitry Alexandrov General Information about Training Course: The training course ‘Mobile Applications Development: Basics’ is offered to students of the specialization (track) «Mobile Applications Design and Development» of Master Program «System and Software Engineering» (area code 09.04.04), at the Faculty of Computer Science, the National Research University - Higher School of Economics/HSE. The course is classified as a compulsory subject (М.2.Б unit / Base module [Special subject disciplines М.2] of 2015 – 2016 academic year’s working syllabus); it is a two module course, which is started in module #1. The duration of the course amounts to 64 class periods (both lectures and practical trainings) divided into 24 lecture hours and 40 practical training hours. In addition, 116 academic hours are set aside for self-studying of students. Mark check stipulated by the working syllabus consists of results of performing of practical and homework tasks and one end-of-module test (MT, end of first module) and final examination (FE) given in the second module. Students Requirements: It is presupposed that all individuals accepted as Master Program students completed corresponding full-time Bachelor degree training programs and were selected (based on either portfolio tenders, or other core performance indices) to continue their MS education in the Program, therefore. The students should be familiar with the basics of the following training courses: a) Objectoriented analysis and programming b) The software development methodology. The students will learn how to analyze, design, and develop mobile apps, gather requirements, draft user interfaces and create system prototypes, translate application requirements into working code. Course Objectives: The course covers mobile application development basics. Main aspects include design and architecture patterns, user interactions specifics, capabilities of modern smart devices, platforms similarities and differences as well as main restrictions and features. The main objective of the training course is also to examine and discuss with students fundamentals and principles of mobile apps development, get familiar with common methods, standards, platforms, toolkits, and frameworks for the development of multiversion mobile apps for the popular architectures. The course is aimed to help students to develop skills that will enable them to construct mobile apps of high quality, reliable, and that is reasonably easy to understand, modify and maintain. Abstract The training course ‘Mobile Applications Development: Basics’ is concerned methods, platforms and tools for professional mobile apps development. It is based on the training materials (tutorials) from mobile apps developers for the platforms IBM Bluemix, Apple iOS, Google Android, Microsoft Windows Phone, Microsoft Azure, Amazon Web Services, etc. Modern mobile apps development requires the collaborative effort of a diverse team with varied skills. To be effective, team members need to understand the activities performed at each stage in the development cycle. In this course, students will analyze, design, and implement applications that meet user requirements through performing a collective team project. They gain hands-on experience performing each role within the development team. The course is aimed at students taking courses at mobile apps development in commerce and industry. The course is aimed at studying the major current approaches to development of mobile apps and the the processes like specification, design and implementation. It describes the methods, platforms, technologies and tools, which are applied for mobile app development. It discusses also the SEMAT initiative concerning “Software engineering method and theory”, requirements engineering, design and implementation processes. Training Objectives: During the two-module course “Mobile Applications Development: Basics”, the students will: Study the platforms and toolkits for the fast development of modern mobile apps. Learn the processes, techniques and deliverables that are associated with requirements engineering, app design, and implementation of mobile apps. Acquire skills in software design, and module development (including agile methods). Focus on techniques for mobile app development and modern trends in that field. At the end of the course the students will acquire theoretical and practical knowledge and will be able to use: Technical skills 1. 2. 3. 4. 5. 6. 7. Define an architecture of a mobile app. Discuss the processes of mobile apps development. Develop and write a proposal for project of mobile app development. Develop and write a Software Requirements Specification. Design a mobile app with back-end. Implement the mobile app using toolkits and integrated development environments. Prepare the final report for the course. Soft skills 1. 2. 3. 4. I. Work within a team and understand team dynamics. Be able to effectively communicate their work (Presentation skills). Be able to write a project report (report writing skills). Be able to reflect on their own work as well as the work of others (evaluate their experience). Topic-wise curricula plan (accompanied with suggested themes of practical trainings) Audience Hours № Topic Name Self Study Practical Lectures Studies Module 1 (32 hrs). Mobile app development: architectural patterns 1 Software engineering and 15 2 3 10 Course Hours, Total the SEMAT initiative. Agile development of mobile apps: fundamentals and tools 2 3 4 5 6 Mobile platform architecture review: similarities and differences Architectural patterns and styles for mobile app development Development of requirements for a project of mobile app Cloud architectures for mobile app development Development of back-end for mobile applications Module 1, totally: 15 2 3 10 15 2 3 10 15 2 3 10 15 2 4 9 15 2 4 9 90 12 20 58 7 Module 2 (32 hrs). Mobile app development: design and implementation Processes of mobile app 15 2 3 8 development. CASE tools Designing of mobile apps 9 10 11 12 The native mobile app development: implementation Hybrid mobile app development: tools and frameworks Documenting of a project of mobile app development The features and capabilities of modern mobile devices. Trends in mobile app development Module 2, totally: TOTAL: II. 10 15 15 2 2 3 3 10 10 15 2 3 10 15 2 4 9 15 2 4 9 90 180 12 24 20 40 58 116 Basic book(s) and/or reader(s) (Publications) Books: Microservices from Theory to Practice. Creating Applications in IBM Bluemix Using the Microservices Approach. – First Edition. – IBM: Redbooks, 2015. Extending Your Business to Mobile Devices with IBM Worklight. – IBM: Redbooks, 2015. Scott Chacon. Pro Git. – 2012. Dane Baker, Tyson McCann. The Art of the App Store: The Business of Apple Development. – Wrox, 2012. Alasdair Allan. Learning IPhone Programming: From Xcode to App Store, 2012. Кон М. Scrum. Гибкая разработка ПО, Вильямс, 2015. Pressman, R.S., Maxim B.R. Software Engineering: A Practitioner's Approach, McGrawHill, 2015. Кон М. Пользовательские истории. Гибкая разработка программного обеспечения, Вильямс, 2012. Стоун Б. Джефф Безос и эра Amazon. The everything store, 2014. Таненбаум Э. Современные операционные системы, Питер, 2015. Вигерс К. Разработка требований к программному обеспечению, BHV, 2014. Leffingwell D. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise, Addison-Wesley, 2011. Буч Г., Рамбо Дж., Якобсон А. Введение в UML от создателей языка, ДМК Пресс, 2015. Фримен Э., Сьерра К., Бейтс Б. Паттерны проектирования, Питер, 2012. Ларман К., Вильямс. Применение UML 2.0 и шаблонов проектирования. Практическое руководство, 2013. Bill Philips & Brian Hardy Android Programming: The Big Nerd Ranch Guide, 2013. Greg Nudelman Android Design Patterns: Interaction Design Solutions for Developers, 2013. Ian G. Clifton Android User Interface Design: Turning Ideas and Sketches into Beautifully Designed Apps, 2013. Mario Zechner Beginning Android Games, 2013. Paul Thurrott Windows Phone 8.1 Field Guide, 2014. Yochay Kiriaty, Jaime Rodriguez, John Papa Learning Windows Phone Programming, O'Reilly Media, 2013. Internet-based Publications: Software Engineering Method and Theory. The Official SEMAT Website: http://www.semat.org/; Software Engineering Conference (Russia) Website: http://www.secr.ru/; IBM Developer Works Website: http://www.ibm.com/developerworks/; Parse Tutorials Website: https://www.parse.com/tutorials#all The Microsoft .NET platform Website: www.microsoft.com/net Fowler M. Patterns of Enterprise Application Architecture. Addison-Wesley: http://www.martinfowler.com/articles/newMethodology.html. Microsoft Application Architecture Guide, 2nd Edition Microsoft: https://msdn.microsoft.com/en-us/library/ff650706.aspx Moving Applications to the Cloud, 3rd Edition, Microsoft: https://msdn.microsoft.com/enus/library/ff728592.aspx Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications: https://msdn.microsoft.com/en-us/library/dn568099.aspx Other Recommended Sources of Information, including Ones under Free Electronic Access: IBM Bluemix Website: https://console.ng.bluemix.net/ Microsoft Azure Website: https://azure.microsoft.com/ru-ru/ Windows Phone Developer Blog: http://blogs.windows.com/windows_phone/b/wpdev/ Channel 9 at MSDN Website: http://channel9.msdn.com Amazon Web Services Website: https://aws.amazon.com/ru/ Resources of Apple Developer Website: https://developer.apple.com/resources/ Online support for Android and WP8: http://stackoverflow.com Google Developer Console Website: https://console.developers.google.com Google Cloud Platform Website: https://cloud.google.com/ Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Android developers online portal: http://developer.android.com Microsoft Download Center Website: https://www.microsoft.com/ru-ru/download IEEE Standards Association Website: http://standards.ieee.org Unity3D Documentation, Tutorials and Training: http://unity3d.com/learn/ Open handset alliance Website: http://www.openhandsetalliance.com/ Modern UI design principles and guidelines Website: http://msdn.microsoft.com/en- us/library/windows/apps/hh779072.aspx Ian Sommerville’s web page with available training materials: http://www.comp.lancs.ac.uk/computing/resources/IanS/ IV. Education control forms / Assessments: - [A] progress (interim) check: end-of-module test (MT) at the end of 1st module, - [B] concluding check: final exam (FE) at the end of 2nd module (the last module of the course), - [C] home assignment (H) during 1st and 2nd modules. [Assessment] Progress (interim) [A] and concluding check [B] grades are made up of the following components: Work activity (WA) during seminar hours in 1st, 2nd modules is controlled by the use of keeping students attendance records and scoring (evaluation) involvement into discussions as well as quality of exercise performance during practical trainings. End-of-module test (MT) at the end of module implies arrangement of the written test (in lecture room) for all students enrolled to the course (the possibility of complementary interview with students is still reserved for the purpose of accurate grade confirmation). Subject area covered by the test embraces those topics of the course, which are discussed in both lectures and practical trainings till the announced date; if student misses the end-of module test because of some valid reason, the grade «absence» is written down to corresponding column of the mark sheet. Depending on the number and complexity of the end-of-module test tasks (final decision is taken by the course instructor), the duration of the test amounts for 90 to 105 minutes. The end-of-module test (MT) is assessed on usual tenpoint scale. Ultimate grades of the end-of-module check (MT) and concluding check (FE) on ten-point scale are obtained as follows: - (А) grade of the end-of-module check Ultimate MT (at the end of the 1st module) is calculated as a weighted sum Ultimate MT = 0.75 * WA + 0.25 * MT, where WA and MT are ten-point scale grades for the written test (end of the 1st – beginning of the 2nd module). Calculated value obtained is rounded to integer grade. Student gets the grade «pass», if Ultimate MT >= 4 (refer to correspondence table below), - (B) concluding check grade (FE) at the end of the last 2nd module accumulates course results as follows: FE = 0.65 * WA + 0.2 * H + 0.15 * E , where Work Activities (WA), Home Assignment (H) and Exam (E) are ten-point scale grades. As always, calculated value of FE is rounded to integer grade. Conversion of the concluding rounded grade (FE) to five-point scale grade is done in accordance with the following table: Summary Table: Correspondence of ten-point to five-point system’s marks Ten-point scale [10] Five-point scale [5] 1 - unsatisfactory 2 - very bad 3 - bad 4 – satisfactory 5 - quite satisfactory Unsatisfactory- 2 Satisfactory- 3 6 - good 7 - very good Good - 4 8 - nearly excellent 9 - excellent Excellent- 5 10 - brilliantly V. Course Contents Topic 1. Software engineering and the SEMAT initiative. Agile development of mobile apps: fundamentals and tools ♦ Topic outline: Introduction to the software engineering Software engineering main tools and techniques observation Software engineering method and theory. The SEMAT initiative Agile way of development of mobile apps: different approaches Tools and services for Agile development ♦ Main references/books/reading: Кон М. Scrum. Гибкая разработка ПО, Вильямс, 2015. Pressman, R.S., Maxim B.R. Software Engineering: A Practitioner's Approach, McGrawHill, 2015. Кон М. Пользовательские истории. Гибкая разработка программного обеспечения, Вильямс, 2012. Вигерс К. Разработка требований к программному обеспечению, BHV, 2014. Leffingwell D. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise, Addison-Wesley, 2011. Scott Chacon. Pro Git. – 2012. ♦ Additional references/books/reading: Software Engineering Method and Theory. The Official SEMAT Website: http://www.semat.org/; Software Engineering Conference (Russia) Website: http://www.secr.ru/; Topic 2. Mobile platform architecture review: similarities and differences Platform Introduction Android iPhone Windows Phone Platform Comparison: OS/Platform-specific Platform Comparison: Mobile-Specific ♦ Main references/books/reading: Dane Baker, Tyson McCann. The Art of the App Store: The Business of Apple Development. – Wrox, 2012. Alasdair Allan. Learning IPhone Programming: From Xcode to App Store, 2012. Таненбаум Э. Современные операционные системы, Питер, 2015. Bill Philips & Brian Hardy Android Programming: The Big Nerd Ranch Guide, 2013. Greg Nudelman Android Design Patterns: Interaction Design Solutions for Developers, 2013. Ian G. Clifton Android User Interface Design: Turning Ideas and Sketches into Beautifully Designed Apps, 2013. Mario Zechner Beginning Android Games, 2013. Paul Thurrott Windows Phone 8.1 Field Guide, 2014. Yochay Kiriaty, Jaime Rodriguez, John Papa Learning Windows Phone Programming, O'Reilly Media, 2013. ♦ Additional references/books/reading: IBM Developer Works Website: http://www.ibm.com/developerworks/; The Microsoft .NET platform Website: www.microsoft.com/net Microsoft Application Architecture Guide, 2nd Edition Microsoft: https://msdn.microsoft.com/en-us/library/ff650706.aspx Windows Phone Developer Blog: http://blogs.windows.com/windows_phone/b/wpdev/ Channel 9 at MSDN Website: http://channel9.msdn.com Resources of Apple Developer Website: https://developer.apple.com/resources/ Online support for Android and WP8: http://stackoverflow.com Google Developer Console Website: https://console.developers.google.com Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Android developers online portal: http://developer.android.com Microsoft Download Center Website: https://www.microsoft.com/ru-ru/download IEEE Standards Association Website: http://standards.ieee.org Open handset alliance Website: http://www.openhandsetalliance.com/ Topic 3. Architectural patterns and styles for mobile app development ♦ Topic outline: Architectural patterns and styles overview Client/Server Architectural Style Component-Based Architectural Style Domain Driven Design Architectural Style Layered Architectural Style Message Bus Architectural Style N-Tier / 3-Tier Architectural Style Object-Oriented Architectural Style Service-Oriented Architectural Style Cloud Design Patterns Moving Applications to the Cloud Using the Microservices Approach ♦ Main references/books/reading: Microservices from Theory to Practice. Creating Applications in IBM Bluemix Using the Microservices Approach. – First Edition. – IBM: Redbooks, 2015. Таненбаум Э. Современные операционные системы, Питер, 2015. Буч Г., Рамбо Дж., Якобсон А. Введение в UML от создателей языка, ДМК Пресс, 2015. Фримен Э., Сьерра К., Бейтс Б. Паттерны проектирования, Питер, 2012. Ларман К., Вильямс. Применение UML 2.0 и шаблонов проектирования. Практическое руководство, 2013. ♦ Additional references/books/reading: The Microsoft .NET platform Website: www.microsoft.com/net Fowler M. Patterns of Enterprise Application Architecture. Addison-Wesley: http://www.martinfowler.com/articles/newMethodology.html. Microsoft Application Architecture Guide, 2nd Edition Microsoft: https://msdn.microsoft.com/en-us/library/ff650706.aspx Moving Applications to the Cloud, 3rd Edition, Microsoft: https://msdn.microsoft.com/enus/library/ff728592.aspx Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications: https://msdn.microsoft.com/en-us/library/dn568099.aspx IBM Bluemix Website: https://console.ng.bluemix.net/ Microsoft Azure Website: https://azure.microsoft.com/ru-ru/ Windows Phone Developer Blog: http://blogs.windows.com/windows_phone/b/wpdev/ Channel 9 at MSDN Website: http://channel9.msdn.com Amazon Web Services Website: https://aws.amazon.com/ru/ Google Cloud Platform Website: https://cloud.google.com/ Resources of Apple Developer Website: https://developer.apple.com/resources/ Official Google developers blog: http://googleblog.blogspot.com/search/label/Android IEEE Standards Association Website: http://standards.ieee.org Ian Sommerville’s web page with available training materials: http://www.comp.lancs.ac.uk/computing/resources/IanS/ Topic 4. Development of requirements for a project of mobile app ♦ Topic outline: Definition of a requirement; Different types of requirements: o Concepts of user and system requirements; o Functional and non-functional requirements; o User and system requirements; The software requirements document; Requirements engineering processes activities and their relationships; Requirements validation and the role of requirements reviews; The role of requirements management in support of other requirements engineering processes; Problems of requirements analysis and requirements change management. ♦ Main references/books/reading: Кон М. Scrum. Гибкая разработка ПО, Вильямс, 2015. Pressman, R.S., Maxim B.R. Software Engineering: A Practitioner's Approach, McGrawHill, 2015. Кон М. Пользовательские истории. Гибкая разработка программного обеспечения, Вильямс, 2012. Вигерс К. Разработка требований к программному обеспечению, BHV, 2014. Leffingwell D. Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise, Addison-Wesley, 2011. Буч Г., Рамбо Дж., Якобсон А. Введение в UML от создателей языка, ДМК Пресс, 2015. ♦ Additional references/books/reading: Software Engineering Method and Theory. The Official SEMAT Website: http://www.semat.org/; Software Engineering Conference (Russia) Website: http://www.secr.ru/; IBM Developer Works Website: http://www.ibm.com/developerworks/; IBM Bluemix Website: https://console.ng.bluemix.net/ Official Google developers blog: http://googleblog.blogspot.com/search/label/Android IEEE Standards Association Website: http://standards.ieee.org Ian Sommerville’s web page with available training materials: http://www.comp.lancs.ac.uk/computing/resources/IanS/ Topic 5. Cloud architectures for mobile app development ♦ Topic outline: IBM Bluemix – Cloud Platform for Rapid Development, Deployment and Management of Apps Fundamentals of Bluemix Fundamentals of DevOps Demo showcasing best practices Features of SoftLayer Architecture New Features of IBM MobileFirst Platform Amazon Web Services overview Microsoft Azure overview Google Cloud Platform overview Parse overview Tools and frameworks for hybrid apps development Publication of Mobile Apps and the Commercialization Mechanism ♦ Main references/books/reading: Microservices from Theory to Practice. Creating Applications in IBM Bluemix Using the Microservices Approach. – First Edition. – IBM: Redbooks, 2015. IBM Developer Works Website: http://www.ibm.com/developerworks/; Parse Tutorials Website: https://www.parse.com/tutorials#all The Microsoft .NET platform Website: www.microsoft.com/net Moving Applications to the Cloud, 3rd Edition, Microsoft: https://msdn.microsoft.com/enus/library/ff728592.aspx Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications: https://msdn.microsoft.com/en-us/library/dn568099.aspx ♦ Additional references/books/reading: IBM Bluemix Website: https://console.ng.bluemix.net/ Microsoft Azure Website: https://azure.microsoft.com/ru-ru/ Channel 9 at MSDN Website: http://channel9.msdn.com Amazon Web Services Website: https://aws.amazon.com/ru/ Google Cloud Platform Website: https://cloud.google.com/ Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Microsoft Download Center Website: https://www.microsoft.com/ru-ru/download Topic 6. Development of back-end for mobile applications ♦ Topic outline: Introduction to Development of Mobile Apps: Tools and Examples Mobile Data: Saving Data in Bluemix Development of App using Worflow Service on Bluemix Platform Creating Applications in IBM Bluemix Using the Microservices Approach SQL & NOSQL Databases in Bluemix: Connection and Usage Examples Push: Connection of Push Notifications in Bluemix Using the Watson Services and libraries AlchemyAPI and OpenCV, Analysis of the Social Profile Using Bluemix Services Application of Machine Learning Algorithms in Mobile Apps IoT: Smart Home Control, Using iBeacon Technology in Apps UX Fundamentals. Material Design Creating a Cloud Backend for iOS Apps Using Popular Cloud Platforms Ruby language and Ruby on Rails Framework overview Development and Deployment of a Back-end for the Mobile App for Management of a Conference on the Bluemix Platform Using ROR ♦ Main references/books/reading: Microservices from Theory to Practice. Creating Applications in IBM Bluemix Using the Microservices Approach. – First Edition. – IBM: Redbooks, 2015. IBM Developer Works Website: http://www.ibm.com/developerworks/; Parse Tutorials Website: https://www.parse.com/tutorials#all The Microsoft .NET platform Website: www.microsoft.com/net Moving Applications to the Cloud, 3rd Edition, Microsoft: https://msdn.microsoft.com/enus/library/ff728592.aspx Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications: https://msdn.microsoft.com/en-us/library/dn568099.aspx ♦ Additional references/books/reading: IBM Bluemix Website: https://console.ng.bluemix.net/ Microsoft Azure Website: https://azure.microsoft.com/ru-ru/ Channel 9 at MSDN Website: http://channel9.msdn.com Amazon Web Services Website: https://aws.amazon.com/ru/ Google Cloud Platform Website: https://cloud.google.com/ Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Microsoft Download Center Website: https://www.microsoft.com/ru-ru/download Topic 7. Processes of mobile app development. CASE tools ♦ Topic outline: Introduction into software process models; Main activities for requirements engineering, software development, testing and evolution. Process iteration: incremental delivery and spiral development. The main tasks undertaken by project managers, roles and responsibilities in managing mobile app development process; CASE technology for software process activities; Summary of software process models: benefits and risks. ♦ Main references/books/reading: Кон М. Scrum. Гибкая разработка ПО, Вильямс, 2015. Pressman, R.S., Maxim B.R. Software Engineering: A Practitioner's Approach, McGrawHill, 2015. Кон М. Пользовательские истории. Гибкая разработка программного обеспечения, Вильямс, 2012. Стоун Б. Джефф Безос и эра Amazon. The everything store, 2014. Вигерс К. Разработка требований к программному обеспечению, BHV, 2014. ♦ Additional references/books/reading: Software Engineering Method and Theory. The Official SEMAT Website: http://www.semat.org/; Software Engineering Conference (Russia) Website: http://www.secr.ru/; Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Microsoft Download Center Website: https://www.microsoft.com/ru-ru/download IEEE Standards Association Website: http://standards.ieee.org Open handset alliance Website: http://www.openhandsetalliance.com/ Ian Sommerville’s web page with available training materials: http://www.comp.lancs.ac.uk/computing/resources/IanS/ Topic 8. Designing of mobile apps ♦ Topic outline: Introduction into design process activities; Design process models: object-oriented design, real-time design, interface design, etc.; UML design process brief introduction; Design patterns Roles of prototyping in the software process. Mobile app design UX Fundamentals Modern UI design principles ♦ Main references/books/reading: Extending Your Business to Mobile Devices with IBM Worklight. – IBM: Redbooks, 2015. Scott Chacon. Pro Git. – 2012. Dane Baker, Tyson McCann. The Art of the App Store: The Business of Apple Development. – Wrox, 2012. Alasdair Allan. Learning IPhone Programming: From Xcode to App Store, 2012. Буч Г., Рамбо Дж., Якобсон А. Введение в UML от создателей языка, ДМК Пресс, 2015. Фримен Э., Сьерра К., Бейтс Б. Паттерны проектирования, Питер, 2012. Ларман К., Вильямс. Применение UML 2.0 и шаблонов проектирования. Практическое руководство, 2013. Bill Philips & Brian Hardy Android Programming: The Big Nerd Ranch Guide, 2013. Greg Nudelman Android Design Patterns: Interaction Design Solutions for Developers, 2013. Ian G. Clifton Android User Interface Design: Turning Ideas and Sketches into Beautifully Designed Apps, 2013. Mario Zechner Beginning Android Games, 2013. Paul Thurrott Windows Phone 8.1 Field Guide, 2014. Yochay Kiriaty, Jaime Rodriguez, John Papa Learning Windows Phone Programming, O'Reilly Media, 2013. ♦ Additional references/books/reading: The Microsoft .NET platform Website: www.microsoft.com/net Fowler M. Patterns of Enterprise Application Architecture. Addison-Wesley: http://www.martinfowler.com/articles/newMethodology.html. Microsoft Application Architecture Guide, 2nd Edition Microsoft: https://msdn.microsoft.com/en-us/library/ff650706.aspx Windows Phone Developer Blog: http://blogs.windows.com/windows_phone/b/wpdev/ Channel 9 at MSDN Website: http://channel9.msdn.com Resources of Apple Developer Website: https://developer.apple.com/resources/ Online support for Android and WP8: http://stackoverflow.com Google Developer Console Website: https://console.developers.google.com Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Android developers online portal: http://developer.android.com Microsoft Download Center Website: https://www.microsoft.com/ru-ru/download IEEE Standards Association Website: http://standards.ieee.org Unity3D Documentation, Tutorials and Training: http://unity3d.com/learn/ Open handset alliance Website: http://www.openhandsetalliance.com/ Modern UI design principles and guidelines Website: http://msdn.microsoft.com/enus/library/windows/apps/hh779072.aspx Topic 9. The native mobile app development: implementation ♦ Topic outline: Example of implementation of iOS mobile app; Example of implementation of Android mobile app; Example of implementation of WP mobile app; Example of binding of mobile app to cloud back-end ♦ Main references/books/reading: Alasdair Allan. Learning IPhone Programming: From Xcode to App Store, 2012. Bill Philips & Brian Hardy Android Programming: The Big Nerd Ranch Guide, 2013. Greg Nudelman Android Design Patterns: Interaction Design Solutions for Developers, 2013. Mario Zechner Beginning Android Games, 2013. Paul Thurrott Windows Phone 8.1 Field Guide, 2014. Yochay Kiriaty, Jaime Rodriguez, John Papa Learning Windows Phone Programming, O'Reilly Media, 2013. ♦ Additional references/books/reading: IBM Developer Works Website: http://www.ibm.com/developerworks/; The Microsoft .NET platform Website: www.microsoft.com/net Microsoft Application Architecture Guide, 2nd Edition Microsoft: https://msdn.microsoft.com/en-us/library/ff650706.aspx Windows Phone Developer Blog: http://blogs.windows.com/windows_phone/b/wpdev/ Resources of Apple Developer Website: https://developer.apple.com/resources/ Online support for Android and WP8: http://stackoverflow.com Google Developer Console Website: https://console.developers.google.com Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Android developers online portal: http://developer.android.com Topic 10. Hybrid mobile app development: tools and frameworks ♦ Topic outline: Ionic Framework Mobile Angular UI Intel XDK Appcelerator Studio Example of implementation of hybrid mobile app ♦ Main references/books/reading: Ionic framework Website: http://ionicframework.com/ Mobile Angular UI Website: http://mobileangularui.com/ Intel Developer Zone Website: https://software.intel.com/en-us/intel-xdk Appcelerator Studio Website: www.appcelerator.com Topic 11. The features and capabilities of modern mobile devices ♦ Topic outline: The features of mobile devices The capabilities of mobile devices IoT and mobile devices Wearable devices Detecting devices and their features ♦ Main references/books/reading: IBM Developer Works Website: http://www.ibm.com/developerworks/; Microsoft Application Architecture Guide, 2nd Edition Microsoft: https://msdn.microsoft.com/en-us/library/ff650706.aspx Resources of Apple Developer Website: https://developer.apple.com/resources/ Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Android developers online portal: http://developer.android.com IEEE Standards Association Website: http://standards.ieee.org Open handset alliance Website: http://www.openhandsetalliance.com/ Topic 12. Trends in mobile app development ♦ Topic outline: Trends in mobile app development: 1. Rapid Mobile Development 2. Cloud Driven 3. App Security 4. Beacon and Location Based Wi-Fi Services 5. Wearable Tech 6. M-commerce, Banking and Mobile Payments 7. Internet of Things (IoT) 8. Big Data and App Analytics 9. The Growth of Enterprise Apps 10. In- App Advertising and Purchasing 11. User Experience First 12. App Marketing 13. HTML 5 14. Mobile Gaming 15. Smart Cities, Homes and Offices ♦ Main references/books/reading: IBM Developer Works Website: http://www.ibm.com/developerworks/; Microsoft Application Architecture Guide, 2nd Edition Microsoft: https://msdn.microsoft.com/en-us/library/ff650706.aspx Resources of Apple Developer Website: https://developer.apple.com/resources/ Official Google developers blog: http://googleblog.blogspot.com/search/label/Android Android developers online portal: http://developer.android.com IEEE Standards Association Website: http://standards.ieee.org Open handset alliance Website: http://www.openhandsetalliance.com/ Scott Chacon. Pro Git. – 2012. Unity3D Documentation, Tutorials and Training: http://unity3d.com/learn/ Стоун Б. Джефф Безос и эра Amazon. The everything store, 2014. VI. Assignment topics for various education control forms: Home assignment is made as a capstone project. Capstone project will have the main result as a real world mobile app with a back-end on one of the popular cloud platforms. There are some topics for presentations on the seminars: Software process model (of your choice); Describe one of a methodology of development (of your choice); Technologies of Agile software development; Innovative models and tools for mobile app development; Technologies and frameworks for development; Describe specifics of RAD technology CASE modeling features for mobile app development; Hybrid mobile app development Architectural patterns (of your choice); Design patterns (of your choice); Ruby language and Ruby on Rails Framework overview Using iBeacons in mobile apps Development of geo social apps Conduct post implementation audit and analyze implementation results. Trends in mobile app development (of your choice); VII. Topics for course results quality assessment Exemplary questions: Give a definition of terms «software engineering », «back-end», «hybrid mobile app», «cloud platform», «architectural patterns», etc. (the matter is related to main concepts introduced in the training course); What are the ideas of Agile way of development of mobile apps? Provide examples of different application types and give its key characteristics. What are the incremental development problems and benefits? Describe the different IDE and techniques for the mobile app development. What are the key challenges facing mobile app development? Provide examples and give short explanations? Describe mobile app design process and provide the examples. Requirements engineering. Types of requirement, requirements completeness and consistency. What are the principles of modern UI design? What are the trends in mobile app development? What are the differences between the cloud platforms for the mobile app development? Rapid hybrid mobile app development: problems and benefits. What are the main mobile app development process activities? What is the need of app prototyping? Where it can be used? What are the benefits and problems of prototyping? Describe the features of using the microservices approach for creating mobile apps. The author of the program: Dmitry Alexandrov