SlideShare a Scribd company logo
1 of 19
Web y cliente iOS en
             45 min.
     Javier Moreno (@jmoreno78)
         Jorge Ortiz (@jdortiz)
Agenda
★ Web   + WS
 ๏ Ruby    on Rails
  ‣   Generación de la aplicación

  ‣   Andamios

★ Cliente        movil
 ๏ Storyboards
 ๏ NSURLConnection
                        2
Ruby on Rails
★ Aplicaciones    webs simples y
 bien hechas.
 ๏ MVC
 ๏ DRY
 ๏ Convention   over configuration.




                  3
¿Y si no sé Ruby?
★ Da   igual. Ponte que es fácil.
 ๏ Antecedentes   de perl, python...

★ Buscaalgo similar
 (ej.Django)
★ Lo   básico es trivial.




                  4
Punto de partida
   ★ Ruby instalado (1.9+)
   ★ Rails instalado (3.2+)
http://pragmaticstudio.com/blog/2010/9/23/install-rails-
ruby-mac




                            5
El servidor
★ Nueva   aplicación de rails

$ rails new MegaLists
$ cd MegaLists
$ rails server




                6
Aplicación de listas
 ★ Lista
  ๏ Nombre
  ๏ Descripción
$ rails generate scaffold List
name:string notes:string
$ rake db:migrate


                  7
Datos de prueba
★ seeds.db

$ emacs (edit) db/seeds.rb
$ rake db:seed




               8
La interfaz web
★ Arrancamos   el servidor


$ rails server

http://localhost:3000/lists
http://localhost:3000/lists.json



                 9
API REST
★ Representational    State
 Transfer.
★ Verbos    CRUD~ PUT, GET, POST,
 DELETE
★ Gratis.
★ JSON esuna representación de
 un recurso (los datos).

                 10
Probar con curl
★ Leer   (R)

$ curl -v -X GET -H 
-H “Accept:application/json” 
-H “Content-Type:application/
json” 
http://localhost:3000/lists.json



               11
El cliente iOS
★ Nueva   aplicación




                12
Características
★ Storyboards,   CoreData




                 13
Modificar el modelo




          14
Modificar el modelo




          14
Adaptando la plantilla
★ ORGANIZACIÓN!!!! Un header
  para las constantes.
★ En el MasterViewController
  hacer un poco de limpieza
 ๏ Quitar el insert   y su botón
 ๏ Cambiar el
   fetchedResultsController



                15
Llamando al servicio
★ NSURLConnection   y sus
 delegados.
★ Cargarel contenido en el
 managedObjectContext
★ Disfrutar
★ Si da tiempo...   borrar



              16
¿Y ahora?
★ Funcionalidad
★ Interfaz
★ Diseño
★ Pruebas unitarias
★ ...
★ 5 estrellas
              17
Bibliografía
★ Engineering       Long-Lasting
  Software
 ๏ Armando      Fox y David Patterson

★ Agile   Web Development with
  Rails
 ๏ Sam   Ruby




                     18

More Related Content

Similar to Web y cliente iOS en 45 min

Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Nelson Rojas Núñez
 
ADF 12c como tu "Backend"
ADF 12c como tu "Backend"ADF 12c como tu "Backend"
ADF 12c como tu "Backend"Alexis Lopez
 
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...Luis Bosque
 
Reactvolution
ReactvolutionReactvolution
Reactvolution_Lagash
 
003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdfDubiWeb.TK
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresJesús A. Rodríguez B.
 
Primeros pasos con neo4j
Primeros pasos con neo4jPrimeros pasos con neo4j
Primeros pasos con neo4jUbaldo Taladriz
 
Timerepublik
TimerepublikTimerepublik
Timerepublikbetabeers
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 
Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Fernando Rizzato
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 

Similar to Web y cliente iOS en 45 min (20)

Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009Presentacion Ruby on Rails en Universidad Autónoma 2009
Presentacion Ruby on Rails en Universidad Autónoma 2009
 
Scrum para uno
Scrum para unoScrum para uno
Scrum para uno
 
ADF 12c como Backend
ADF 12c como BackendADF 12c como Backend
ADF 12c como Backend
 
