MOBILE SYSTEMS PROGRAMMING
cod. 1005660

Academic year 2013/14
3° year of course - First semester
Professor
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
42 hours
of face-to-face activities
6 credits
hub: PARMA
course unit
in - - -

Learning objectives

The purpose of the course is to address the basic principles for the development of next generation mobile platforms (smartphones and tablets).

In particular, the student will be given the ability to understand:
- The principles and key aspects of programming in the mobile environment
- The characteristics of the two main major platforms for smartphones and tablets: Android and iOS.

The student will learn to apply these skills and will be able to:
- Program simple applications on Android and iOS smartphone environment.

Prerequisites

- - -

Course unit content

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

Full programme

* Introduction to the development of mobile platforms*
Architecture of mobile platforms and key components. Unique aspects and problems of
development on mobile devices.

* Programming on Android Platform
Introduction to the Android platform, Android SDK and development tools (Eclipse IDE and Android
simulator). Structure of an Android project.
Introduction to the concepts of Activity, Intent, Service and Broadcast Receiver.
Life cycle of Android applications. Graphical components. Location services and maps.
Data persistence with shared preferences, internal and external storage, SQLite database.
Concurrent programming in Android: multi - threadiing and Asynchronous Task. Android and communication services inter - process.
Networking: the java.net package and android.net, HTTP connections. Management
connectivity ': Connectivity Manager, WiFi Manager, Telephony Manager,
Bluetooth. Management of the sensors and multimedia content.

* Programming on iOS Platform
Basics of Objective-C language: classes, objects, properties, protocols;, memory management:
Manual Reference Counting (MRC) and Automatic Reference Counting (ARC); Foundation
classes and custom classes. Introduction to the iOS platform, development tools (XCode) and design
pattern for iOS (MVC, delegation pattern). Life cycle of iOS applications. Views and Controllers.
Graphical components and building interfaces with InterfaceBuilder. Controllers
ViewControllers. Location services and maps. Networking: synchronous and asynchronous requests,
HTTP, TCP and UDP sockets, service discovery with Bonjour. Management
connectivity '. Concurrent programming in iOS: multi-threading, locks, Grand Dispatch
Central, Notification Service. Data persistence: plist, preferences, text files, databases,
SQLite, CoreData. Management of the sensors and multimedia content.

* Cross - platform programming
Techniques and tools for cross-platform programming: PhoneGap and Appcelerator Titanium

Bibliography

- - -

Teaching methods

Lectures on Android and iOS programming environment.
Laboratory exercises basic computer (Android).
Exercises in laboratory networks (iOS).

Assessment methods and criteria

Written test with three open questions or test in progress at the end of the part relating to the Android programming environment.
Individual project at the end of the course to develop an application on the platform at choice.
For the final grade, will be 'carried a weighted average of the results of the written test and the project with weights 1/3 for the written test and 2/3 for the project.

Other information

- - -