PROGRAMMING OF MOBILE SYSTEMS
cod. 1006702

Academic year 2021/22
2° year of course - Second semester
Professor responsible for the course unit
CIRANI Simone
integrated course unit
6 credits
hub: PARMA
course unit
in ITALIAN

Course unit structured in the following modules:

Learning objectives

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.

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

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

Full programme

Module I: iOS

- 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.

Module II: Android

- The Android Platform
Introduction to Activity, Service, Intent, MVC and User Interfaces

- Android Graphical User Interface 1
Linear Layout, Relative Layout, Table Layout, Grid View, Tab Layout, List View, Custom List View
Element, Fragments

- Android Graphical User Interface 2
Application Menu, ActionBar, Handling Actions with the ActionBar, Navigation with the ActionBar,
ActionBar & Tabs, View Pager, Action Bar & View Pager

- Android Graphical User Interface 3
Toast Notifications, Dialogs, WebView, Web Client / Web Chrome Client, Load Local Web Content,
WebView Javascript Interface, Supporting Multiple Screens

- Location & Maps
GPS Introduction,Location Based Services,Android & Location,Location Service,LBS Application
Model,Google Maps Android API v2,Setup,MapFragment &
Compatibility,Marker,Events,Geocoder,Map Application & Navigator

- Data Persistence
Shared Preferences, Internal Storage, External Storage, JSON Appendix, SQLite Database

- Android & Concurrency
Concurrency, Concurrency & Java, Concurrency & User Interface, Concurrency & Android,
Handler, AsyncTask, Status Bar Notification

- Android Background Services
Android Service, Service Life Cycle, Unbound Service, Bound Service, Intent & Intent Filter ,
Broadcast Receiver

- Networking
Android & Networking,HTTP,Connectivity Manager,WifiManager,TelephonyManager, Bluetooth

- Sensors & Media Management
Sensors: Introduction,Description,Framework,Android & Multimedia:Framework,Camera

Bibliography

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

"Learning Android" by Marko Gargenta, Masumi Nakamura
O'Reilly Media.
"Programming Android: Java Programming for the New Generation of
Mobile Devices"
by Zigurd Mednieks, Laird Dornin, G. Blake Meike, and Masumi Nakamura
O'Reilly Media.
"Android Wireless Application Development", Second Edition
by Lauren Darcey and Shane Conder
Addison Wesley.

Teaching methods

Lectures and labs.

Assessment methods and criteria

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

Other information

- - -