MOBILE SYSTEMS PROGRAMMING (UNIT 1)
cod. 1006703

Academic year 2022/23
3° year of course - Second semester
Professor
- Simone CIRANI
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
"altre conoscenze utili per l'inserimento nel mondo del lavoro"
Type of training activity
More
24 hours
of face-to-face activities
3 credits
hub:
course unit
in

Integrated course unit module: PROGRAMMING OF MOBILE SYSTEMS

Learning objectives


Introduction to the development of mobile systems.
Architecture of mobile platforms and key components.
Programming on iOS platform.

Prerequisites


The following skills are required:
- Basic programming skills (algorithms and data structures)
The following skills are a plus:
- Object-oriented programming experience
- Confidence with design patterns

Course unit content


The goal of the class is to cover the basic principles for developing applications targeting mobile devices.
In particular, students will be given knowledge about:
- principles and typical aspects related to mobile application programming
- the main features of the most popular mobile platforms: Android and iOS.

Students will learn to develop simple mobile applications for iOS and Android.

Full programme


- Introduction to Mobile Computing. Introduction to Objective-C.
Mobile Computing & Development Introduction: Mobile system architecture and development challenges.

- Objective-C - part I: Objective-C language basics, Classes and objects, Methods, Instance variables and properties, Dynamic binding and introspection, Foundation framework.

- OOP with Objective-C
Objective-C - part II: Object creation, Memory management, Automatic Reference Counting, Protocols, Categories.

- iOS operating system and UIKit
iOS SDK: iOS operating system, iOS SDK, Tools of the trade, Model-View-Controller, MVC interaction patterns, View Controllers.

- UIKit views and controls: View Controller lifecycle, UIColor, UIFont, NSAttributedString, UIKit views and controls: UILabel, UIButton, UISlider, UISwitch, UITextField, UITextView, NSNotificationCenter, keyboard notifications

- Controllers of View Controllers
Controllers of View Controllers: Multiple MVCs, UINavigationController, Segues, UITabBarController

- Concurrency and Networking
Blocks, Concurrency, Networking: Blocks, Concurrency and multi-threading, Grand Central Dispatch (GCD), Networking, UIImage & UIImageView.

- Scroll View, Table View, Collection View, Web View
Scroll views, Table views, Data source and Delegate, Table view cells, Collection views, Web views

- CoreLocation and MapKit, Sensors and Multimedia, AutoLayout
Core Location and Map Kit: Core Location, Getting the user’s location Geocoding, Map Kit, Annotating maps, Segueing programmatically, Working with JSON.

- Sensors and Multimedia: Core Motion, Working with Audio and Video: Media Player framework, System Sound Services, AVFoundation framework, Camera and Photo Library. AutoLayout.

Bibliography


Programming iOS 7
by Matt Neuburg
O'Reilly Media - December 2013

iOS 7 Programming Fundamentals
by Matt Neuburg
O'Reilly Media - October 2013
Programming iOS 7
by Matt Neuburg
O'Reilly Media - December 2013

iOS 7 Programming Fundamentals
by Matt Neuburg
O'Reilly Media - October 2013

Teaching methods


Lectures and labs.

Assessment methods and criteria


Final projects, targeting Android and iOS platform, will be assigned to each student.

Other information

- - -