Upload
harit-kothari
View
166
Download
1
Embed Size (px)
Citation preview
iOS – let’s start
Basic introduction to mobile app developmentAnd
Apple iOS
Harit Kothari
@harit
Mobile / Cellphone
Screen
Memory + Storage + Processor
Battery
Always on
Operating System
What is operating system
Processes, memory, space, time, challenges
Similarity between mobile and workstation/computer OS
Challenges with mobile OS
J2ME (Java 2 platform Micro Edition)
Tablet is thin line between mobile and desktop/workstation
Apple iOS
No iOS v/s Android please!
Operating system with touch and gesture support
Memory and diskspace management
Too many restrictions – security
Derived from Macintosh OS X
Initially for iPhone, later on iPod & iPad
User interaction – few buttons & touch – gestures
APIs, APIs and lots of APIs wrapped in frameworks
High level architecture
Core OS Layer
Just understand, occasionally required, used by frameworks
Accelerate Framework (digital signal processing, linear algebra, image-processing calculations)
Core Bluetooth Framework (Bluetooth)
External Accessory Framework (Square Card Reader)
Generic Security Services Framework
Local Authentication Framework (TouchID)
Network Extension Framework (VPN)
Security Framework (Cryptography & Keychain)
System
Currently 64 bit OS
Core Services Layer
Peer-to-Peer Services (Bluetooth connectivity)
iCloud Storage
Block Objects (programming - blocks)
Data Protection (encryption & restricting access to shared data)
File-Sharing Support (/Documents directory accessible)
Grand Central Dispatch
In-App Purchase
SQLite
XML Support
Frameworks - provides APIs to operate iCloud, CoreData, AddressBook, Location, Media, HomeKit etc
Media Layer
Graphics & Image
Animation
OpenGL ES – 2D & 3D rendering
Metal – advanced level graphic rendering & manipulation
Text
Photo Library
Audio
Video
Frameworks provide APIs to operate on images, photos, animation, audio-video playback & capture etc.
Cocoa Touch Layer
App Extensions (share, action, widget, photo editing, document sharing)
Handoff
AirDrop
Multitasking
Auto Layout
Storyboards
UI State Preservation
Apple Push Notification Service
Local Notifications
Gesture Recognizers
Standard System View Controllers (compose email, message, create/edit contact, etc)
Frameworks - AddressBookUI, EventKitUI, MapKit, MessageUI, UIKit
Where’s application
Few apps shipped with iDevices like Contacts, Maps, App Store, Camera, Calendar, Photos and others
App Store is an app – marketplace to purchase and install apps
And your own!
.app is compiled application, .ipa is archieved and code signed app
But how to?
Development needs
Mac OS X system – iMac, MacBook, Mac Mini –any
Softwares – xCode!
iDevice – good to have – testing
Of course, knowledge of iOS development, objective-c, swift languages
Terminologies
Many terminologies, covering few
IBOutlet
IBAction
Classe
Function
Delegate
Block
Notification
ViewController
UI
Again, many ready made components available, covering few
Button
Label
Navigation
View
ImageView
ScrollView
Slider
Switch
ActionSheet
Alert
No ComboBox/DropDown, Radio Buttons, CheckBoxes – its Apple world
Your own custom UI component with your own behavior
How to put the controls
Storyboard / XIB
View Transition / Segue
Connect them with code
Application Lifecycle
Main(), UIApplicationMain, AppDelegate
Events
Touch
Remote – shake, motion
Accelerometer, Magnetometer, Gyroscope
Location
Redraw
Application state
Execution states of an app
Not running
Inactive
Active
Background
Suspended
Apple World
Mac OS X application development
iWatch
tvOS – apple TV
Swift – open source
Other side...
Very rapid development & frequent changes
New trends and technologies – innovations
Compatibility & updates
Resources & help
iOS Developer Library -https://developer.apple.com/library/ios/documentation/
Ray Wenderlich Tutorials
Envato tut+ Tutorials
Stackoverflow best buddy
GitHub & cocoacontrols – custom components & libraries
https://developer.apple.com/
WWDC Sessions
Thank you!