end-to-end mobile app development (with ios and azure mobile services)
TRANSCRIPT
End-to-end Mobile App Development
@andri_yadi | http://andriyadi.com
codeMeetUp() - March 16, 2015
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!
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
//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
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:
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) } }
Craving to know more about iOS development?
Let’s join upcoming iOS 8 development class - with Swift
http://edu.dycode.co.id