Day 1
Variables and Constant in SWIFT

Understand variable declaration

Understanding syntax for variable declaration

Type defining the variable

Understanding constant declaration

Syntax for declaring the constant

Understanding Type Annotation

Type Alias and it’s important

Tuples and it’s befinits

How values are interpreted in print statement
Optional Variables

Understanding Optional Variables concepts

Understanding Implicit Optional UnWrapping concepts
Control Flow and Loops in Swift

Understand If, If Else If and Switch statements in Swift

Understanding various looping options in Swift

Talk about ANY

Talk about ANYObject

Talk about Nested Type

Talk about Generic Types and Functions
Type Casting in Swift

Understand how type cast happens in the swift

Understand Type Cast syntax and talk about “as” key word
Protocols in Swift (Imp)

What is protocol.

How it is different from the Interface of Java or C#

Why Protocols are given importance

Feedback mechanism using protocols

Understand type of protocols in iOS

Best practises for creating the protocol
Application setup in Swift

Create workspace and also created necessary folders

Talk about the various classes created on Project creation

Understand importance of the AppDelegate class

Understand various methods implemented in the AppDelegate

Class Syntax of the AppDelegate
Classes and OOPs concepts in Swift

How Class is declared in SWIFT

Class file structure in SWIFT

How Factory design patterns works in SWIFT

Talk about Initializer and deinitializer
UIKIt and Swift

Talk about UIView Hierarchy

Understand the concept of the Window

Take deep look into the View Hierarchy

Walkthrough ViewController code

Change the background color of the screen
Exercise

1. LifeCycle of iOS App

2. MVC iOS App
Application architect of iOS Application

Talk about Single View Application

Talk about Multi Controller Applications

Type of multicontroller applications

Implement some project with various Application Architect
Xcode IDE, Foundation and UIKit Framework, String ,UILable,UIImageView etc.

Talk about general UI Component rules: creation of frame, setting properties, adding to view

Talk about UILabels & Strings

Adding text,

Modifying properties

Font type, Font size, Alignment, Number of lines, Background color , Text color

Adding to view

Calling the load function

Ask students to explore some properties of UILabel

Correlate the 4rules mentioned earlier with what we have done

Adding imageview to view

Project implementation

Talk about UIImageView

Adding resources to project & the directory concept

Creation of UIImage model

Setting the center
Responder Chain Pattern

Touch Events

Get to implement the touches began, moved, ended messages

Get the basic label hiding effect with touches began

Understand pattern of registering the view with the touch

Drafting of 4 golden rules to register view on touch

Demonstrate each rule
Exercise

3.Label Demo Project

4.Image Demo Project

5. Touch Events Demo Project

6. Drag and Drop Demo Project

7. ID Card Project Assignment
Operators and Collection Type in Swift

Understand changes in some of the operators

Understanding Array and Dictionary in Swift
Multi Controller Environment using UITabBarController and UINavigationController

Talk about the multi controller environment

Talk about base architecture of the multi controller environment

Talk about the relationship between the window and root controller for the multi controller environment.

Talk about Tab Bar controller

Talk about view controllers & root view controllers

Walk through creation of tab bars

Discuss about icons creations and Apple’s clauses on Tab bar icons

Talk about how to create various classes in Xcode.

Discuss about the default constructor

Creating multi controller project in iOS MVC architecture

Talk about Navigation

Ask to implement navigation

Talk about various Navigation controllers in iOS
Exercise

8. Tab Bar Demo Project
Day 2
UITableViews

Talk about Table creation

Talk about the multiple row/single column concept

Talk about various protocols used by Table in iOS

Discuss about required & optional methods

How to confirm the protocols in App

Talk about the Table optimization

Create first table and play with various table features

Talk about customizing tables

Customizing the header/footer with text

Customizing Header/Footer with Images

Talk about the protocols required

Talk about the height or the row & cell

Talk about creation of custom cells
Exercise

8. Table Demo Project

9. Table Array Demo Project

10. Custom Table Demo Project
AutoLayout

what is autolayout

What is constraints

Various ways of setting constraints

Visual String Format (VSF)

Various character set used in the VSF

Importance of View Dictionary

Importance of Metric Dictionary
StoryBoard

What is Story Board

Why it was introduce

When and where to use Storyboard.

Walk through the story board

Integrating story board in the app

Understanding Autolayout constraints Pin & Align in storyboard

How to relate one view with other view

View Group Concepts

How to make references of object from Stroyboard to the Swift file

What is Segue.

How to use them
Adaptive Layout

How is Size classes used.

How to use Stackview
Making App Compatible from iPhone 5S to iPhone 8 plus, iPhone X and iPad to iPad mini and iPad Pro

Making App compatible with all the iOS devices

Understanding the development cycle time for all devices

Understanding Apple strategy about announcing the new devices

