+ All Categories
Home > Mobile > Trends and Transformations in iOS Development

Trends and Transformations in iOS Development

Date post: 18-Jul-2015
Category:
Upload: sarath-c
View: 4,577 times
Download: 0 times
Share this document with a friend
Popular Tags:
71
TRENDS & TRANSFORMATIONS IN IOS DEVELOPMENT
Transcript
Page 1: Trends and Transformations in iOS Development

TRENDS & TRANSFORMATIONS IN IOS DEVELOPMENT

Page 2: Trends and Transformations in iOS Development

@saratSOFTWARE ARCHITECT

Page 3: Trends and Transformations in iOS Development

WATCH

Page 4: Trends and Transformations in iOS Development

WATCH IS THE FIRST WEARABLE

PRODUCT FROM

Page 5: Trends and Transformations in iOS Development

EXTEND YOUR IPHONE

Page 6: Trends and Transformations in iOS Development

HEART-RATE SENSOR

USES GPS OF YOUR IPHONE

ACCELEROMETER

Page 7: Trends and Transformations in iOS Development

YOUR FITNESS MATE

Page 8: Trends and Transformations in iOS Development

THE SECRET HISTORY OF WATCH

Page 9: Trends and Transformations in iOS Development

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

DEVELOPER GUIDELINES

Page 11: Trends and Transformations in iOS Development

“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

WATCHKIT APP ARCHITECTURE

Page 13: Trends and Transformations in iOS Development

WATCHKIT APP ARCHITECTURE

Page 14: Trends and Transformations in iOS Development

USER INTERACTIONS

Page 15: Trends and Transformations in iOS Development

GLANCES

GIVES QUICK SUMMARY RESIDES WITHIN IPHONE APP

Page 16: Trends and Transformations in iOS Development

GLANCESQUICK ✪ FOCUS ✪ TIMELY

Page 17: Trends and Transformations in iOS Development

CHIPOTLE APP

Page 18: Trends and Transformations in iOS Development

CHIPOTLE APP

Page 19: Trends and Transformations in iOS Development

CHIPOTLE APP

Page 20: Trends and Transformations in iOS Development

NOTIFICATIONSCOMPANION WATCH APP CAN

SHOW THE NOTIFICATIONS FROM YOUR IPHONE APP

Page 21: Trends and Transformations in iOS Development

NOTIFICATIONS

SHORT-LOOK INTERFACE

LONG-LOOK INTERFACE

Page 22: Trends and Transformations in iOS Development

SHORT-LOOK INTERFACE

APP ICON +

APP NAME +

MESSAGE TITLE

Page 23: Trends and Transformations in iOS Development
Page 24: Trends and Transformations in iOS Development

LONG-LOOK INTERFACE

TITLE +

CONTENT AREA +

FOOTER

Page 25: Trends and Transformations in iOS Development
Page 26: Trends and Transformations in iOS Development

CONTENT AREA CAN BE STATIC OR DYNAMIC

Page 27: Trends and Transformations in iOS Development

DYNAMIC CONTENT AREABUTTONS, IMAGES, MAPS,

LABELS, TABLES

Page 28: Trends and Transformations in iOS Development

STATIC CONTENT AREATYPICALLY USED AS FALLBACK OPTION

Page 29: Trends and Transformations in iOS Development

YOUR FAVORITE APPS

Page 30: Trends and Transformations in iOS Development

TWITTER SHAZAM EVERNOTE

STRAVA CITI MOBILE EXPEDIA

Page 31: Trends and Transformations in iOS Development

SWIFT

Page 32: Trends and Transformations in iOS Development

SWIFTOBJECTIVE-C WITHOUT C

Page 33: Trends and Transformations in iOS Development

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

WHY SWIFT?

Page 35: Trends and Transformations in iOS Development

THE POWER OF A SCRIPTING LANGUAGE

Page 36: Trends and Transformations in iOS Development

THE PRODUCTIVITY OF A SCRIPTING LANGUAGE

Page 37: Trends and Transformations in iOS Development

THE PERFORMANCE OF A NATIVE LANGUAGE

Page 38: Trends and Transformations in iOS Development

READABLE & PREDICTABLE & MAINTAINABLE

Page 39: Trends and Transformations in iOS Development

FAST ADOPTION BY PROGRAMMING COMMUNITY

Page 40: Trends and Transformations in iOS Development

– 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

WORKS WITH YOUR EXISTING OBJECTIVE-C FRAMEWORKS

Page 42: Trends and Transformations in iOS Development

BRIDGES

Page 43: Trends and Transformations in iOS Development

HIGHLY MODERN LANGUAGE CONSTRUCTS

Page 44: Trends and Transformations in iOS Development

HEAVILY INFLUENCED FROM C#, RUBY, PYTHON, RUBY AND MANY MODERN LANGUAGES

Page 45: Trends and Transformations in iOS Development

MODERN COMPILER TECHNOLOGY

Page 46: Trends and Transformations in iOS Development

LLVM COMPILER AND TOOL CHAINS

Page 47: Trends and Transformations in iOS Development

COMPILES THE CODE IN TO NATIVE CODE

Page 48: Trends and Transformations in iOS Development

SMALLER RUNTIME

Page 49: Trends and Transformations in iOS Development

EASY TO LEARN

Page 50: Trends and Transformations in iOS Development

PLAYGROUND

Page 51: Trends and Transformations in iOS Development

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

REPL

- Write it in lldb when program runs - Use xcrun swift to run externally

Page 53: Trends and Transformations in iOS Development

SWIFT COMPILER ARCHITECTURE

Page 54: Trends and Transformations in iOS Development
Page 55: Trends and Transformations in iOS Development
Page 56: Trends and Transformations in iOS Development

QUICK BITES

Page 57: Trends and Transformations in iOS Development

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

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

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

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

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

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

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

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

OPERATOR AS CLOSURE// Closures var cities = ["New Delhi", "Trivandrum", "Kochi", "Bangalore"]

// Sounds interesting? cities.sort( < )

Page 66: Trends and Transformations in iOS Development

OPTIONALS

Page 67: Trends and Transformations in iOS Development

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

// 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

// Optional Chaining let buildingNumber = paul.residence?.address?.buildingNumber

Page 70: Trends and Transformations in iOS Development

// optional chaining + bind + unwrap if let buildingNumber = paul.residence?.address?.buildingNumber {

}

Page 71: Trends and Transformations in iOS Development

THANK YOU

@sarat


Recommended