![Page 1: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/1.jpg)
TRENDS & TRANSFORMATIONS IN IOS DEVELOPMENT
![Page 2: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/2.jpg)
@saratSOFTWARE ARCHITECT
![Page 3: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/3.jpg)
WATCH
![Page 4: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/4.jpg)
WATCH IS THE FIRST WEARABLE
PRODUCT FROM
![Page 5: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/5.jpg)
EXTEND YOUR IPHONE
![Page 6: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/6.jpg)
HEART-RATE SENSOR
USES GPS OF YOUR IPHONE
ACCELEROMETER
![Page 7: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/7.jpg)
YOUR FITNESS MATE
![Page 8: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/8.jpg)
THE SECRET HISTORY OF WATCH
![Page 9: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/9.jpg)
KEVIN LYNCH THE GUY WHO WAS BOLD ENOUGH TO PUBLICLY TAKE ON
STEVE JOBS ON ADOBE FLASH
IMAGE COURTESY WIRED.COM
![Page 10: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/10.jpg)
DEVELOPER GUIDELINES
![Page 11: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/11.jpg)
“The main difference is that app makers shouldn’t think big.
They should think small.”
What Instagram's New App Reveals About the Apple Watch - WIRED
![Page 12: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/12.jpg)
WATCHKIT APP ARCHITECTURE
![Page 13: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/13.jpg)
WATCHKIT APP ARCHITECTURE
![Page 14: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/14.jpg)
USER INTERACTIONS
![Page 15: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/15.jpg)
GLANCES
GIVES QUICK SUMMARY RESIDES WITHIN IPHONE APP
![Page 16: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/16.jpg)
GLANCESQUICK ✪ FOCUS ✪ TIMELY
![Page 17: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/17.jpg)
CHIPOTLE APP
![Page 18: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/18.jpg)
CHIPOTLE APP
![Page 19: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/19.jpg)
CHIPOTLE APP
![Page 20: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/20.jpg)
NOTIFICATIONSCOMPANION WATCH APP CAN
SHOW THE NOTIFICATIONS FROM YOUR IPHONE APP
![Page 21: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/21.jpg)
NOTIFICATIONS
SHORT-LOOK INTERFACE
LONG-LOOK INTERFACE
![Page 22: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/22.jpg)
SHORT-LOOK INTERFACE
APP ICON +
APP NAME +
MESSAGE TITLE
![Page 23: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/23.jpg)
![Page 24: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/24.jpg)
LONG-LOOK INTERFACE
TITLE +
CONTENT AREA +
FOOTER
![Page 25: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/25.jpg)
![Page 26: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/26.jpg)
CONTENT AREA CAN BE STATIC OR DYNAMIC
![Page 27: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/27.jpg)
DYNAMIC CONTENT AREABUTTONS, IMAGES, MAPS,
LABELS, TABLES
![Page 28: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/28.jpg)
STATIC CONTENT AREATYPICALLY USED AS FALLBACK OPTION
![Page 29: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/29.jpg)
YOUR FAVORITE APPS
![Page 30: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/30.jpg)
TWITTER SHAZAM EVERNOTE
STRAVA CITI MOBILE EXPEDIA
![Page 31: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/31.jpg)
SWIFT
![Page 32: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/32.jpg)
SWIFTOBJECTIVE-C WITHOUT C
![Page 33: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/33.jpg)
CHRIS LATTNER
• CREATOR OF THE ORIGINAL LLVM TOOL CHAIN PROJECT
• STARTED WORKING ON SWIFT IN 2010
• HE WAS A RESEARCH INTERN AT MICROSOFT
• NOW LEADS DEVELOPMENT TOOLS EFFORT AT APPLE
![Page 34: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/34.jpg)
WHY SWIFT?
![Page 35: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/35.jpg)
THE POWER OF A SCRIPTING LANGUAGE
![Page 36: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/36.jpg)
THE PRODUCTIVITY OF A SCRIPTING LANGUAGE
![Page 37: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/37.jpg)
THE PERFORMANCE OF A NATIVE LANGUAGE
![Page 38: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/38.jpg)
READABLE & PREDICTABLE & MAINTAINABLE
![Page 39: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/39.jpg)
FAST ADOPTION BY PROGRAMMING COMMUNITY
![Page 40: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/40.jpg)
– The RedMonk Programming Language Rankings: January 2015
“Swift has gone from our 68th ranked language during Q3 to number 22 this quarter,
a jump of 46 spots.”
![Page 41: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/41.jpg)
WORKS WITH YOUR EXISTING OBJECTIVE-C FRAMEWORKS
![Page 42: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/42.jpg)
BRIDGES
![Page 43: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/43.jpg)
HIGHLY MODERN LANGUAGE CONSTRUCTS
![Page 44: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/44.jpg)
HEAVILY INFLUENCED FROM C#, RUBY, PYTHON, RUBY AND MANY MODERN LANGUAGES
![Page 45: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/45.jpg)
MODERN COMPILER TECHNOLOGY
![Page 46: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/46.jpg)
LLVM COMPILER AND TOOL CHAINS
![Page 47: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/47.jpg)
COMPILES THE CODE IN TO NATIVE CODE
![Page 48: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/48.jpg)
SMALLER RUNTIME
![Page 49: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/49.jpg)
EASY TO LEARN
![Page 50: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/50.jpg)
PLAYGROUND
![Page 51: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/51.jpg)
REPL (READ-EVAL-PRINT-LOOP)
TURNS YOUR DEBUGGING CONSOLE OF XCODE INTO AN INTERACTIVE SWIFT RUNTIME
EVALUATE AND INTERACT WITH YOUR RUNNING APP
WRITE NEW CODE TO SEE HOW IT WORKS IN A SCRIPT LIKE ENVIRONMENT
![Page 52: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/52.jpg)
REPL
- Write it in lldb when program runs - Use xcrun swift to run externally
![Page 53: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/53.jpg)
SWIFT COMPILER ARCHITECTURE
![Page 54: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/54.jpg)
![Page 55: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/55.jpg)
![Page 56: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/56.jpg)
QUICK BITES
![Page 57: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/57.jpg)
OBJECTIVE-C
NSDictionary *favoriteNumbers = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:7], @"Jane", [NSNumber numberWithInteger:21], @"Bob", [NSNumber numberWithInteger:99], @"Sarah", nil]];
![Page 58: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/58.jpg)
OBJECTIVE-CNSDictionary *favoriteNumbers = [NSDictionary
dictionaryWithObjectsAndKeys:[NSNumber numberWithInteger:7], @"Jane", [NSNumber numberWithInteger:21], @"Bob", [NSNumber numberWithInteger:99], @"Sarah", nil]];
SWIFTvar favoriteNumbers = ["Jane": 7, "Bob": 21, "Sarah": 99]
![Page 59: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/59.jpg)
CLOSURES// Closures var cities = ["New Delhi", "Trivandrum", "Kochi", "Bangalore"]
// Sort with delegates cities.sort({ (a, b) -> Bool in a < b })
![Page 60: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/60.jpg)
PARENTHESES// Closures var cities = ["New Delhi", "Trivandrum", "Kochi", "Bangalore"]
// Sort with delegates cities.sort({ (a, b) -> Bool in a < b })
![Page 61: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/61.jpg)
PARENTHESES// Closures var cities = ["New Delhi", "Trivandrum", "Kochi", "Bangalore"]
// Sort with delegates cities.sort { (a, b) -> Bool in a < b }
![Page 62: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/62.jpg)
TYPE INFERENCE
// Closures var cities = ["New Delhi", "Trivandrum", "Kochi", "Bangalore"]
// Sort with delegates cities.sort { (a, b) -> Bool in a < b }
![Page 63: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/63.jpg)
IMPLICIT RETURN// Closures var cities = ["New Delhi", "Trivandrum", "Kochi", "Bangalore"]
// Sort with delegates cities.sort { a, b in a < b }
![Page 64: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/64.jpg)
POSITIONAL PARAMS
// Closures var cities = ["New Delhi", "Trivandrum", "Kochi", "Bangalore"]
// Sort with delegates — Positional parameters cities.sort { $0 < $1 }
![Page 65: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/65.jpg)
OPERATOR AS CLOSURE// Closures var cities = ["New Delhi", "Trivandrum", "Kochi", "Bangalore"]
// Sounds interesting? cities.sort( < )
![Page 66: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/66.jpg)
OPTIONALS
![Page 67: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/67.jpg)
class Person { var residence : Residence? }
class Residence { var address : Address? }
class Address { var buildingNumber : String? var streetName : String? var apartmentNumber : String? }
![Page 68: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/68.jpg)
// Optional Binding if let home = paul.residence { if let postalAddress = home.address { if let building = postalAddress.buildingNumber { // Code } } }
![Page 69: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/69.jpg)
// Optional Chaining let buildingNumber = paul.residence?.address?.buildingNumber
![Page 70: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/70.jpg)
// optional chaining + bind + unwrap if let buildingNumber = paul.residence?.address?.buildingNumber {
}
![Page 71: Trends and Transformations in iOS Development](https://reader034.vdocument.in/reader034/viewer/2022042817/55aa42871a28ab2c478b45cb/html5/thumbnails/71.jpg)
THANK YOU
@sarat