Understanding how to make existing App immediately compatible with the New device release

How you can still make money from App which were made 3-4 years back

How Apple ecosystem is strongest of all.
Exercise

11. Auto layout Demo Project

12. Storyboard Demo Project
Day 3
WebServices using REST APIs

Understand client server architecture

Understand the Web services

Start with the JSON webservice

Talk about how to integrate MVC architecture in client-server environment

Talk about JSON

Talk about where JSON is used.

The working of client-server architecture

JSON: Solution for client server architecture

Talk about 5 golden points for creating robust MVC for client-server architecture

The importance of 5 golden points across the entire platform.

Talk about how to utilize same architecture across other platform

Start of on the implementation of JSON parsers

Talk about the parsing process

Talk about pure model components

Talk about the protocols required & creating the protocol

Walk through the flow of the code implemented

Finally giving full MVC flow of client server environment.

Difference between DOM and SAX parser

Integrating the REST web services in the client-server architecture
Apple Transport Security ATS

What is ATS

ATS configuration to connect app with the internet

Why ATS is imposed in the iOS Application
NSURLSession

Talk about the difference between the NSURLConnection and NSURLSession

Why Session is better than connection

Talk about the various configuration used in Session

Talk about various task of session

Talk about the Lazy Initialisation

Talk about the GCD
Functions or Methods, Closure and Subscripts in Swift (Most Imp)

Understanding Method declaration and parameters

Understanding Functions as Type

Talk about Functions as parameters

Talk functions as returned type

Nesting of function definition. Implementing functions with in the functions

Talk about Closure concepts

Talk about Subscripts
Properties and Protocols in SWIFT

Talk about properties

Talk about properties in SWIFT

How properties play vital role in memory management

Talk about Initializer and deinitializer

Talk about Protocols in Swift
NSURLSession with Completion Handler

Talk Function as parameter

Talk about the Closure Syntax

How Closure used as the callback in the Swift
Exercise

13. Webservic Demo Project using Delegate Pattern

14. Webservic Demo Project using Closure Pattern

15. Webservic Demo Project using POST service
WebView

What is WebView

Why Webview is important

Webview Architecture and various use cases

Webview events

How to get events of web site into the code
Exercise

16. Webview Demo Project
Day 4
Persistence using SQLIte

Persistence using SQLIte

Talk about SQLite

Talk about writing SQLite queries in objective-c & the protocols required

Walk through the creation of a simple database

Start of with the implementation of the code

Talk about the sql_stmt object

Talk about the functions required by the SQLite handler class

Talk about single ton class concept

Talk about why single ton class is required

Talk about security

Create front end

Talk about all the integration of front end with the handler

Creation of text fields & buttons

Talk about fast enumeration

Talk about UIAlertView

Making the To-DO List type App
Persistence using CoreData Framework

Core Data frame work

Talk about the core data frame work

Discuss about the pros & cons of core data

Talk about when to use core data frame work

Walk through on creating core data

Integrating core data into the app

Perform CRUD operations in Core Data

How to use NSPredicate in Core Data

What is Core Data Stack

How to create core Data in the application
Persistence using Plist

Talk about creation of persistent storage using plists

Talk about key value concept of dictionaries as compared to arrays

Talk about how plists store key value pairs
Playground (Overview)

What is Playground

Why it was introduce

Why it was introduce

Walk through the playground
Exercise

17. Sqlite Demo Project

18. Core Data Demo Project

19.Playground Demo Project
Automatic Reference Counting in SWIFT

ARC concepts in SWIFT

Strong Reference between instance of Classes

Talk about references and Closure

Talk about open chaining
Performance Testing using Instrument Tool

How to check the current performance of the app

Talk about the instrument tool

What is profiling

Types of profiling

Understanding Instrument Tool

Making aware about the golden rule for App optimisation

Making existing Application Memory optimised
Push Notifications Architect

How to create APNS

APNS architecture

various callbacks for APNS

Why APNS is important
Deployment and Distribution

Start off on deployment

Talk about the $99 program & the free program. Especially the differences between the 2

Talk about Certificate creation, renewal

Talk about KeychainAccess and process for creating certificate request

Talk about registering devices on the provisioning portal

Talk about fetching the UDID

Talk about the app id creation

Unique id for each app

Format for bundle ids

Talk about provision profile creation

Talk about binding developer, appid, devices

Talk about importing the provisioning profile

Talk about setting the project target settings

Talk about project settings

Deploy the app/game that has been developed.

Deploy the app/game that has been developed.

Learn how to make .ipa file of the app.

Learn ad Hoc app distribution

Learn about iTunes Connect

Talk about how to register app on the iTunes connect and other legal things for app distribution

Registering the app on iTunes Connect
Exercise

20. Project Optimisation Demo Project

21.APNS Demo Project