SlideShare una empresa de Scribd logo
1 de 54
Introducción al
desarrollo Móvil
Chris Jimenez
Agenda
El código estara disponible en Github.com
despues de las charlas
Algunos “Hechos”
“El 90% de los adultos en USA tienen un
Smartphone“
En promedio desde los 12 años los niños
tienen un Smartphone
Son usado para todo, desde juegos,
transferencias bancarias, mensajería,clases
online, etc
Algunas Hechos
"Mobile to overtake fixed Internet access by 2014
Market Share Mundial
Market Share Continente Americano
Apple vs Android(Google)
Apple
Tiene estéticas de diseno muy definidas
Un sistema operativo Close Source (OS X,
UNIX)
iPod Touch, iPhone, iPad, Apple TV
Apple app store – 1,000,000+ app
Los sistemas operativos tienen una adopción
de usuario mucho mayor
Apple
700 millones de dispositivos vendidos
iOS
iOS
Fragmentación
Android
Tiene estéticas de diseno más flexible
Un sistema operativo Open source
(Flexibilidad y adopción)
LG, HTC, Samsung, Sony, Motorola, Nexus,
otros
Google Play – 1,000,000+ apps. y otros como
Amazon
Android Fragmentación
Sobre Desarrollo
Es utilizado OOD en el 99% de los casos
Se utilizan extensamente los patrones de
diseno
El acceso a datos externos es realizado por
medio de servicios REST
MVC
Controller
ViewModel
MVC
Model = Lo que su aplicacion es (No como se muestra)
Controller
ViewModel
MVC
Controller = Como su modelo es mostrado a el usuario
Controller
ViewModel
MVC
View= Componentes y UI controlado por el Controller
Controller
ViewModel
Respetar al comunicación
Respetar la comunicación entre las capas
Controller
ViewModel
Respetar la comunicación entre las capas
MVC
Controller
ViewModel
Puede la vista hablar con el Controlador?
MVC
Controller
ViewModel
El controlador puede crear “targets” y la vista puede enviar
acciones a esos targets cuando algo pasa en el UI
Target
Action
MVC
Controller
ViewModel
Pero que pasa cuando el controlador quiere actualizar
algo en la vista?
MVC
Controller
ViewModel
El controlador se asigna como un Delegate a la vista
Target
Action
Delegate
MVC
Controller
ViewModel
Las vistas no contienen datos.
Estos son dados por el controlador o
obtenidos por medio de delegates
Target
Action
Delegate
MVC
Controller
ViewModel
El controller es la mayoría de las veces la
fuente de datos No el Modelo!
Target
Action
Delegate
MVC
Controller
ViewModel
El Controlador interpreta/da formato a los
datos del modelo para la Vista
Target
Action
Delegate
MVC
Controller
ViewModel
Puede el modelo hablar directamente con el controlador???
Action
Delegate
MVC
Controller
ViewModel
No. El modelo debería de ser independiente!
Action
Delegate
MVC
Controller
ViewModel
Entonces que si el modelo tiene información por actualizar?
Action
Delegate
MVC
Controller
ViewModel
Usa una “estación de radio” o un mecanismo de difusión
Target
Action
Delegate
Notification , KVO
MVC
Controller
ViewModel
Controllers (O otros modelos) “observan” esa estación
Target
Action
Delegate
Notification , KVO
MVC
Acceso a Datos
En el 99% de los casos el acceso a datos
externos es realizado por medio de servicios
REST
Short of Representation State Transfer(Roy
Thomas)
Arquitectura (Client-Server)
REST
It’s the way the Web already works, just
formalized a bit and with some do’s and
don’ts.
Que es un Web Service?
Un servicio web es sólo una página web destinada para
una computadora para obtener y procesar
Más precisamente , un servicio Web es una página Web
que está destinado a ser consumido por un programa
autónomo en lugar de un navegador web
Principios REST claves
Dar a todo un ID
Conecta URLs juntas
Utiliza métodos estándares
Puede tener recursos con varias
representaciones
Comunicación sin mantener un estado
“statelessly”
Dar todo un ID
Todo recurso debería de tener un ID
URLs tambien pueden tener ID
URLs deberian de ser “human-readable”
Dar todo un ID
http://example.com/customers/1234
http://example.com/orders/2007/10/776654
http://example.com/products/4554
Colecciones de Recursos
http://example.com/customers/
http://example.com/orders/2007/11
http://example.com/products?color=green
Conecta cosas Juntas
En su core, es el concepto de Hypermedia o
la idea de los links
Links son algo que todos estamos
familiarizados, pero tal vez los vemos como
que son solo destinados a ser consumidos
por usuarios.
Conectar cosas juntas
<order self='http://example.com/customers/1234' >
<amount>23</amount>
<product ref='http://example.com/products/4554' />
<customer ref='http://example.com/customers/1234' />
</order>
Lo interesante de este enfoque
Es que los enlaces pueden apuntar a los
recursos que son proporcionados por una
aplicación diferente, un servidor diferente, o
incluso una empresa diferente en otro
continente
Metodos Estandares
En HTTP estos métodos son llamados
“verbos”
Los dos que todo mundo conoce son GET y
POST
Pero hay varias mas: PUT, DELETE, HEAD
and OPTIONS
Metodos Estandares
POST - CREATE
GET - RETRIEVE
PUT - UPDATE
DELETE- DELETE
Otras Cualidades
Seguro - Safe?
No tiene otra acción más que obtener datos
Cacheable
GET puede implementar un caché muy eficiente
En muchos casos el request al servidor no es ni
necesario
Ejemplo NO REST
Orders & Customers
Ejemplo REST
Multiples representaciones
El estandar que 100% JSON. Pero esto no
quiere decir que puedan proveer otros
estándares
XML
V-CARD
RSS
XML
http://www.pixel16.com/callmenot/phones/20.xml
<?xml version="1.0" encoding="UTF-8"?>
<response>
<phone>
<Phone>
<id>18</id>
<phone>3434343</phone>
<description>asf</description>
<created>2013-07-10 17:04:23</created>
<modified>2013-07-10 17:04:23</modified>
</Phone>
</phone>
</response>
Json
www.pixel16.com/callmenot/phones/18.json
{
"phone":{
"Phone":{
"id":"18",
"phone":"3434343",
"description":"asf",
"created":"2013-07-10 17:04:23",
"modified":"2013-07-10 17:04:23"
}
}
}
How To Design A Good API and Why it Matters
Gracias
Gracias!

