rubyconf ar 2013_pdf
DESCRIPTION
RUbyConf ARgentina talk - Server Side Ruby Tips for mobile appsTRANSCRIPT
Server Side Ruby TipsFor Mobile apps
Monday, November 25, 13
Hello!Hanneli (a.k.a. @hannelita)
Software developer in Brazil
Middleware Consultant at
Coffee and Pokémon <3
Yo no hablo español muy bien
Monday, November 25, 13
What we will see
Monday, November 25, 13
What we will seeSoftware development - evolution
Monday, November 25, 13
What we will seeSoftware development - evolution
Welcome to mobile world!
Monday, November 25, 13
What we will seeSoftware development - evolution
Welcome to mobile world!
Do we need backend?
Monday, November 25, 13
What we will seeSoftware development - evolution
Welcome to mobile world!
Do we need backend?
Ruby for mobile apps backend
Monday, November 25, 13
What we will seeSoftware development - evolution
Welcome to mobile world!
Do we need backend?
Ruby for mobile apps backend
Helios environment
Monday, November 25, 13
What we will seeSoftware development - evolution
Welcome to mobile world!
Do we need backend?
Ruby for mobile apps backend
Helios environment
Funny gifs (or not)
Monday, November 25, 13
What we will seeSoftware development - evolution
Welcome to mobile world!
Do we need backend?
Ruby for mobile apps backend
Helios environment
Funny gifs (or not)
Monday, November 25, 13
Programming
Monday, November 25, 13
1990 -> 2000
Monday, November 25, 13
1990 -> 2000
Monday, November 25, 13
1990 -> 2000
Monday, November 25, 13
1990 -> 2000
Monday, November 25, 13
1990 -> 2000
Monday, November 25, 13
1990 -> 2000
Monday, November 25, 13
1990 -> 2000
Web
Monday, November 25, 13
SKILL SET
Monday, November 25, 13
SKILL SET
PHP
Monday, November 25, 13
SKILL SET
PHP
Apache
Monday, November 25, 13
SKILL SET
PHP
Apache
MySQLMonday, November 25, 13
SKILL SET
PHP
Apache
MySQLMonday, November 25, 13
EASY!
Monday, November 25, 13
EASY!
Monday, November 25, 13
Monday, November 25, 13
A little MOAR
Monday, November 25, 13
A little MOAR
Oracle
Monday, November 25, 13
A little MOAR
Oracle
NoSQL
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRuby
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRails
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vim
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpec
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
Cassandra
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
CassandraNode.js
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
CassandraNode.jsMeteor.js
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
CassandraNode.jsMeteor.js Backbone.js
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
CassandraNode.jsMeteor.js Backbone.js
Neo4j
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
CassandraNode.jsMeteor.js Backbone.js
Neo4jRedis
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
CassandraNode.jsMeteor.js Backbone.js
Neo4jRedis
Heroku
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
CassandraNode.jsMeteor.js Backbone.js
Neo4jRedis
HerokuGit
Monday, November 25, 13
A little MOAR
Oracle
NoSQLRubyRailsSinatra
Postgres
HTML
CSS
JS
jQuery
TDD vimRSpecMongo
CassandraNode.jsMeteor.js Backbone.js
Neo4jRedis
HerokuGit
Torquebox
Monday, November 25, 13
F*** YEAH
Monday, November 25, 13
2000 -> Nowadays
Monday, November 25, 13
2000 -> Nowadays
Monday, November 25, 13
2000 -> Nowadays
Monday, November 25, 13
2000 -> Nowadays
Monday, November 25, 13
2000 -> Nowadays
Monday, November 25, 13
2000 -> Nowadays
Monday, November 25, 13
2000 -> Nowadays
Monday, November 25, 13
2000 -> Nowadays
Monday, November 25, 13
2000 -> Nowadays
Mobile!
Monday, November 25, 13
Your mobile
Monday, November 25, 13
Your mobile
Bank account
Monday, November 25, 13
Your mobile
Bank account
Monday, November 25, 13
Your mobile
Bank account
Personal Trainer
Monday, November 25, 13
Your mobile
Bank account
Personal Trainer
Clock
Monday, November 25, 13
Your mobile
Bank account
Personal Trainer
Clock
Photo gallery
Monday, November 25, 13
Your mobile
Bank account
Personal Trainer
Clock
Photo gallery
Communication
Monday, November 25, 13
The Apple
Monday, November 25, 13
The Apple
Monday, November 25, 13
The Apple
Monday, November 25, 13
The Apple
Monday, November 25, 13
The Apple
Monday, November 25, 13
The Apple
Hey, sweet, do you have WhatsApp?
Monday, November 25, 13
iOS Development
Monday, November 25, 13
iOS Development
Objective C
Monday, November 25, 13
iOS Development
Objective C
iOS
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Foundation
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Foundation
C
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Foundation
C
C++
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Foundation
C
C++
UIKit
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Foundation
C
C++
UIKit CoreGraphics
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Foundation
C
C++
UIKit CoreGraphics
CoreServices
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Foundation
C
C++
UIKit CoreGraphics
CoreServices
CoreLocation
Monday, November 25, 13
iOS Development
Objective C
iOS
Xcode
SQLite
Foundation
C
C++
UIKit CoreGraphics
CoreServices
CoreLocation
ARC
Monday, November 25, 13
iOS Development
Monday, November 25, 13
iOS Development
Monday, November 25, 13
iOS Development
[[[[ ]]]]
Monday, November 25, 13
iOS Development
[[[[ ]]]]
Monday, November 25, 13
Life is too short to Objective C
Monday, November 25, 13
Life is too short to Objective C
Monday, November 25, 13
Keep doing Ruby
Monday, November 25, 13
BUT
Monday, November 25, 13
BUT
The app is nowpopular
Monday, November 25, 13
BUT
The app is nowpopular
Monday, November 25, 13
Wow
Monday, November 25, 13
Wow
Monday, November 25, 13
Wow
Monday, November 25, 13
Wow
ClientMonday, November 25, 13
Wow
Client ServerMonday, November 25, 13
Wow
Client ServerMonday, November 25, 13
OH NO!
Monday, November 25, 13
OH NO!
Objective C backend!
Monday, November 25, 13
OH NO!
Objective C backend!
Monday, November 25, 13
SALVATION
Monday, November 25, 13
SALVATION
Monday, November 25, 13
Let’s RUBY!
Monday, November 25, 13
Let’s RUBY!
What do you needfor backend, sir?
Monday, November 25, 13
Data Sync
Monday, November 25, 13
Data Sync
Monday, November 25, 13
Data Sync
Monday, November 25, 13
Data Sync
Monday, November 25, 13
Data Sync
Monday, November 25, 13
Data Sync
011001
Monday, November 25, 13
Data Sync
011001
Monday, November 25, 13
Data Sync
011001
Monday, November 25, 13
InApp Purchases
Monday, November 25, 13
InApp Purchases
Monday, November 25, 13
InApp Purchases
Monday, November 25, 13
InApp Purchases
Monday, November 25, 13
InApp Purchases
Monday, November 25, 13
InApp Purchases
Monday, November 25, 13
Push Notification
Monday, November 25, 13
Push Notification
Monday, November 25, 13
Push Notification
Monday, November 25, 13
Push Notification
Monday, November 25, 13
Push Notification
Monday, November 25, 13
Push Notification
Monday, November 25, 13
Let’s RUBY!
Monday, November 25, 13
Let’s RUBY!
No need to do from zero!
Monday, November 25, 13
Helios!
Keep lazy for backend!
Monday, November 25, 13
Helios Defaults
Monday, November 25, 13
Helios DefaultsHeroku app
Monday, November 25, 13
Helios DefaultsHeroku app
gem install helios
Monday, November 25, 13
Helios DefaultsHeroku app
gem install helios
helios new rubyconf
Monday, November 25, 13
Helios DefaultsHeroku app
gem install helios
helios new rubyconf
Monday, November 25, 13
Helios DefaultsHeroku app
gem install helios
helios new rubyconf
Monday, November 25, 13
Helios DefaultsHeroku app
gem install helios
helios new rubyconf
Monday, November 25, 13
Helios DefaultsHeroku app
gem install helios
helios new rubyconf
helios server
Monday, November 25, 13
Helios DefaultsHeroku app
gem install helios
helios new rubyconf
helios server
http://localhost:5000/admin
Monday, November 25, 13
Helios DefaultsHeroku app
gem install helios
helios new rubyconf
helios server
http://localhost:5000/admin
helios server
Monday, November 25, 13
Checklist
Data Model Sync
InApp Purchases
Push Notifications
Monday, November 25, 13
Checklist
Data Model Sync
InApp Purchases
Push Notifications
Monday, November 25, 13
Checklist
Data Model Sync
InApp Purchases
Push Notifications
Monday, November 25, 13
Checklist
Data Model Sync
InApp Purchases
Push Notifications
Monday, November 25, 13
Rails - application.rb
config.middleware.use Helios::Application do service :data, model: 'path/to/DataModel.xcdatamodel' service :push_notification service :in_app_purchaseend
Monday, November 25, 13
Data model Sync
Monday, November 25, 13
Data model SyncREST model - from
CoreData
Monday, November 25, 13
Data model SyncREST model - from
CoreData
GET /talks
Monday, November 25, 13
Data model SyncREST model - from
CoreData
GET /talks
POST /talks
Monday, November 25, 13
Data model SyncREST model - from
CoreData
GET /talks
POST /talks
GET /talks/2
Monday, November 25, 13
Data model SyncREST model - from
CoreData
GET /talks
POST /talks
GET /talks/2
PUT /talks/2
Monday, November 25, 13
Data model SyncREST model - from
CoreData
GET /talks
POST /talks
GET /talks/2
PUT /talks/2
DELETE /talks/2
Monday, November 25, 13
Push Notifications
Monday, November 25, 13
Push Notifications
Monday, November 25, 13
Push Notifications
Monday, November 25, 13
Push Notifications
Orbiter framework
Monday, November 25, 13
Push Notifications
Orbiter framework
Rack PushNotification
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
1. Register for PSN
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
1. Register for PSN
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS2. Receive
Token
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS2. Receive
Token
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
3. App sends token
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
3. App sends token
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
4. Notifies APNS when something happens
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
4. Notifies APNS when something happens
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS5. APNS
Sends the push
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS5. APNS
Sends the push
Monday, November 25, 13
Push Notifications
Orbiter framework Helios
Rack PushNotification
Apple APNS
Monday, November 25, 13
Open Source!
Monday, November 25, 13
Open Source!
helios
Monday, November 25, 13
Open Source!
helios rack-push-notification
Monday, November 25, 13
Open Source!
helios rack-push-notification
orbiter
Monday, November 25, 13
Open Source!
helios rack-push-notification
orbiter houston
Monday, November 25, 13
Open Source!
helios rack-push-notification
orbiter houston
Monday, November 25, 13
Open Source!
helios rack-push-notification
orbiter houston
Monday, November 25, 13
Thanks!Questions?
Monday, November 25, 13
Thanks!Questions?
@hannelita
Monday, November 25, 13
Thanks!Questions?
Monday, November 25, 13
Thanks!Questions?
ourdailycodes.com
Monday, November 25, 13
Thanks!Questions?
ourdailycodes.com hannelita.com
Monday, November 25, 13