Skip to content

TelerikAcademy/Mobile-Applications-for-iOS

Repository files navigation

Repository for the "Mobile applications for iOS" course

Course description

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

Topics

Introduction

  1. Course introduction

Swift and Objective-C Core

  1. Swift and Objective-C fundamentals
    • Data types
    • let vs var
    • 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
  2. Classess, structures and enums
    • Enumerations
    • Creating classes
    • Class initializers
    • Methods, properties (getters, setters)
  3. Class Inheritance
    • Inheriting classes
    • Overriding parent methods/properties
    • Polymorphism
  4. Protocols, extensions
    • Creating protocols
    • Conforming to protocols
    • Using extensions
    • Pros from extensions
  5. Memory Management
    • Reference counting overview
    • Automatic Reference Counting (ARC) in swift
    • strong and weak references
  6. Asynchronous operations in iOS
    • delegation pattern
    • Using LAMBDAs
    • Updating the UI from async operation (Dispatch Queues)
  7. Objective-C fast track
    • Data-types
    • Loops
    • Data structures
    • Functions
    • Classes, class inheritance, protocols, extensions
  8. Workshop

iOS Basics

  1. Introduction to iOS Development
    • Cocoa Touch overview
    • Objective-C and
  2. 101 iOS Application
    • ViewControllers
    • AppDelegate
  3. Storyboards and segues
    • Creating segues and unwinding segues
    • Transfering data between ViewControllers
  4. Workshop

UI

  1. Views and controls
    • Built-in views (UILabel, UIButton, etc...)
    • IBOutlets and IBActions
    • Creating custom views
  2. Navigation controller and navigation between ViewControllers
    • Segues recap
    • Navigation controllers (regular, tabs, etc...)
    • show, present view controllers
  3. Tabs, drawers, etc...
    • Creating tabs and drawers
  4. Notifications
    • Creating user notifications
  5. Gestures and Touch
    • Types of gestures (tap, pinch, rotation, etc...)
    • Adding gesture recognizers
  6. Workshop

Data

  1. 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
  2. SQLite in iOS application
    • Adding SQLite database into an iOS application
    • Querying the database with native SQL queries
    • Querying the database with an ORM
  3. CoreData in iOS application
    • What is CoreData?
    • Using CoreData
  4. Workshop

Architectural

  1. Application Lifecycle
    • Handling the application state
    • Save app state
    • Cleanup on app close
  2. Model-View-Controller in iOS
    • What is MVC?
    • Implementing MVC in iOS applications
    • Separating the application in layers
      • Data layer, service layer, controllers, views
  3. Dependecy injection
    • Dependency injection recap
    • Implementing Dependency injection in iOS apps
  4. Unit testing
    • Unit testing recap
    • Creating unit tests for each layer of the application
  5. Workshop

Graphics & Animations

  1. CoreGraphics
    • Drawing in iOS
    • Using the Canvas
    • Implementing simple game
  2. Animations in iOS application
    • Using CoreAnimation
    • Using UIView.animate()
  3. Workshop

Device APIs

  1. Camera
  2. Geolocation
  3. Phonebook
  4. Accelerometer
  5. Workshop