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.
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
Assessment methods and criteria
Final projects, targeting Android and iOS platform, will be assigned to each student.