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