ADF 12c como tu "Backend"
ADF 12c como tu "Backend"ADF 12c como tu "Backend"
ADF 12c como tu "Backend"
 
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
Alto rendimiento y escalabilidad en plataformas Rails: Casos prácticos. Soluc...
 
Reactvolution
ReactvolutionReactvolution
Reactvolution
 
2014 04 padrino
2014 04 padrino2014 04 padrino
2014 04 padrino
 
Ruby on Rails en Grandes Companias, Casos Reales
Ruby on Rails en Grandes Companias, Casos RealesRuby on Rails en Grandes Companias, Casos Reales
Ruby on Rails en Grandes Companias, Casos Reales
 
003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf003-Introduccion-Angular.pdf
003-Introduccion-Angular.pdf
 
Workshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los ContenedoresWorkshop docker: Iniciando en el Mundo de los Contenedores
Workshop docker: Iniciando en el Mundo de los Contenedores
 
Primeros pasos con neo4j
Primeros pasos con neo4jPrimeros pasos con neo4j
Primeros pasos con neo4j
 
Timerepublik
TimerepublikTimerepublik
Timerepublik
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
Semana 2 Configuración entorno de desarrollo
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrollo
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC Introducción a NoSQL con MongoDB y FireDAC
Introducción a NoSQL con MongoDB y FireDAC
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 

Recently uploaded

Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 

Recently uploaded (20)

Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 

Web y cliente iOS en 45 min

  • 1. Web y cliente iOS en 45 min. Javier Moreno (@jmoreno78) Jorge Ortiz (@jdortiz)
  • 2. Agenda ★ Web + WS ๏ Ruby on Rails ‣ Generación de la aplicación ‣ Andamios ★ Cliente movil ๏ Storyboards ๏ NSURLConnection 2
  • 3. Ruby on Rails ★ Aplicaciones webs simples y bien hechas. ๏ MVC ๏ DRY ๏ Convention over configuration. 3
  • 4. ¿Y si no sé Ruby? ★ Da igual. Ponte que es fácil. ๏ Antecedentes de perl, python... ★ Buscaalgo similar (ej.Django) ★ Lo básico es trivial. 4
  • 5. Punto de partida ★ Ruby instalado (1.9+) ★ Rails instalado (3.2+) http://pragmaticstudio.com/blog/2010/9/23/install-rails- ruby-mac 5
  • 6. El servidor ★ Nueva aplicación de rails $ rails new MegaLists $ cd MegaLists $ rails server 6
  • 7. Aplicación de listas ★ Lista ๏ Nombre ๏ Descripción $ rails generate scaffold List name:string notes:string $ rake db:migrate 7
  • 8. Datos de prueba ★ seeds.db $ emacs (edit) db/seeds.rb $ rake db:seed 8
  • 9. La interfaz web ★ Arrancamos el servidor $ rails server http://localhost:3000/lists http://localhost:3000/lists.json 9
  • 10. API REST ★ Representational State Transfer. ★ Verbos CRUD~ PUT, GET, POST, DELETE ★ Gratis. ★ JSON esuna representación de un recurso (los datos). 10
  • 11. Probar con curl ★ Leer (R) $ curl -v -X GET -H -H “Accept:application/json” -H “Content-Type:application/ json” http://localhost:3000/lists.json 11
  • 12. El cliente iOS ★ Nueva aplicación 12
  • 16. Adaptando la plantilla ★ ORGANIZACIÓN!!!! Un header para las constantes. ★ En el MasterViewController hacer un poco de limpieza ๏ Quitar el insert y su botón ๏ Cambiar el fetchedResultsController 15
  • 17. Llamando al servicio ★ NSURLConnection y sus delegados. ★ Cargarel contenido en el managedObjectContext ★ Disfrutar ★ Si da tiempo... borrar 16
  • 18. ¿Y ahora? ★ Funcionalidad ★ Interfaz ★ Diseño ★ Pruebas unitarias ★ ... ★ 5 estrellas 17
  • 19. Bibliografía ★ Engineering Long-Lasting Software ๏ Armando Fox y David Patterson ★ Agile Web Development with Rails ๏ Sam Ruby 18

