The "Mobile applications for iOS" course introduce the fundamental and advanced principles and know-how for creating applications for iPhone and iPad. The course will cover both Objective-C and Swift programming languages in detail, with a bit of C. Some of the topics in the course are: Graphics and Animations, Storyboards and transitions, CoreData and SQLite, Touch and Gestures, building a sustainable and reusable architecture, dependecy injection and more
- Course introduction
- Swift and Objective-C fundamentals
- Data types
let
vsvar
- Conditionals
- Switch-case
- Loops:
for
,repeat-while
- Data structures: Arrays, Dictionaries, Sets (both mutable and immutable)
- Strings
- Errors and error handling (
do-try-catch
) - Functions
- Parameters, return types
- LAMBDAs
- Classess, structures and enums
- Enumerations
- Creating classes
- Class initializers
- Methods, properties (getters, setters)
- Class Inheritance
- Inheriting classes
- Overriding parent methods/properties
- Polymorphism
- Protocols, extensions
- Creating protocols
- Conforming to protocols
- Using extensions
- Pros from extensions
- Memory Management
- Reference counting overview
- Automatic Reference Counting (ARC) in swift
strong
andweak
references
- Asynchronous operations in iOS
delegation
pattern- Using LAMBDAs
- Updating the UI from async operation (Dispatch Queues)
- Objective-C fast track
- Data-types
- Loops
- Data structures
- Functions
- Classes, class inheritance, protocols, extensions
- Workshop
- Introduction to iOS Development
- Cocoa Touch overview
- Objective-C and
- 101 iOS Application
ViewControllers
AppDelegate
- Storyboards and segues
- Creating segues and unwinding segues
- Transfering data between ViewControllers
- Workshop
- Views and controls
- Built-in views (
UILabel
,UIButton
, etc...) IBOutlet
s andIBAction
s- Creating custom views
- Built-in views (
- Navigation controller and navigation between ViewControllers
- Segues recap
- Navigation controllers (regular, tabs, etc...)
show
,present
view controllers
- Tabs, drawers, etc...
- Creating tabs and drawers
- Notifications
- Creating user notifications
- Gestures and Touch
- Types of gestures (tap, pinch, rotation, etc...)
- Adding gesture recognizers
- Workshop
- Creating HTTP requests in iOS application
- HTTP recap
- Creating HTTP requests with
URLSesssion
GET
,POST
,PUT
,DELETE
- Building an HTTP layer
- Class for abstraction of HTTP requests
- SQLite in iOS application
- Adding SQLite database into an iOS application
- Querying the database with native SQL queries
- Querying the database with an ORM
- CoreData in iOS application
- What is CoreData?
- Using CoreData
- Workshop
- Application Lifecycle
- Handling the application state
- Save app state
- Cleanup on app close
- Model-View-Controller in iOS
- What is MVC?
- Implementing MVC in iOS applications
- Separating the application in layers
- Data layer, service layer, controllers, views
- Dependecy injection
- Dependency injection recap
- Implementing Dependency injection in iOS apps
- Unit testing
- Unit testing recap
- Creating unit tests for each layer of the application
- Workshop
- CoreGraphics
- Drawing in iOS
- Using the Canvas
- Implementing simple game
- Animations in iOS application
- Using CoreAnimation
- Using
UIView.animate()
- Workshop
- Camera
- Geolocation
- Phonebook
- Accelerometer
- Workshop