Más contenido relacionado

Destacado

Deferred object
Deferred objectDeferred object
Deferred objectPiXeL16
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and PythonPiXeL16
 
WWDC 2016
WWDC 2016WWDC 2016
WWDC 2016PiXeL16
 
Mobile architecture problems and solutions.
Mobile architecture problems and solutions.Mobile architecture problems and solutions.
Mobile architecture problems and solutions.PiXeL16
 
Hooked - How to build habit forming products
Hooked - How to build habit forming products Hooked - How to build habit forming products
Hooked - How to build habit forming products PiXeL16
 
Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)PiXeL16
 

Destacado (7)

Deferred object
Deferred objectDeferred object
Deferred object
 
iOS 7
iOS 7 iOS 7
iOS 7
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
 
WWDC 2016
WWDC 2016WWDC 2016
WWDC 2016
 
Mobile architecture problems and solutions.
Mobile architecture problems and solutions.Mobile architecture problems and solutions.
Mobile architecture problems and solutions.
 
Hooked - How to build habit forming products
Hooked - How to build habit forming products Hooked - How to build habit forming products
Hooked - How to build habit forming products
 
Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)Rest Introduction (Chris Jimenez)
Rest Introduction (Chris Jimenez)
 

Similar a An introduction to Mobile Development (Spanish)

