end-to-end mobile app development (with ios and azure mobile services)

48
End-to-end Mobile App Development @andri_yadi | http://andriyadi.com codeMeetUp() - March 16, 2015

Upload: andri-yadi

Post on 18-Jul-2015

520 views

Category:

Mobile


0 download

TRANSCRIPT

End-to-end Mobile App Development

@andri_yadi | http://andriyadi.com

codeMeetUp() - March 16, 2015

about me

CEO of

Co-founder of

http://jepret.in

7 years in a row

start up companies for 11 years15 years in software development

I assume you’re all coders :)

Disclaime

r

Develop end-to-end (server-driven) mobile app?

develop the backend1st you’ ll do

a backend needsTypically

Storage

Auth

Logic

Push

Typical Steps We’ll Take

Purchase a physical server or a VMInstall OS, Web Server, DB Server Install & configure server-side scripting/runtime (PHP, Node.js, Python, .NET, Java) …and other fine tuning for performance, security …1 - 2 days later, your server infra is up

Develop web API, authentication, push notification

Backe

nd

Typical Steps We’ll Take

1 - 2 weeks later, you have a mobile backend and accessible API

Congratulation

Backe

nd

Typical Steps We’ll Take

Prepare mobile project & integrate libraries: async HTTP client, JSON parser

Develop web API 2 - 3 days later, you’re ready to access the API

Fronte

nd

3 - 4 weeks later, you’re ready to develop your mobile app features :)

which is OK, if you’re doing it for fun!

OR…

DB & Storage

Authentication

Logic

Push

API Wrapper

Mobile Backend as a Service

Leverage BaaS

Mobile Services

Microsoft Azure Mobile Services

a lot of BaaS providersTurn out…

Microsoft Azure Mobile Services

So, what is it?

Storage

Authentication

Logic

Push

Scheduler

Mobile ServicesDemo

Deploy

for less than 5 minutes

Mobile ServicesAccessing

from iOS

iOSDevelopment stuffs

allow me talk a bit…

iOS

Objective-CSince 2008

Introducing Swift…Since June 2

, 2014

Not this one…

Note, I’m a fan :)

A new programming language for iOS and OSX

adding WindowsAzureMobileServices.framework

to your project

+

as easy as…

Typical Steps We’ll Take

Prepare mobile project & integrate libraries: async HTTP client, JSON parser

Develop web API 2 - 3 days later, you’re ready to access the API

Fronte

nd

Mobile ServicesDemo

Let’s do it!

from iOS for less than 5 minutes

AddingAuthentication

//client is instance of MSClient //assumed to sign-in with Twitter

client?.loginWithProvider("twitter", controller:self, animated:true) { //trailing closure for completion handler (user, error) -> Void in if user != nil { //do something about it! } }

as easy as adding this code on iOS side

Mobile ServicesDemo

add Auth to

for iOS for less than 5 minutes

azure mobile preview enable YOUR_MOBILE_SERVICE_NAME Users

Opt-in for Users featureGetting expanded data of signed in user, via call to user.getIdentities()

Install Azure-CLI Type command:

AddingServer-side logic

The case

Let’s say, upon successful sign-in (on client side), I want to register signed-in users to a table

Adding server-side logicOn “Insert” operation of User table, add this script:function insert(item, user, request) { var usersTable = tables.getTable('User'); usersTable.where({ userId: user.userId, }).read({ success: function(results) { if (results.length == 0) { insertNewUser(usersTable, user); } else { console.log('User exists'); request.respond(statusCodes.OK, results[0]); } } }); }

Cont… function insertNewUser(theUserTable, theUser) { theUser.getIdentities({ success: function (identities) { if (identities.twitter) { var newUser = { userId: theUser.userId}; if (identities.twitter.screen_name) { newUser.username = identities.twitter.screen_name; } theUserTable.insert(newUser, { success: function(newItem) { request.respond(statusCodes.OK, newItem); } }); } else { console.log('Identities is not retrieved'); request.respond(); } } }); }

On client-side

Add this Swift code upon successful sign-in:

let userTable = client?.tableWithName("User") userTable?.insert(["userId": user.userId]){ (item, error) in if let err = error { println("Error: " + err.description) } }

Mobile ServicesDemo

adding server-script

More Advance Use-Case & customisation…?

Contact [email protected] :)

Notes on the Microsoft Azure Platform

Infrastructure as a Service IaaS

Platform as a Service PaaS

Get startedVisit azure.com

Free trial! worth $200

Craving to know more about iOS development?

Let’s join upcoming iOS 8 development class - with Swift

http://edu.dycode.co.id

QA

a leading mobile & web apps developer, an educator, an early

adopter, an award-winning company

DyCode www.dycode.com

@dycode