beginning real world ios app development
TRANSCRIPT
![Page 1: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/1.jpg)
![Page 2: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/2.jpg)
Please tweet with hashtag #BelajarSwift
![Page 3: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/3.jpg)
Your tools?Xcode 6
![Page 4: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/4.jpg)
Andri Yadi Bayu Wicaksono
![Page 5: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/5.jpg)
Andri YadiCEO, DyCode
![Page 6: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/6.jpg)
The first & largest iOS & OSX developer community in Indonesia
ID-Objective-CPresident
![Page 7: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/7.jpg)
7 years in a row
1 of 3 Azure MVPs in Indonesia, of 114 in the worlds
![Page 8: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/8.jpg)
Bayu WYMobile Team Lead, DyCode
![Page 9: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/9.jpg)
What is “real world”?✔
![Page 10: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/10.jpg)
Leverage backend services for storage, logics, and other processings Use 3rd party libraries Access 3rd party APIs Learn from real world experienced developer :)
Arguably…
![Page 11: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/11.jpg)
Intro to iOS development & Swift basics Your first iOS app project Most used UIKit, storyboard, segue Use 3rd party library and API Azure Mobile Services (ZuMo) ZuMo iOS SDK BONUS: Surprise Topic!!!
for that, we’ ll cover…
![Page 12: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/12.jpg)
iOSDevelopment stuffs
Let’s start with…
![Page 13: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/13.jpg)
iOS Devices
![Page 14: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/14.jpg)
iOS
![Page 15: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/15.jpg)
http://developer.apple.com/ios
iOS
![Page 16: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/16.jpg)
Xcode iOS Simulator iOS Developer Library
iOS
![Page 17: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/17.jpg)
Required StuffsRequired Stuffs
![Page 18: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/18.jpg)
![Page 19: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/19.jpg)
iOSin form of Xcode
Latest
![Page 20: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/20.jpg)
![Page 21: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/21.jpg)
Optional Stuffs
![Page 22: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/22.jpg)
Actual iOS Devices
![Page 23: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/23.jpg)
![Page 24: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/24.jpg)
More development stuffs
![Page 25: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/25.jpg)
Objective-CSince 2008
![Page 26: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/26.jpg)
Introducing Swift…Since June 2, 2014
![Page 27: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/27.jpg)
Required StuffsWhat does it mean for us?for long-time iOS developers - with Objective-C
![Page 28: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/28.jpg)
with…
It’s new way to achieve the same result
![Page 29: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/29.jpg)
Modern Designed for Safety Fast & Powerful Interactive Playgrounds Ready today!
Swift
![Page 30: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/30.jpg)
![Page 31: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/31.jpg)
Your skill/knowledge of Cocoa Touch framework is still applicable
![Page 32: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/32.jpg)
that have no experience developing iOS apps
What is it for the rest of us?
![Page 33: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/33.jpg)
Easier, faster to learn Safer More fun You can skip Objective-C completely
Swift is arguably…
![Page 34: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/34.jpg)
Bad news is…
Still need to learn about Cocoa Touch framework
![Page 35: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/35.jpg)
Swift PlaygroundDemo
![Page 36: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/36.jpg)
Design Pattern
![Page 37: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/37.jpg)
Model-View-Controller design pattern
Model View
Controller
![Page 38: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/38.jpg)
Model-View-Controller design pattern
Outlet
![Page 39: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/39.jpg)
Can View speak to Controller?
Outlet
?
![Page 40: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/40.jpg)
Sort of… The communication is “blind” and structured
Outlet
?
![Page 41: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/41.jpg)
The View sends the Action when stuffs happen in the UI
Target
Action
![Page 42: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/42.jpg)
WHAT R U TALKIN’ ABOUT?
![Page 43: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/43.jpg)
Another way, Controller sets itself as the View’s delegate
Delegate
![Page 44: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/44.jpg)
The delegate is set via a Protocol
Delegate
![Page 45: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/45.jpg)
Controllers are almost always that data source (not Model!)
Delegate
Data Source
![Page 46: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/46.jpg)
The Model is (should be) UI independent. What if the Model has information to update or something?
Delegate
Data Source
![Page 47: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/47.jpg)
Use broadcast mechanism. Controllers (or other Model) can “listen” to interesting stuff.
Delegate
Data Source
Notification & KVO
![Page 48: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/48.jpg)
Model-View-Controller design pattern
NowPlayingController
NowPlayingView
NowPlaying
![Page 49: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/49.jpg)
![Page 50: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/50.jpg)
???
![Page 51: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/51.jpg)
iOS frameworks
![Page 52: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/52.jpg)
Touch ID PhotoKit Camera API HealthKit ResearchKit
CloudKit HomeKit SceneKit SpriteKit Metal
Handoff Extensions WatchKit
![Page 53: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/53.jpg)
AccelerateAccounts
AddressBook
AddressBookUI
AdSupport
AssetsLibrary
AudioToolbox
AudioUnit
AVFoundation
AVKitCFNetwork
CloudKit
CoreAudio
CoreAudioKit
CoreBluetooth
CoreData
CoreFoundation
CoreGraphics
CoreImage
CoreLocation
CoreMedia
CoreMIDI
CoreMotion
CoreTelephony
CoreTextCoreVideo
EventKitEventKitUI
ExternalAccessory
Foundation
GameController
GameKit
GLKit
GSS
HealthKit
HomeKit
iAd
ImageIO
IOKit
JavaScriptCore
LocalAuthentication
MapKit
MediaAccessibility
MediaPlayer
MediaToolbox
MessageUI
Metal
MobileCoreServices
MultipeerConnectivity
NetworkExtension
NewsstandKit
NotificationCenter
OpenAL
OpenGLES
PassKit
Photos
PhotosUI
PushKit
QuartzCore
QuickLook
SafariServices
SceneKit
Security
Social
SpriteKit
StoreKit
SystemConfiguration
UIKitVideoToolbox
WebKit
![Page 54: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/54.jpg)
Human Interface Designhttps://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/
![Page 55: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/55.jpg)
Take advantage of the whole screen Reconsider visual indicators of physicality and realism
Translucent UI elements hint at the content behind them
Deference
![Page 56: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/56.jpg)
Use plenty of negative space Let color simplify the UI Ensure legibility by using the system fonts (Dynamic Type)
Clarity
Embrace borderless buttons
![Page 57: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/57.jpg)
Translucent background Displays lists in layers Enhanced transitions to give users a sense of hierarchy and depth
Depth
![Page 59: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/59.jpg)
Prepo
![Page 60: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/60.jpg)
BaseSqlite Manager
![Page 61: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/61.jpg)
App Store Submission
![Page 62: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/62.jpg)
you app can use this badge!
![Page 63: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/63.jpg)
Craving to know more about iOS development?
Let’s join upcoming iOS 8 development class - with Swift
http://edu.dycode.co.id
![Page 64: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/64.jpg)
Required StuffsBackend Servicesfor long-time iOS developers - with Objective-C
![Page 65: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/65.jpg)
DB & Storage
Authentication
Logic
Push
API Wrapper
Mobile Backend as a Service
Leverage BaaS
![Page 66: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/66.jpg)
Mobile Services
Microsoft Azure Mobile Services
a lot of BaaS providersTurn out…
![Page 67: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/67.jpg)
Microsoft Azure Mobile Services
![Page 68: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/68.jpg)
So, what is it?
Storage
Authentication
Logic
Push
Scheduler
![Page 69: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/69.jpg)
Get startedVisit azure.com
Free trial! worth $200 Or create temporary service: https://trywebsites.azurewebsites.net
![Page 70: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/70.jpg)
BONUS TOPIC?
![Page 71: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/71.jpg)
Intro to WatchKit
![Page 72: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/72.jpg)
WatchKit appDemo
Just do the demo
![Page 73: Beginning Real World iOS App Development](https://reader030.vdocument.in/reader030/viewer/2022032421/55a686961a28abd4088b4699/html5/thumbnails/73.jpg)
DyCode www.dycode.com
@dycode