Programming Apple Devices
IZA Acad. year 2019/2020 Summer semester 5 credits
Language of instruction
Subject specific learning outcomes and competences
Generic learning outcomes and competences
Why is the course taught
- Hillegass, A.: Cocoa Programming for Mac OS X. Addison-Wesley, 2004.
- Trent, M., McCormack, D.: Mac OS X Programming. Wiley Publishing, 2005.
- Neuburg, M.: Programming iOS 9: Dive Deep into Views, View Controllers, and Frameworks. O'Reilly Media, 2015.
- Mathias, M., Gallagher, J.: Swift Programming: The Big Nerd Ranch Guide (2nd Edition). Big Nerd Ranch Guides, 2016.
- Zarra, M. S.: Core Data: Data Storage and Management for iOS, OS X, and iCloud. Pragmatic Bookshelf, 2013.
Syllabus of lectures
- Introduction. Historical backgrounds of Apple in the context of other computer companies.
- Objective-C in the context of C/C++ and Smalltalk. Dynamic memory allocation, object referencing and garbage collecting.
- Introduction to Swift programming language. Basic libraries with collections and algorithms (Foundation).
- Model-View-Controller (MVC) paradigm for developing event-driven applications. Basic Controllers (Table, TabBar, Master-Detail).
- Development of user applications for mobile devices. Elements of User Interface (Cocoa Touch library).
- Programming of multithreaded applications. Concepts of threads management (GCD). Applications main control. Asynchronous calls. Modelling of multithreaded applications.
- Data encoding in applications. Creating structured documents. Synchronization of documents. Inter-application message passing (Key-Value Observing, KVO).
- The architecture of object data storage (CoreData). The synchronous connection of the database and application control via KVO.
- Multiuser applications with a central database (CloudKit). The asynchronous connection of the database and application control via GCD.
- Application lifecycle in the context of the operation system. User configurations. Runtime memory optimizations.
- Simulation kernel for games development (SpriteKit, SceneKit). Modelling of the physical environment and mechanics.
- Desktop applications architecture. Runtime interconnection of a mobile and desktop application.
- Applications development for tvOS and watchOS.
Syllabus of numerical exercises
- Programming in Swift. Using XCode IDE.
- Foundation library in examples. Data collections and basic algorithms.
- Application for iOS. Implementing DataSource and Delegate objects.
- Multithreaded applications. Message passing within the application. Key-Value Observing. Documents.
- Application based on CoreData.
- Application based on CloudKit.
Syllabus - others, projects and individual work of students
- Design and implementation of an application with given features.
The minimal number of points which can be obtained from the final exam is 25. Otherwise, no points will be assigned to a student.
Course inclusion in study plans