iOS Apps: Nativas vs Webapps

Post on 03-Jul-2015

313 views 1 download

description

Charla de @iturpablo sobre distintos modos de afrontar el desarrollo de Apps para iOS en el VI Betabeers Mallorca

Transcript of iOS Apps: Nativas vs Webapps

iOS Apps: Nativas vs WebApps

¿Quien soy?

@iturpablotwitter, stackoverflow, spring repository ...

MBA Ing Informático.

ReCompralo.com

Indice

¿Cómo empezó todo?Breve comparación

Disección de una app de negocioApps Nativas

WebAppsHí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 ReCompraloBasada en la IOS app de ReCompralo

Stack:-Xcode -RestKit-Zxing-Facebook-sdk

App NativaInterfáz GráficaInterfá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 NativaLocal storageLocal storage

App NativaLocal storageLocal 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 NativaSync y offline accessSync y offline access

No puedo expresar mi agradecimiento a esta librería

App NativaLocal storage - Sync y offline accessLocal 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 VentaFunBasada en la WebApp de VentaFun

Stack:-Backbone.js-Cordoba-Handlebars-jquery, jqueryMobile, jqmNavigator-UnderScore-require-Coffee Script

WebApp

Un poco de inspiración - TRELLOTRELLO

http://prezi.com/skunatcrkp5m/trello-architecture/

WebApp

Backbone Backbone

WebApp

Backbone - Estructura Backbone - Estructura

WebNativaInterfáz GráficaInterfáz Gráfica

BackBone.Viewtemplates

html

Events

Handlers

WebNativaLocal storageLocal storage

DB

WebAppSync y offline accessSync 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íbridaPhoneGap y Cordoba.jsPhoneGap y Cordoba.js

BackendsMás importante de lo que pareceMás importante de lo que parece

¿Quién Gana?

Todo depende ...