SlideShare a Scribd company logo
1 of 32
iOS + Ruby on Rails
   Технологические особенности
  построения мобильного сервиса
Но прежде...
Шаматов Иван
@wi11son
6 лет веб-девелопмента
Rails ( 2 ), iOS ( 3 )
О чем говорят мужчины?

  Зачем делать мобильный сервис?
  Как делать API?
  iOS + Rails
  Быстрая демонстрация
Зачем? - Вопрос к вам!
Мобильные сервисы
Вопрос в другом
   If you have ser vice




 Y U NO HAVE APP
Как делать API
Протокол связи между клиентами и сервером
     XML-RPC
     SOAP
     REST
XML-RPC
SOAP
REST

Рой Филдинг
(основной автор HTTP 1.0 и HTTP 1.1)
Representational State Transfer
(Передача состояния представления)
REST
Create   Read   Update   Destroy
REST
Create   Read   Update   Destroy

POST     GET     PUT     DELETE
REST
Create   Read     Update   Destroy

POST      GET      PUT     DELETE

INSERT   SELECT   UPDATE   DELETE
REST
Create     Read      Update   Destroy

POST       GET        PUT     DELETE

INSERT    SELECT     UPDATE   DELETE

create   list/show   update   destroy
REST

GET /users
POST /users       name=Ivan...
PUT /users/1      name=not_Ivan...
DELETE /users/1
У гугла проблемы:
Объекты слишком сложно описываются
У гугла проблемы:
Объекты слишком сложно описываются
  Дайте работать с частями объектов
У гугла проблемы:
Объекты слишком сложно описываются
  Дайте работать с частями объектов
XML не всегда лучший выбор
У гугла проблемы:
Объекты слишком сложно описываются
  Дайте работать с частями объектов
XML не всегда лучший выбор
  Используйте всё: XML, JSON, ATOM, CSV
У гугла проблемы:
Объекты слишком сложно описываются
  Дайте работать с частями объектов
XML не всегда лучший выбор
  Используйте всё: XML, JSON, ATOM, CSV
REST’a бывает недостаточно
У гугла проблемы:
Объекты слишком сложно описываются
  Дайте работать с частями объектов
XML не всегда лучший выбор
  Используйте всё: XML, JSON, ATOM, CSV
REST’a бывает недостаточно
   Дополненный REST с новыми глаголами
iOS + Rails
Rails              iOS
                                RESTKit
        RESTful контроллеры
Связь     RESTful роутинги
                              JSONRequest
                                HTTPriot
Rails                iOS
                                   RESTKit
         RESTful контроллеры
 Связь     RESTful роутинги
                                 JSONRequest
                                   HTTPriot

                                 CoreData,
Данные   Active Record
                               RESTKit, iORM
RESTKit
Rails                 iOS
                                    RESTKit
          RESTful контроллеры
 Связь      RESTful роутинги
                                  JSONRequest
                                    HTTPriot

                                  CoreData,
Данные    Active Record
                                RESTKit, iORM
 Авто-                            Храни куки,
          Devise, Authlogic       отсылай при
ризация                         каждом запросе
Rails                 iOS
                                    RESTKit
          RESTful контроллеры
 Связь      RESTful роутинги
                                  JSONRequest
                                    HTTPriot

                                  CoreData,
Данные    Active Record
                                RESTKit, iORM
 Авто-                            Храни куки,
          Devise, Authlogic       отсылай при
ризация                         каждом запросе
          Храни device ID,
 Push                            Делай сам
             gem apn
Демонстрация:
      ожидание
Приложение собирает данные из полей
Приложение формирует объект order
RESTKit преобразует объект в JSON
RESTKit отправляет JSON по сформированному адресу
Rails авторизует по куки
Rails приложение принимает JSON
Rails контроллер инициализирует объект
Rails сохраняет в базу
Возвращает JSON ответ в наше приложение
Демонстрация:
     реальность
Все данные в GET
Rails сохраняет объект
Code 302
кинуть alert
Спасибо*




           за терпение
Codecademy


Вы можете помочь!

More Related Content

Similar to iOS + Rails

