Beginning Real World iOS App Development

73

Transcript of Beginning Real World iOS App Development

Page 1: Beginning Real World iOS App Development
Page 2: Beginning Real World iOS App Development

Please tweet with hashtag #BelajarSwift

Page 3: Beginning Real World iOS App Development

Your tools?Xcode 6

Page 4: Beginning Real World iOS App Development

Andri Yadi Bayu Wicaksono

Page 5: Beginning Real World iOS App Development

Andri YadiCEO, DyCode

Page 6: Beginning Real World iOS App Development

The first & largest iOS & OSX developer community in Indonesia

ID-Objective-CPresident

Page 7: Beginning Real World iOS App Development

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

Bayu WYMobile Team Lead, DyCode

Page 9: Beginning Real World iOS App Development

What is “real world”?✔

Page 10: Beginning Real World iOS App Development

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

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

iOSDevelopment stuffs

Let’s start with…

Page 13: Beginning Real World iOS App Development

iOS Devices

Page 14: Beginning Real World iOS App Development

iOS

Page 16: Beginning Real World iOS App Development

Xcode iOS Simulator iOS Developer Library

iOS

Page 17: Beginning Real World iOS App Development

Required StuffsRequired Stuffs

Page 18: Beginning Real World iOS App Development
Page 19: Beginning Real World iOS App Development

iOSin form of Xcode

Latest

Page 20: Beginning Real World iOS App Development
Page 21: Beginning Real World iOS App Development

Optional Stuffs

Page 22: Beginning Real World iOS App Development

Actual iOS Devices

Page 23: Beginning Real World iOS App Development
Page 24: Beginning Real World iOS App Development

More development stuffs

Page 25: Beginning Real World iOS App Development

Objective-CSince 2008

Page 26: Beginning Real World iOS App Development

Introducing Swift…Since June 2, 2014

Page 27: Beginning Real World iOS App Development

Required StuffsWhat does it mean for us?for long-time iOS developers - with Objective-C

Page 28: Beginning Real World iOS App Development

with…

It’s new way to achieve the same result

Page 29: Beginning Real World iOS App Development

Modern Designed for Safety Fast & Powerful Interactive Playgrounds Ready today!

Swift

Page 30: Beginning Real World iOS App Development
Page 31: Beginning Real World iOS App Development

Your skill/knowledge of Cocoa Touch framework is still applicable

Page 32: Beginning Real World iOS App Development

that have no experience developing iOS apps

What is it for the rest of us?

Page 33: Beginning Real World iOS App Development

Easier, faster to learn Safer More fun You can skip Objective-C completely

Swift is arguably…

Page 34: Beginning Real World iOS App Development

Bad news is…

Still need to learn about Cocoa Touch framework

Page 35: Beginning Real World iOS App Development

Swift PlaygroundDemo

Page 36: Beginning Real World iOS App Development

Design Pattern

Page 37: Beginning Real World iOS App Development

Model-View-Controller design pattern

Model View

Controller

Page 38: Beginning Real World iOS App Development

Model-View-Controller design pattern

Outlet

Page 39: Beginning Real World iOS App Development

Can View speak to Controller?

Outlet

?

Page 40: Beginning Real World iOS App Development

Sort of… The communication is “blind” and structured

Outlet

?

Page 41: Beginning Real World iOS App Development

The View sends the Action when stuffs happen in the UI

Target

Action

Page 42: Beginning Real World iOS App Development

WHAT R U TALKIN’ ABOUT?

Page 43: Beginning Real World iOS App Development

Another way, Controller sets itself as the View’s delegate

Delegate

Page 44: Beginning Real World iOS App Development

The delegate is set via a Protocol

Delegate

Page 45: Beginning Real World iOS App Development

Controllers are almost always that data source (not Model!)

Delegate

Data Source

Page 46: Beginning Real World iOS App Development

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

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

Model-View-Controller design pattern

NowPlayingController

NowPlayingView

NowPlaying

Page 49: Beginning Real World iOS App Development
Page 50: Beginning Real World iOS App Development

???

Page 51: Beginning Real World iOS App Development

iOS frameworks

Page 52: Beginning Real World iOS App Development

Touch ID PhotoKit Camera API HealthKit ResearchKit

CloudKit HomeKit SceneKit SpriteKit Metal

Handoff Extensions WatchKit

Page 53: Beginning Real World iOS App Development

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

Twitter

UIKitVideoToolbox

WebKit

Page 54: Beginning Real World iOS App Development

Human Interface Designhttps://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/

Page 55: Beginning Real World iOS App Development

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

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

Translucent background Displays lists in layers Enhanced transitions to give users a sense of hierarchy and depth

Depth

Page 58: Beginning Real World iOS App Development

http://www.teehanlax.com/tools/iphone

Page 59: Beginning Real World iOS App Development

Prepo

Page 60: Beginning Real World iOS App Development

BaseSqlite Manager

Page 61: Beginning Real World iOS App Development

App Store Submission

Page 62: Beginning Real World iOS App Development

you app can use this badge!

Page 63: Beginning Real World iOS App Development

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

Required StuffsBackend Servicesfor long-time iOS developers - with Objective-C

Page 65: Beginning Real World iOS App Development

DB & Storage

Authentication

Logic

Push

API Wrapper

Mobile Backend as a Service

Leverage BaaS

Page 66: Beginning Real World iOS App Development

Mobile Services

Microsoft Azure Mobile Services

a lot of BaaS providersTurn out…

Page 67: Beginning Real World iOS App Development

Microsoft Azure Mobile Services

Page 68: Beginning Real World iOS App Development

So, what is it?

Storage

Authentication

Logic

Push

Scheduler

Page 69: Beginning Real World iOS App Development

Get startedVisit azure.com

Free trial! worth $200 Or create temporary service: https://trywebsites.azurewebsites.net

Page 70: Beginning Real World iOS App Development

BONUS TOPIC?

Page 71: Beginning Real World iOS App Development

Intro to WatchKit

Page 72: Beginning Real World iOS App Development

WatchKit appDemo

Just do the demo

Page 73: Beginning Real World iOS App Development

DyCode www.dycode.com

@dycode