Master of science-level of the Bologna process in Ingegneria Informatica (Computer Engineering) - Torino Master of science-level of the Bologna process in Cybersecurity - Torino Master of science-level of the Bologna process in Cybersecurity - Torino
The course aims at teaching the fundamentals of mobile application design and development. It explores the principles and the challenges in designing and developing for this peculiar kind of devices, focusing on smart phone platforms such as Android and iOS. These platforms are continuously growing and becoming active and important participant in the wider mobile ecosystem. The material will be presented through a thorough study of the architecture, and a rich set of practical examples that covers all aspect of the mobile device usage.
The course aims at teaching the fundamentals of mobile application design and development. It explores the principles and the challenges in designing and developing for this peculiar kind of devices, focusing on smart phone platforms such as Android OS. These kind of platforms are continuously growing and becoming active and important participant in the wider mobile ecosystem. The material will be presented through a thorough study of the architecture, and a rich set of practical examples that covers all aspect of the mobile device usage.
This course will allow students to design and develop medium-complexity applications on mobile platforms.
The assignments and structure of the class is organized to accomplish the following learning objectives:
1. Be competent in programming in the event-based model used in application frameworks for mobile devices
2. Be able to analyze and design a suitable user experience for a mobile application
3. Be able to write and deploy an application using a mobile computing software framework
4. Be able to describe and leverage the differences in software development between mobile device programming and server application programming, and develop applications that incorporate both programming methods to efficiently construct a single application task
5. Get hands-on experience of development, test, and debugging techniques for mobile applications (both stand-alone and server-based ones).
This course will allow students to design and develop medium-complexity applications on mobile platforms.
The assignments and structure of the class is organised to accomplish the following learning objectives:
1. Be competent in programming in the event-based model used in application frameworks for mobile devices
2. Be able to analyse and design a suitable user experience for a mobile application
3. Be able to write and deploy an application using a mobile computing software framework
4. Be able to describe and leverage the differences in software development between mobile device programming and server application programming, and develop applications that incorporate both programming methods to efficiently construct a single application task
5. Get hands-on experience of development, test, and debugging techniques for mobile applications (both native and multiplatform ones).
Operating systems; Object oriented programming; concurrent and distributed programming.
Operating systems; Object oriented programming; concurrent and distributed programming.
Introduction to the mobile ecosystem (6h)
• History and trends in market, technology, expectations
• What makes mobile unique
• Non functional issues (usability, energy management, device non homogeneity)
• Native vs. web applications
• Overview of main mobile operating systems
Guidelines for mobile application design (6h)
• User experience and interaction design
• App Design Strategies
• User Experience Guidelines
The Android Operating System (27h)
• Android architecture
• Toolchain setup
• Activities and their life-cycle
• Application resources
• Views, adapters, fragments, and the action bar
• Multithreading
• 2D Graphics and animations
• Networking and Web
• OpenGL ES
• Multimedia
• Services
Introduction to the iOS Operating System (15h)
• General architecture
• The ObjectiveC language
• The CocoaTouch framework
• Multimedia, networking and multithreading
Multiplatform development (6h)
• Mobile web applications and frameworks
• Cross-platform native frameworks
Introduction to the mobile ecosystem (4.5h)
• History and trends in market, technology, expectations
• What makes mobile unique
• Non functional issues (usability, energy management, device non homogeneity)
• Native vs. web applications
• Overview of main mobile operating systems
Guidelines for mobile application design (4.5h)
• User experience and interaction design
• App Design Strategies
• User Experience Guidelines
The Android Operating System (30h)
• Android architecture
• Toolchain setup
• Activities and their life-cycle
• Application resources
• Views, adapters, fragments, and the action bar
• ViewModels, Repository, persistence and the Room framework
• Multithreading and coroutines
• Networking
• 2D Graphics and animations
• OpenGL ES
• Multimedia
• Services
Introduction to Cloud Firestore (12h)
This course will be conducted using a combination of formal class lectures and hands-on assignments. Lectures will cover theoretical concepts and backgrounds related to Mobile application development. Extensive examples will be used to illustrate the taught principles.
This course will be conducted using a combination of formal class lectures and hands-on assignments. Lectures will cover theoretical concepts and backgrounds related to Mobile application development. Extensive examples will be used to illustrate the taught principles.
• Android wireless application development, by Shane Conder and Lauren Darcey. 2nd ed., Addison-Wesley, 2011
• Designing Mobile Interfaces, by Steven Hoober and Eric Berkman, O’Reilly, 2012
• Teacher-provided slides and material
• Android Studio 4.0 Development Essentials - Kotlin Edition, by Neil Smyth, Payload Media, 2020
• The User Experience Guidebook, by Seun Olowokintan, Al Hammadi Publishing, 2019
• Teacher-provided slides and material
Slides; Esercitazioni di laboratorio; Video lezioni dell’anno corrente; Strumenti di collaborazione tra studenti;
Modalità di esame: Prova scritta (in aula); Elaborato progettuale in gruppo;
Exam: Written test; Group project;
...
Written examination consisting of open questions assessing the expected learning outcomes, without access to any material (55%, 1,5 hours) and oral evaluation of coursework assignments (45%). These will include a final project, where student teams will design and implement a complete solution of a given application. This will help students to develop a strong understanding of the software development process by participating in all aspects of its development life cycle.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Written test; Group project;
Written examination consisting of open questions assessing the expected learning outcomes, without access to any material (55%, 1,5 hours) and oral evaluation of coursework assignments (45%). These will include a final project, where student teams will design and implement a complete solution of a given application. This will help students to develop a strong understanding of the software development process by participating in all aspects of its development life cycle.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.