Building corporate portals with liferay JEEConf 2011
Building corporate portals with liferay   JEEConf 2011Building corporate portals with liferay   JEEConf 2011
Building corporate portals with liferay JEEConf 2011Alexey Kakunin
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéInterSystems CEE
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKCisco Russia
 
!2hl++2008 Restful Architechture
!2hl++2008 Restful Architechture!2hl++2008 Restful Architechture
!2hl++2008 Restful ArchitechtureOntico
 
RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)Sergey Skvortsov
 
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf Conference
 
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Dmitriy Krukov
 
REST и HATEOAS
REST и HATEOASREST и HATEOAS
REST и HATEOASArtem Bey
 
Big switch: жизнь после Microsoft
Big switch: жизнь после MicrosoftBig switch: жизнь после Microsoft
Big switch: жизнь после MicrosoftAlexander Byndyu
 
Артем Тритяк, Lead Front-End developer в Electric Cloud
 Артем Тритяк, Lead Front-End developer в Electric Cloud Артем Тритяк, Lead Front-End developer в Electric Cloud
Артем Тритяк, Lead Front-End developer в Electric CloudProvectus
 
Kharkiv JS 2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Kharkiv JS  2015: Боль и радость создания изоморфных приложений на ReactJS (RU)Kharkiv JS  2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Kharkiv JS 2015: Боль и радость создания изоморфных приложений на ReactJS (RU)Viktor Turskyi
 
Adn@it'summer - Изоморфные приложения с React и Redux
Adn@it'summer - Изоморфные приложения с React и ReduxAdn@it'summer - Изоморфные приложения с React и Redux
Adn@it'summer - Изоморфные приложения с React и ReduxADN Digital Studio
 
Программируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EMПрограммируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EMCisco Russia
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsMax Klymyshyn
 
Консервативный Backend на Node.js / Дмитрий Ляпин (Recrumatic)
Консервативный Backend на Node.js / Дмитрий Ляпин (Recrumatic)Консервативный Backend на Node.js / Дмитрий Ляпин (Recrumatic)
Консервативный Backend на Node.js / Дмитрий Ляпин (Recrumatic)Ontico
 

Similar to iOS + Rails (18)

Building corporate portals with liferay JEEConf 2011
Building corporate portals with liferay   JEEConf 2011Building corporate portals with liferay   JEEConf 2011
Building corporate portals with liferay JEEConf 2011
 
Разработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для CachéРазработка мобильного и веб интерфейса для Caché
Разработка мобильного и веб интерфейса для Caché
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
 
Railsclub 2012
Railsclub 2012Railsclub 2012
Railsclub 2012
 
!2hl++2008 Restful Architechture
!2hl++2008 Restful Architechture!2hl++2008 Restful Architechture
!2hl++2008 Restful Architechture
 
RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)RESTful Architechture (Highload++ 2008)
RESTful Architechture (Highload++ 2008)
 
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
ZFConf 2011: Создание REST-API для сторонних разработчиков и мобильных устрой...
 
Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5Мировые информационные ресурсы. Лекция 5
Мировые информационные ресурсы. Лекция 5
 
REST и HATEOAS
REST и HATEOASREST и HATEOAS
REST и HATEOAS
 
Libraries
LibrariesLibraries
Libraries
 
Libraries
LibrariesLibraries
Libraries
 
Big switch: жизнь после Microsoft
Big switch: жизнь после MicrosoftBig switch: жизнь после Microsoft
Big switch: жизнь после Microsoft
 
Артем Тритяк, Lead Front-End developer в Electric Cloud
 Артем Тритяк, Lead Front-End developer в Electric Cloud Артем Тритяк, Lead Front-End developer в Electric Cloud
Артем Тритяк, Lead Front-End developer в Electric Cloud
 
Kharkiv JS 2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Kharkiv JS  2015: Боль и радость создания изоморфных приложений на ReactJS (RU)Kharkiv JS  2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
Kharkiv JS 2015: Боль и радость создания изоморфных приложений на ReactJS (RU)
 
Adn@it'summer - Изоморфные приложения с React и Redux
Adn@it'summer - Изоморфные приложения с React и ReduxAdn@it'summer - Изоморфные приложения с React и Redux
Adn@it'summer - Изоморфные приложения с React и Redux
 
Программируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EMПрограммируемость корпоративной сети с Cisco APIC-EM
Программируемость корпоративной сети с Cisco APIC-EM
 
LvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.jsLvivJS 2014 - Win-win c React.js
LvivJS 2014 - Win-win c React.js
 
Консервативный Backend на Node.js / Дмитрий Ляпин (Recrumatic)
Консервативный Backend на Node.js / Дмитрий Ляпин (Recrumatic)Консервативный Backend на Node.js / Дмитрий Ляпин (Recrumatic)
Консервативный Backend на Node.js / Дмитрий Ляпин (Recrumatic)
 

iOS + Rails

  • 1. iOS + Ruby on Rails Технологические особенности построения мобильного сервиса
  • 2. Но прежде... Шаматов Иван @wi11son 6 лет веб-девелопмента Rails ( 2 ), iOS ( 3 )
  • 3. О чем говорят мужчины? Зачем делать мобильный сервис? Как делать API? iOS + Rails Быстрая демонстрация
  • 6. Вопрос в другом If you have ser vice Y U NO HAVE APP
  • 7. Как делать API Протокол связи между клиентами и сервером XML-RPC SOAP REST
  • 10.
  • 11. REST Рой Филдинг (основной автор HTTP 1.0 и HTTP 1.1) Representational State Transfer (Передача состояния представления)
  • 12. REST Create Read Update Destroy
  • 13. REST Create Read Update Destroy POST GET PUT DELETE
  • 14. REST Create Read Update Destroy POST GET PUT DELETE INSERT SELECT UPDATE DELETE
  • 15. REST Create Read Update Destroy POST GET PUT DELETE INSERT SELECT UPDATE DELETE create list/show update destroy
  • 16. REST GET /users POST /users name=Ivan... PUT /users/1 name=not_Ivan... DELETE /users/1
  • 17. У гугла проблемы: Объекты слишком сложно описываются
  • 18. У гугла проблемы: Объекты слишком сложно описываются Дайте работать с частями объектов
  • 19. У гугла проблемы: Объекты слишком сложно описываются Дайте работать с частями объектов XML не всегда лучший выбор
  • 20. У гугла проблемы: Объекты слишком сложно описываются Дайте работать с частями объектов XML не всегда лучший выбор Используйте всё: XML, JSON, ATOM, CSV
  • 21. У гугла проблемы: Объекты слишком сложно описываются Дайте работать с частями объектов XML не всегда лучший выбор Используйте всё: XML, JSON, ATOM, CSV REST’a бывает недостаточно
  • 22. У гугла проблемы: Объекты слишком сложно описываются Дайте работать с частями объектов XML не всегда лучший выбор Используйте всё: XML, JSON, ATOM, CSV REST’a бывает недостаточно Дополненный REST с новыми глаголами
  • 24. Rails iOS RESTKit RESTful контроллеры Связь RESTful роутинги JSONRequest HTTPriot
  • 25. Rails iOS RESTKit RESTful контроллеры Связь RESTful роутинги JSONRequest HTTPriot CoreData, Данные Active Record RESTKit, iORM
  • 27. Rails iOS RESTKit RESTful контроллеры Связь RESTful роутинги JSONRequest HTTPriot CoreData, Данные Active Record RESTKit, iORM Авто- Храни куки, Devise, Authlogic отсылай при ризация каждом запросе
  • 28. Rails iOS RESTKit RESTful контроллеры Связь RESTful роутинги JSONRequest HTTPriot CoreData, Данные Active Record RESTKit, iORM Авто- Храни куки, Devise, Authlogic отсылай при ризация каждом запросе Храни device ID, Push Делай сам gem apn
  • 29. Демонстрация: ожидание Приложение собирает данные из полей Приложение формирует объект order RESTKit преобразует объект в JSON RESTKit отправляет JSON по сформированному адресу Rails авторизует по куки Rails приложение принимает JSON Rails контроллер инициализирует объект Rails сохраняет в базу Возвращает JSON ответ в наше приложение
  • 30. Демонстрация: реальность Все данные в GET Rails сохраняет объект Code 302 кинуть alert
  • 31. Спасибо* за терпение

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n