iOS Apps: Nativas vs WebApps
¿Quien soy?
@iturpablo
twitter, stackoverflow, spring repository ...
MBA Ing Informático.
ReCompralo.com
Indice
¿Cómo empezó todo?
Breve comparación
Disección de una app de negocio
Apps Nativas
WebApps
Híbridas
Backend (te puede salvar la vida)
¿Quién gana?
Breve comparación
Si, ya se que esto está muy hablado.
Apps Nativas -> Fluidas y potentes
WebApps -> Corren en cualquier dispositivo.
Breve Comparación
Nativas:
-Solo pueden correr en una plataforma.
-Más tiempo y dinero en desarrollo
+Mejor experiencia de usuario.
+Suelen designan mucho de su código al SO
+No necesitan descargar más que la info de usuario
-Updates ¿? -> Le paso a Instagram
Breve Comparación
Problemas con WebApps:
-Nunca serán tan fluidas como nativas.
-Peor acceso a hardware
+Multiplataforma
+Updates, no problem -> al instante
¿Cómo empezó todo?
¿Cómo empezó todo?
Al inicio Steve Jobs y Apple veían un
futuro de webapps
¿Cómo empezó todo?
Pues lo de siempre, no se puede parar a los frikis :-)
Y
Apple reacciono
Disección de una app de negocio
Mi objetivo con esta presentación es hacer una
comparativa desde el punto de vista del informático
(mono rasca teclas).
Disección de una app de negocio
Interfáz gráfica.
Local Storage.
Sync y Offline access.
Live sync.
Acceso a hardware.
App Nativa
Basada en la IOS app de ReCompralo
Basada en la IOS app de ReCompralo
Stack:
-Xcode
-RestKit
-Zxing
-Facebook-sdk
App Nativa
Interfáz Gráfica
Interfáz Gráfica
Interfaz: StoryBoard, Integrar componentes, lucha cuerpo a
cuerpo.
App Nativa
Interfáz Gráfica - StoryBoard
StoryBoard
App Nativa
Interfáz Gráfica - Intergrar Componentes
Intergrar Componentes
Tan simple como:
-en el .h extender de un clase
-en el .m pasarle la info correcta
App Nativa
Interfáz Gráfica - Lucha cuerpo a cuerpo
Suerte ...
App Nativa
Local storage
Local storage
App Nativa
Local storage
Local storage
Bastante trivial, pero con muchos detalles.
-NSObject -> NSManageObject.
-Tratar con SQLite
-Ruta:
/Users/#Name#/Library/Application Support/iPhone Simulator/5.1/Applications/#ID#/Documents
-Instalar una db con info pre-cargada.
Cuidado
-Guardar info en local sesion"
App Nativa
Sync y offline access
Sync y offline access
No puedo expresar mi agradecimiento a esta librería
App Nativa
Local storage - Sync y offline access
Local storage - Sync y offline access
Reskit da "out of the box"
Simple request/response system
Core Data support
Object mapping system
Simple request/response system
WebApp
Basada en la WebApp de VentaFun
Basada en la WebApp de VentaFun
Stack:
-Backbone.js
-Cordoba
-Handlebars
-jquery, jqueryMobile, jqmNavigator
-UnderScore
-require
-Coffee Script
WebApp
Un poco de inspiración - TRELLO
TRELLO
http://prezi.com/skunatcrkp5m/trello-architecture/
WebApp
Backbone
Backbone
WebApp
Backbone - Estructura
Backbone - Estructura
WebNativa
Interfáz Gráfica
Interfáz Gráfica
BackBone.View
templates
html
Events
Handlers
WebNativa
Local storage
Local storage
DB
WebApp
Sync y offline access
Sync y offline access
www.saveideanow.com
Operaciones:
full(): Se descarga toda la collection
pull(): Pide información al server y la "mergea" con local
push(): Envia información al server con operaciones atómicas
incremental(): Primero hace un pull y luego un push.
WebApp Híbrida
PhoneGap y Cordoba.js
PhoneGap y Cordoba.js
Backends
Más importante de lo que parece
Más importante de lo que parece
¿Quién Gana?
Todo depende ...

iOS Apps: Nativas vs Webapps