This 5 day course is for developers who want to learn how to develop applications for iPhone and iPad running iOS 11. Xcode 9, Swift 4 and iOS 11 introduced significant changes in the way applications are written.
The course is hands on and shows how to develop applications from scratch using the Swift programming language and the Xcode 9 IDE.
During the course a fully functional application will be developed from scratch using Swift.
This course can only be run on Apple hardware such as a MacBook Pro or a Mac Mini.
Delegates need to have registered with Apple and have an Apple ID which is required to download software - Xcode.
Delegates wishing to run the applications developed during the course on an iPhone or iPad using a USB cable will need to register their device with Xcode.
Delegate must be able to understand all basics of Swift after this and course and should be able to make any kind of application in iOS and dig into more complex applications on iOS.
Course Details:
Object Oriented Programming System (OOPS):
Discuss the following OOPS terms:
- Objects: State & Behavior
- Class
- Polymorphism: Overloading & Overriding, Inheritance
- Data Hiding
- Modularity
What is Software?
- What is a concepts software
- Organized v/s un-organized rooms concept in programming
- Why Software
Why Apple and iOS
- Why iOS
- History of Apple
- iOS History
- AppleĆ¢??s USP
- What Apple is famous for
- UX v/s UI
Development environment
- Development environment requirements
- Xcode and the iOS SDK
- Apple Developer Registration
- Reasons why Applications get rejected
- Human Interface Guidelines
Xcode iOS Projects
- Overview of Xcode
- Creating an iOS project
- Running on simulator and real devices
Swift Basics
- Why Objective C and now why Swift?
- Variables and Constant in SWIFT
- Variable declaration
- Constant declaration
- Type Annotation
- Wow Factors in Swift
- Variables
- Constants
- Optional Variables concepts
- Hello World in Swift
- Making UILabel with code
Operators and Collection Type, Enumerations in Swift
- Array and Dictionary in Swift
- Enumerations in Swift
Control Flow and Loops in Swift
- If, If Else If and Switch statements in Swift
- Various looping options in Swift
- Switch-Case
Functions or Methods in Swift
- Method declaration and parameters
- Functions as Type
- Functions as parameters
- Functions as returned type
- Nesting of function definition
UIKit and SWIFT
- UIView Hierarchy
- Various UI components: UILabel and UIImageView
- Properties of UILabel
- Creation of UIImage
- NSBundle
- Basic animation in UIImageView
- Directory concept
Image Animation and image loading
- UIImageView
- Basic UIView and UIImageView animations
- Playground
- Lazy loading of images
- Lazy properties
Properties and Protocols in SWIFT
- Properties in SWIFT
- How properties play vital role in memory management
- Protocols in Swift
- Keywords usage: lazy, computed, didSet, WillSet
Automatic Reference Counting in SWIFT
- ARC concepts in SWIFT
- Strong Reference between instance of Classes
- Talk about references and Closure
Talk about open chaining
Application setup in SWIFT
- Various classes created on Project creation
- AppDelegate class
- Application Life cycle
Swift Classes and Scenes
- Creating Swift classes
- Memory management
- Strong and weak references
- Constructor types and destructors in Swift
- Protocols
- Inheritance
- Creating Scenes
- Implementing View Controllers
- Playground
Life Cycle and Responder Chain
- View Life Cycle
- Application Life Cycle
- Responder Chain - touchBegan, touchMoved, etc methods
- NSTimer
Adaptive Layout
- Storyboards vs XiB
- Multiple Device Support
- Icon Sizing and Device Orientation
- Building a User Interface using code
- Outlets and Actions
- Protocols - Required and optional
- Memory management
Notifications and Localization
- Push Notification - Silent and Push (Only owerview)
- Localization
Overview of Objective C
- Properties
- Categories
- Functions syntax
- Property attributes readWrite and readOnly
Social Media Integration in iOS :
- Facebook Integration
- Twitter Integration
- Mail Integration
- Integrating a third party app
UI Components in iOS :
- UITextField
- UITextView
- UISegementControl
- UISlider
- UiSwtich
- UIProgessBar
- UIPageControl
- UIStepper
- UIScrollView
- UIPicker
- UIActionSheet
- UIWebView
- SearchBar
Some other basics components and others in iOS :
- Groups and folders
- Closure
- Tuples
- URL Session
- URLRequest
- UIAlertView
- UIActivityIndicatorView
- internal, public, private
- Guard
- Optionals
Threading in iOS :
- GCD
- NSOperationQueue
- Main Thread and Background Threads
User Interaction
- Buttons and handlers
- Pan gesture recognition
- Tap gesture recognition
- Custom Table View
- Basics of Collection View
Multiple Screen Applications
- Table Navigation
- Tabbed Applications
- Navigation Controllers
- Presenting a controller and different animations while presenting and pushing controllers
Device Access and Storage
- File Storage
- CoreData in iOS
- Key Chain
- User Defaults
- PLists
- NSSearchDomain
- Directory concept and security of apps NSSearchDomain
Networking
- Network Access
- Serialising and Deserialising JSON
Upload App to App Store
- ITunes Connect
- Developer Portal - Provisioning profiles
- Deployment and distribution
- Running app on real devices
- Uploading app to app store
Applications
- Notes app : Notes App
- Contacts App
- Getting data from server from an open API app and make a table view and populate data and show its details also and show Search bar and search for something and use Core Data to save data offline
- Application of your own idea