1. General characteristics of iOS Development
1. iOS overview, presentation of devices run by iOS
2. System requirements, Mac OS X overview
3. Presentation of IDE – Xcode
4. Distribution of application via App Store
2. Development language basics
Depending on language chosen for the training (Objective-C / Swift) here
will be solid introduction to the language. For more details see below.
3. Creating User Interfaces
1. Presentation of Interface Builder and Storyboards
2. Basic controls in iOS: UILabel, UIButton, UISlider, UISwitch,
UITextField
3. Base view class – UIView
4. Laying out views: Auto Layout, Size Classes, UIStackView
5. Creating list views: UITableView class
6. Model-View-Controller pattern in iOS
7. Managing views and screens – UIViewController class
8. Views hierarchy – navigation in the app
9. Presenting messages to the user
10. Animations
4. Managing data in iOS (Core Data)
1. Overview of Core Data framework
2. Creating data model (custom entities) in Core Data
3. Creating instances and saving them in Core Data
4. Fetching data, sorting and filtering
5. Net communication in iOS
1. Overview of net communication – NSURLSession and related
classes
2. Sample implementation of net communication – downloading data
and images
3. Alternatives (third party libraries) for net communication
6. Concurrency and inside-app notifications
1. Overview of approaches to concurrent execution in iOS
2. NSThread class
3. GCD mechanism
4. NSOperationQueue class and related classes
5. Selectors
6. Posting notifications inside app – NSNotificationCenter
7. Background execution
1. States of iOS application
2. Background tasks
3. Infinite background execution (e.g. playing audio)
8. Debugging and automated testing basics
1. Various debugging techniques
2. Unit testing – XCTest framework
3. Automated testing – UI testing (Xcode 7)
4. External tools – FBSnapshotTestCase, OCMock (Objective-C only)
5. Getting code coverage
9. Additional tools
1. Dependency management and using external libraries –
CocoaPods
2. Plugins for Xcode – alcatraz.io
1. General characteristics of the language
2. Data types in Objective-C
3. Declaring and implementing classes, properties
4. Declaration, implementation and calling methods
5. Categories for classes (including private categories)
6. Protocols
7. Allocation, initialization and deallocation of objects
8. Basic types in Objective-C: NSString, NSNumber, NSArray, NSDicitionary
9. Literals and modern Objective-C syntax
10. Attributes for properties
11. Memory management in Objective-C
12. Blocks
13. Pseudo-generics in Objective-C
14. Nullability
1. General characteristics of the language
2. Declaring constants, variables, basic types in Swift
3. Optional types
4. Control flow
5. Functions and closures
6. Declaring classes, properties, methods, inheritance
7. Initialization and deinitialization
8. Enums, structs
9. Protocols
10. Extenstions (including protocol extensions)
11. Generics
12. Error handling
13. Memory management in Swift