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 years
15 years in software development
I assume you’re all coders :)
Disclaimer
Develop end-to-end (server-driven)
mobile app?
develop the backend
1st you’ll do
a backend needs
Typically
Storage
Auth
Logic
Push
Typical Steps We’ll Take
Purchase a physical server or a VM
Install 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
Backend
Typical Steps We’ll Take
1 - 2 weeks later, you have a mobile backend
and accessible API
Congratulation
Backend
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
Frontend
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 providers
Turn out…
Microsoft Azure
Mobile Services
So, what is it?
Storage
Authentication
Logic
Push
Scheduler
Mobile Services Demo
Deploy
for less than 5 minutes
Mobile Services
Accessing
from iOS
iOSDevelopment stuffs
allow me talk a bit…
iOS
Objective-C

Since 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
Frontend
Mobile Services Demo
Let’s do it!
from iOS for less than 5 minutes
Adding

Authentication
//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 Services Demo
add Auth to
for iOS for less than 5 minutes
azure mobile preview enable YOUR_MOBILE_SERVICE_NAME Users
Opt-in for Users feature
Getting expanded data of signed in user, via call to 

user.getIdentities()
Install Azure-CLI

Type command:
Adding

Server-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 logic
On “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 Services Demo
adding server-script
More Advance Use-Case &
customisation…?
Contact office@dycode.com :)
Notes on the Microsoft Azure Platform
Infrastructure as a Service
IaaS
Platform as a Service
PaaS
Get started
Visit 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

End-to-end Mobile App Development (with iOS and Azure Mobile Services)