devcon summit 2014: trends in ios development by allen tan
TRANSCRIPT
TRENDS IN IOS DEVELOPMENT
Allen TanWhite Widget
November 2014
“Trends”?!?!● Keeping up with rapidly
changing technology● 2013 (iOS 7)
○ most significant design change
● 2014 (iOS 8)○ most significant change for
developers
Break the Internet,
iOS 8!
Bigger screens, more variants● Pushing for auto layout
using constraints since iOS 6
● Added adaptive layout to reduce design bloat○ size classes○ trait collections○ universal storyboards
● Use at your own risk○ changes between OS
versions
App Extensions● Offer services within other apps, or throughout the OS
○ sharing○ filters○ files and document storage
● Widgets in the Notification Center● Third party keyboards
Major Features● CloudKit
○ Remote data storage service for apps. (BaaS)● HealthKit
○ HealthKit DB and hardware devices● HomeKit
○ Home automation, smart remotes● WebKit
○ Improvement over UIWebView● PhotoKit
○ Access and edit assets from the Photos app
Major Features (cont..)● Handoff
○ Transfer control of an activity from one device to another (iOS->OSX->Web)
○ Good for multi-platform apps● Touch ID
○ Authenticate users○ Can be used for...
● Apple Pay○ Interface with payment services
The Big One: Swift● Job Requirement:
○ 5 years of Swift programming experience.● A new programming language!● Stripped of the baggage of C● Interoperable with Objective-C and C, but not with C++● A move away from multi-platform towards Apple’s
ecosystem
Swift: Should I learn it?● YES!! But…● It is a young language and is still evolving● A commitment to keep on learning● Apple’s move towards modern, fast, and “easy”
○ You still need to know core concepts of OOP, memory management, etc.
● Requests to do apps in Swift
Should I Ditch Objective-C?● NO. Objective-C is not going away anytime soon.● Take advantage of years of community contribution written
in Objective-C, AND C++● Obj-C for legacy code, Swift for new modules● Familiarity with Obj-C helps with Swift● Swift only supports iOS 7 onwards. Some devices (and late
adopters) are stuck on iOS 6.
Best Feature Award: Fast Prototyping● Playgrounds
○ Test your code○ Fast visual results
Games!!
SceneKit SpriteKit Metal
SpriteKit and SceneKit● SpriteKit: Added in iOS 7 as a bare bones 2D game
framework○ Light sources○ Inverse kinematics○ Very similar to cocos2D (too similar…hmm)
● SceneKit: Added in iOS 8 as the 3D counterpart of SpriteKit● Big demand for it but…● Opinion:Use it for learning only
SpriteKit/SceneKit Thoughts...● Use it for learning only● Good: For iOS developers who want to jump into games● Good: No extra cost● Bad: Stuck in Apple ecosystem, difficulty in porting games● Bad: Coupled with OS version (iOS 7, or iOS 8 only features)● Bad: Slow updates to the SDK (once a year??! :-/)
Metal● Low overhead graphics engine● Works with Swift and Objective-C● Uses a C++-like language: Metal Shading Language
○ Works better with Objective-C● Only for A7/A8 iOS devices (not even the iOS simulator)● Good: Performance, and power● Good: Shares similarities with OpenGL● Bad: Not a lot of online resources yet● Bad: Stuck in Apple ecosystem● Not needed for the average app or game
Useful Miscellaneous Features● Integrated TestFlight into the revamped iTunesConnect● Xcode View Debugging
○ 3D rendering of the app’s layers● Live Rendering
○ See custom UI in Interface Builder
What’s Next For iOS?● WatchKit (2015) for Apple Watch● An extension of an iPhone/iPad app● Currently in Beta
○ Very young○ Different means of doing layout (no Auto
Layout)○ Heavy reliance on static images○ No native apps yet, but Apple promised
this feature