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