6.android introduccion
6.android   introduccion   6.android   introduccion
6.android introduccion guidotic
 
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsFrameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsMario Jose Villamizar Cano
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móvilesPideCurso
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-androidNilson Gongora
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3ERWIN AGUILAR
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3Leo31146695
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-androidCarlitos Sosa
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)VirgCSan
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx22040086
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu productoMauro Parra-Miranda
 
Nuevos retos en la gestion de la identidad digital para la nueva generación d...
Nuevos retos en la gestion de la identidad digital para la nueva generación d...Nuevos retos en la gestion de la identidad digital para la nueva generación d...
Nuevos retos en la gestion de la identidad digital para la nueva generación d...Tomás García-Merás
 
D jose manuel_rodriguez_-_oracle_-_nuevos_retos_en_la_gestion_de_la_identidad...
D jose manuel_rodriguez_-_oracle_-_nuevos_retos_en_la_gestion_de_la_identidad...D jose manuel_rodriguez_-_oracle_-_nuevos_retos_en_la_gestion_de_la_identidad...
D jose manuel_rodriguez_-_oracle_-_nuevos_retos_en_la_gestion_de_la_identidad...clienteafirma
 
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Xamarin Dev Days Málaga 2017 - Apps conectadas con AzureXamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Xamarin Dev Days Málaga 2017 - Apps conectadas con AzureJavier Suárez Ruiz
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeBruno Capuano
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebModelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebPierina G. Abad
 
Airwatch mexico sector educación jun 2013
Airwatch mexico sector educación jun 2013Airwatch mexico sector educación jun 2013
Airwatch mexico sector educación jun 2013Joel Trujillo
 

Similar a An introduction to Mobile Development (Spanish) (20)

6.android introduccion
6.android   introduccion   6.android   introduccion
6.android introduccion
 
Android
AndroidAndroid
Android
 
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startupsFrameworks y herramientas de desarrollo ágil para emprendedores y startups
Frameworks y herramientas de desarrollo ágil para emprendedores y startups
 
HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móviles
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Guía Android
Guía AndroidGuía Android
Guía Android
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Mdw guia-android
Mdw guia-androidMdw guia-android
Mdw guia-android
 
Maestrosdelweb guia-android
Maestrosdelweb guia-androidMaestrosdelweb guia-android
Maestrosdelweb guia-android
 
Backend middleware frontend (2)
Backend middleware frontend (2)Backend middleware frontend (2)
Backend middleware frontend (2)
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx
 
Usando azure para escalar tu producto
Usando azure para escalar tu productoUsando azure para escalar tu producto
Usando azure para escalar tu producto
 
Nuevos retos en la gestion de la identidad digital para la nueva generación d...
Nuevos retos en la gestion de la identidad digital para la nueva generación d...Nuevos retos en la gestion de la identidad digital para la nueva generación d...
Nuevos retos en la gestion de la identidad digital para la nueva generación d...
 
D jose manuel_rodriguez_-_oracle_-_nuevos_retos_en_la_gestion_de_la_identidad...
D jose manuel_rodriguez_-_oracle_-_nuevos_retos_en_la_gestion_de_la_identidad...D jose manuel_rodriguez_-_oracle_-_nuevos_retos_en_la_gestion_de_la_identidad...
D jose manuel_rodriguez_-_oracle_-_nuevos_retos_en_la_gestion_de_la_identidad...
 
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Xamarin Dev Days Málaga 2017 - Apps conectadas con AzureXamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
 
Modelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_DiseñowebModelo vista controlador #ihcpfgigs_Diseñoweb
Modelo vista controlador #ihcpfgigs_Diseñoweb
 
Airwatch mexico sector educación jun 2013
Airwatch mexico sector educación jun 2013Airwatch mexico sector educación jun 2013
Airwatch mexico sector educación jun 2013
 

An introduction to Mobile Development (Spanish)