iOS Development with Objective-C/Swift

About This Project

Agenda (scope of the training)

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,


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


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 –


2. Plugins for Xcode –


Agenda for Objective-C basics:

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

Agenda for Swift (2.1) basics:

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


iOS, Programowanie
iOS, mobile development, objectivec, swift