Editor's Notes

  1. \n
  2. Seguro que en alg&amp;#xFA;n momento nos hemos planteado la necesidad de disponer de un servicio web propio para alimentar alguna de nuestras aplicaciones (actualizaci&amp;#xF3;n de datos, gesti&amp;#xF3;n de InApp Purchases, notificaciones, etc). \nActualmente hay muchos servicios on-line que nos permiten gestionar estas necesidades con facilidad (Amazon Web Services, iCloud, Azure, Parse, MaaSive). Es conveniente, al menos, echar un vistazo a cada uno de ellos para saber que utilidad podemos sacar de ellos pero creo que tambi&amp;#xE9;n es conveniente hacer un acto de valent&amp;#xED;a y plantearnos el hacer nuestro propio servicio web. \nEl objetivo que nos hemos marcado para esta sesi&amp;#xF3;n de 45 minutos es grande: no solo nos basta con un servicio que alimente nuestra aplicaci&amp;#xF3;n. Tambi&amp;#xE9;n queremos una web que de soporte a los mismos datos y entre el maremagnun de opciones que hay disponibles para hacer esto nos hemos decantado por Ruby on Rails.\n
  3. Ruby on Rails es una forma de designar a un framework llamado Rails que dota al lenguaje de programaci&amp;#xF3;n Ruby de toda la funcionalidad para hacer aplicaciones web. En realidad es como si los que hacemos aplicaciones para iOS dijeramos que las hacemos en Objective-C on Cocoa Touch... no suena tan guay.\nRuby y rails arrastran esa maldici&amp;#xF3;n de ser &amp;#x201C;guays&amp;#x201D; lo que provoca tambi&amp;#xE9;n un rechazo/celos entre los fanaticos de otras plataformas. Ruby tiene fama de ser un lenguaje bonito, con el que da gusto programar. Alg&amp;#xFA;n &amp;#x201C;fan&amp;#xE1;tico&amp;#x201D; decidi&amp;#xF3; que ya que el nombre del lenguaje era una gema, porque no llamar a las diferentes librerias gemas tambi&amp;#xE9;n... y por esa raz&amp;#xF3;n mientras que los abigarrados programadores de php utilizan librerias los finos y elegantes programadores de ruby utilizan gemas. Rails es una gema, quiz&amp;#xE1; la m&amp;#xE1;s famosa, que se apoya en otras gemas muy famosas y envidiadas para hacer aplicaciones web de una forma muy sencilla.\nRuby on Rails respeta al 100 % el patr&amp;#xF3;n de arquitectura Modelo-Vista-Controlador, seguramente sea uno de los frameworks para el desarrollo de aplicaciones web m&amp;#xE1;s puristas en este sentido.\nTambi&amp;#xE9;n es muy escrupuloso con el cumplimiento del principio Don&amp;#xB4;t Repeat Yourself. Esto es muy agradable sobre todo a la hora de hacer cambios en el modelo... algo que hacemos continuamente mientras desarrollamos y que se puede convertir en un dolor de cabeza al pasar a producci&amp;#xF3;n. Gracias a esto, las migraciones en ruby son muy sencillas... mucho m&amp;#xE1;s que con Core Data.\nEl paradigma llamado Convention over configuration tambi&amp;#xE9;n est&amp;#xE1; en las raices de este framework y de la comunidad ruby en general. Ya veremos en nuestro ejemplo como es muy sencillo navegar por el c&amp;#xF3;digo de nuestra aplicaci&amp;#xF3;n ya que si la clase que conecta una entidad del modelo con la base de datos se llama List, la tabla se llamar&amp;#xE1; lists, el controlador se llamar&amp;#xE1; lists_controller, etc... \n
  4. Dale una oportunidad... seguro que tampoco sab&amp;#xED;as Objective-C y est&amp;#xE1;s aqu&amp;#xED;. Como vamos a ver a continuaci&amp;#xF3;n, hacer algo b&amp;#xE1;sico es muy muy sencillo. Ya habr&amp;#xE1; tiempo de ir profundizando en el lenguaje m&amp;#xE1;s adelante.\nDesde luego, lo que vamos a hacer nosotros se puede hacer con otros frameworks y otros lenguajes de programaci&amp;#xF3;n... busca el que sea m&amp;#xE1;s agradable para ti.\n
  5. &amp;#xBF;Que necesitamos para hacer nuestra aplicaci&amp;#xF3;n? Nuestro mac, que ya vendr&amp;#xE1; con ruby instalado. Lo mejor ser&amp;#xED;a actualizar a la &amp;#xFA;ltima versi&amp;#xF3;n ya que como es la primera aplicaci&amp;#xF3;n que vamos a hacer no tenemos problemas de versiones. En este enlace nos cuentan una forma de actualizar ruby, instalar rails y hacer una aplicaci&amp;#xF3;n sencilla. Son los pasos que he seguido yo para hacer la instalaci&amp;#xF3;n de rails en mi mac y el el ejemplo que vamos a ver es tan sencillo como el que viene en esa p&amp;#xE1;gina.\n\n
  6. &amp;#xBF;Que queremos hacer? una aplicaci&amp;#xF3;n web que llamaremos MegaLists. Al introducir por terminal rails new MegaLists, rails nos crea todo proyecto de la aplicaci&amp;#xF3;n... ya tenemos la aplicaci&amp;#xF3;n creada. Si arrancamos el servidor la podemos ver en funcionamiento...\nEl servidor... cuando lo has instalado?, como sabe donde est&amp;#xE1; alojado el proyecto? magia... las gemas tienen poderes y se encargan de estas cosas. Igual que no tenemos que preocuparnos por la base de datos, ya que rails gestiona las conexiones por nosotros, tambi&amp;#xE9;n incluye un peque&amp;#xF1;o servidor que nos permitir&amp;#xE1; hacer nuestras pruebas. Cuando se despliegue la aplicaci&amp;#xF3;n en producci&amp;#xF3;n si que ser&amp;#xE1; necesario configurar un servidor apache, instalar y configurar una base de datos, etc pero para desarrollo no necesitamos nada m&amp;#xE1;s que escribir tres palabras m&amp;#xE1;gicas en el terminal\n\n
  7. Lo &amp;#xFA;nico que necesita nuestra aplicaci&amp;#xF3;n es una tabla donde almacenar los elementos que vamos a listar. Si hemos decidido llamar a la tabla List (es importante que nosotros tambi&amp;#xE9;n hayamos interiorizado la Convention over configuration) y nos basta con un par de campos las palabras m&amp;#xE1;gicas son estas. \nAl pedirle a rails que nos genere un andamio (scaffold) este nos crea todo lo que necesitamos para disfrutar de nuestra nueva web y de los servicios que nuestra app va a consumir.\n\n
  8. Si queremos, podemos llenar unos datos de prueba a trav&amp;#xE9;s de unos ficheros de forma muy sencilla. Los mortales usamos text en lugar de emacs\n\n
  9. Y ya est&amp;#xE1;. Volvemos a arrancar el servidor, comprobamos que nuestra nueva p&amp;#xE1;gina web existe, que cumple con los prefectos del CoC y que, aunque es un poco fea, es totalmente funcional.\n\n
  10. La wikipedia lo explica muy bien. Se utiliza la potencia de http de contener en la llamada toda la informaci&amp;#xF3;n necesaria para comprender la petici&amp;#xF3;n. Cada recurso es definido univocamente por su URI y a trav&amp;#xE9;s de las operaciones http GET, POST, PUT y DELETE podemos crear (Create), leer (Read), actualizar (Update) y borrar (Delete). Todo esto nos lo incluye rails al hacer el scaffold.... como pone ah&amp;#xED;: gratis.\n\n
  11. \n
  12. \n
  13. Lo primero que hacemos es echar un vistazo a storyboard. Cambiamos el label de la vista de detalle por un textview.\n
  14. Editamos el modelo y haciendo un poquito de Convention over Configuration ponemos los mismos nombres que le dimos a la tabla de la aplicaci&amp;#xF3;n web. Adem&amp;#xE1;s, incluiremos el campo id, que aunque no se lo hemos pedido lo ha hecho el ActiveRecord por nosotros.\nLuego, volvemos al storyboard para incluir los nuevos campos en el detailviewcontroller. name se lo pondremos al title y notes al texto del textview.\n
  15. Creamos MegaLists.h e incluimos dos constantes, una con la url del servicio web y otra con el timeout que queremos fijar.\nIncluimos esta header en el prefix.\n
  16. \n
  17. \n
  18. \n