Desarrollando para nuevos dispositivos
Upcoming SlideShare
Loading in...5
×
 

Desarrollando para nuevos dispositivos

on

  • 1,879 views

 

Statistics

Views

Total Views
1,879
Slideshare-icon Views on SlideShare
1,876
Embed Views
3

Actions

Likes
1
Downloads
24
Comments
0

1 Embed 3

http://www.linkedin.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • • Quienes somos y por que estamos aqui ¿De dónde venimos? - Historia ◦ jME ◦ Windows Mobile / Windows CE ◦ Palm OS •     ¿En dónde estamos? - Estado del arte ◦ Desarrollo de aplicaciones Web ▪ JQuery mobile ▪ Sencha ▪ HTML5 • Desarrollo de aplicaciones nativas ▪ BlackBerry ▪ iOS ▪ Android ▪ El resto (Windows Phone 7, webOS, Bada, Symbian) ▪ Desarrollo híbrido ▪ phonegap ▪ titanium developer ▪ unity ▪ corona • ¿Para dónde vamos? - T endencias ◦ Realidad aumentada, más aumentada ◦ Aún más tabletas ◦ NFC ◦ De pronto ahora sí: TVs, lavadoras, neveras online  
  • Hemos trabajado en: - Aplicación "periódico EL TIEMPO" para iPad - Aplicación "ENTER.CO" para iPad - Aplicación "El Espectador" para iPad - Sitio m.eltiempo.com - Sitio m.portafolio.com.co - Sitio m.vive.in - Sitio m.enter.co 
  • No nos interesa aquí discutir los aspectos técnicos de JME, que si CDC, que si CLDC, que que es MIDP, sino su aporte histórico al mundo actual. J2ME es solamente el nombre de la última iteración de Java orientada hacia el desarrollo en plataformas no convencionales. (bueno, realmente la penúltima, J2ME ahora se llama JME) Java empezó como el proyecto Oak, una subdivisión del proyecto Green, un proyecto interno de Sun Microsystems para generar una plataforma con el lema "Write Once, Run Anywhere". Cuando el equipo interno de Sun demostró por primera vez el proyecto Green, lo que se convertiría en Java, demostraron una pantalla táctil de 7'' capaz de controlar varios artefactos para el hogar. Estamos hablando del año 1992. Realmente, Java estuvo muy adelantado para su tiempo. Android ha tomado la antorcha ahora: en el último Google I/O, anunciaron que sus planes para la plataforma no distan mucho de lo que quiso originalmente Sun con Java. J2ME no es en absoluto una tecnología muerta: La comunidad que desarrolla para estos dispositivos aún es muy grande y activa, sobre todo en países como Colombia en donde la penetración de Smartphones y teléfonos que NO soporten Java es muy pequeña aún.
  • Los primeros ensayos de Microsoft con el mundo móvil empezaron con un proyecto llamado WinPad (¿les suena familiar?). Corría el año 1994, y Microsoft en su poderío ya tenía abordo a fabricantes como Motorola y Compaq. Sin embargo, como sucede muchas veces, el proyecto estaba muy adelantado a su tiempo y nunca fue puesto en producción debido a la gran cantidad de tecnologías inmaduras que requería, como el reconocimiento de escritura o incluso las baterías de la época. Después de proyectos adicionales y muchas iteraciones internas, de la base del proyecto WinPad surgió Windows CE en el 95. Sin embargo, debido a las presiones del mercado y la historia del Apple Newton se lanzó bajo el paradigma de "PC Companion" y no como el de una plataforma stand-alone. Sin embargo, lentamente Windows CE también quiso llegar a algo similar a Java: estar en todas partes. Aún hoy en día, Windows CE está en  Después de muchas iteraciones que fueron lentamente consolidando el éxito de la plataforma hasta llegar al Pocket PC y las líneas de Windows Mobile, Microsoft desarrolló muchos paradigmas y tecnologías que se usan hoy en día.  El gran problema que tuvo Microsoft (en nuestro concepto al menos) fue que siempre vio la computación móvil como una mera extensión de su gran plataforma de computación de escritorio. Por ello, tecnologías como ActiveSync, que se encargaban de sincronizar los documentos e información entre  los dispositivos y los computadores llegaron a ser muy maduras, pero también limitaron mucho la visión de MS lo que se podía lograr con los dispositivos móviles. Microsoft es el gran responsable de la popularización del PC en el hogar; pero además, también se les debe crédito por ayudar en gran medida a popularizar la computación móvil como una alternativa real y útil para los negocios. 
  • Si hay que darle crédito a Microsoft por la popularización de la computación móvil, la otra mitad de los honores los lleva Palm. A diferencia de sus contemporáneos, Palm OS no quería ser una plataforma embebible en cualquier dispositivo: Palm se concentraba única y exclusivamente en lo que siempre hizo mejor: hacer la computación móvil simple. El legado de Palm es muy importante hoy en día. La mayoría de paradigmas actuales de interfaz gráfica están inspirados o basados en Palm OS.
  • De los inicios de Apple solo hay que decir que no todos los productos de una empresa pueden ser exitosos. El Newton se convirtió en un ejemplo de lo que NO debía hacerse en los móviles. Nokia siempre fue un gran innovador en el mercado, y la linea Symbian fue la primera en popularizar los Smartphones. Lo que Palm con su tradición e inventiva no pudo lograr con el Treo, Nokia lo hizo de una manera muy simple: inundando el mercado con múltiples dispositivos orientados a diferentes nichos y perfiles de usuario, a precios más razonables que sus competidores. Mientras otras plataformas luchaban por capturar el mercado empresarial, Nokia tomaba el mercado de consumo virtualmente solo. Por último, es importante destacar a RIM con su plataforma BlackBerry. Lo que alguna vez empezó como un beeper que podía leer correo electrónico se convirtió en una línea icónica de dispositivos empresariales. RIM hizo realidad el concepto de mail push, toda una hazaña en 1999, y algo con lo que aún luchaban varias plataformas 10 años después.
  • html5 es movil html5 es capaz html5 es abierto html5 rocks!   HTML5 esta aca funcionando en los dispositivos moviles de hoy en día -html5 tiene muchas caractersiticas que lo hacen idela para dispositivos móiles -html5 esta permitiendo hacer muchas cosas que estan mejorarndo la Web   -htmlt5 permite desarrollar todo tipo de aplicaciones Web
  • cada uno de estos tiene un lenguajes de programación diferentes con el cual se debe enfrentar. -mucho trabajo -mucho aprendizaje -mucho tiempo y dinero para programar y publicar una aplicación
  • todos estos dispositivos tienen browser y la mayoria  de ellos tienen browsers que soportan las ultimas caracteristicas de html5 HTML5 esta en todas partes.... trabajando en los dispositivos de hoy: Moviles Tablets TVs etc..
  • A High Quality. A browser that’s capable of, at minimum, utilizing media queries (a requirement for jQuery Mobile). These browsers will be actively tested against but may not receive the full capabilities of jQuery Mobile. B Medium Quality. A capable browser that doesn’t have enough market share to warrant day-to-day testing. Bug fixes will still be applied to help these browsers. C Low Quality. A browser that is not capable of utilizing media queries. They won’t be provided any jQuery Mobile scripting or CSS (falling back to plain HTML and simple CSS). Upcoming browser. This browser is not yet released but is in alpha/beta testing.
  • A High Quality. A browser that’s capable of, at minimum, utilizing media queries (a requirement for jQuery Mobile). These browsers will be actively tested against but may not receive the full capabilities of jQuery Mobile. B Medium Quality. A capable browser that doesn’t have enough market share to warrant day-to-day testing. Bug fixes will still be applied to help these browsers. C Low Quality. A browser that is not capable of utilizing media queries. They won’t be provided any jQuery Mobile scripting or CSS (falling back to plain HTML and simple CSS). Upcoming browser. This browser is not yet released but is in alpha/beta testing.
  • embeber webviews en una aplicación nativa!
  • cada uno de estos tiene un lenguajes de programación diferentes con el cual se debe enfrentar. -mucho trabajo -mucho aprendizaje -mucho tiempo y dinero para programar y publicar una aplicación
  • Iigual hay que hacer algunas personalización para que funcione de igual  manera en todos los dispositivos, y es aqui donde entran a jugar los frameworks jQuery mobile Sencha touch Boilerplate Zepto.js iUI Jo The M project DHTMLX touch
  • • Interfaces optimizadas para dispositivos de pantalla touch • Eventos touch mejorados  • Progressive enhancement  • Soporte multiplataforma • Integración de datos (AJAX, JSONP, YQL) • Adaptación de orientación en multiples browser • Iconos para home screen • Sitemap móvil • Caché offline de HTML5 • Y muchas cosas más... ejemplo: http://www.sencha.com/products/touch/demos/ http://jquerymobile.com/demos/1.0a4.1/  
  • graceful degradation, con la ayuda de frameworks como modernizer...y asi se va  solucionando el problema de quere soportar dispositivos de ultima generación y  seguir soportando otros dispositivos ya no tan nuevos.     Frameworks como Modernizr son perfectos para poder ejecutar HTML5 y CSS3 hoy sin preocuparse por los dispositivos que no lo soportan
  • HTML5 permite escalar horizontalmente de forma sencilla   Se reutiliza el back-end y se personaliza un poco el fron-end
  • -Geolocalización, offline "local storage" -eventos multi-touch -orientación del dispositivo  "acelerometro" -speech recognition "diferentes tipos de media(voz, video, fotos)" -reproducción de video y audio, -gpl? "3d" -web-socket "real streaming"
  • Básicamente, se desarrolla en nativo cuando uno no puede hacerlo en HTML5. Lo que mencionó Sergio anteriormente acerca del soporte a sensores y otro tipo de cosas suena bien en el papel, pero no es cierto en el 100% de los casos. Si a los fabricantes les da por meter un nuevo sensor (digamos, un sensor de temperatura, que permitiría hacer aplicaciones que te dijeran cuando es el mejor momento para tomarte una CocaCola -Este no es un espacio patrocinado!-) se demorarían en poner la especificación dentro de los estándares Web. Nativo es donde está la mayor innovación, al menos en lo que respecta al harware. Storage: Caso EL TIEMPO. No se hizo una aplicación Web porque cuando inició el desarrollo de la aplicación, hace más de 1 año (Abril de 2010) no existían soluciones como PhoneGap o Titanium aún para iPad (recordemos que el iPad acababa de salir). La aplicación requería guardar gran cantidad de datos en el dispositivo, lo cual no era posible (no es   posible, aún) con HTML5 (Local storage tiene un límite de 5MB según su especificación).
  • El desarrollo para iOS se realiza en Objective C, un fork de C propietario de Apple. - Soporte a OpenGL ES - Acceso al hardware: Giroscopio, acelerómetro, Multitouch, cámara, micrófono, sonido, brújula. Dentro de las ventajas que tiene esta plataforma se encuentra la reducida fragmentación. De cualquier manera, hay fragmentación debido a que no todos los dispositivos tienen las mismas capacidades (no todos tienen retina display, o cámara frontal, o giroscopio). De igual manera para el iPad! Apple permite hacer aplicaciones que sirven tanto para iPad como para iPhone. Nuestra recomendación? NO LO HAGA A MENOS DE QUE SEA NECESARIO. La ventaja de hacerlo es que la aplicación tendrá la misma base de código para iPhone y para iPad. Esta también es su desventaja! pero más allá de esto, la principal razón es que las aplicaciones para tabletas son un mundo aparte de las aplicaciones para un teléfono. La tableta no es un dispositivo tan móvil como el celular, y el usuario probablemente no la va a tener todo el tiempo consigo. Para desarrolladores con nuestra educación, Android es una entrada más amigable al mundo del desarrollo móvil debido a que se programa en Java. Para publicar las aplicaciones se debe tener aprobación de Apple. Se debe crear una cuenta como desarrollador en la app Store, cuesta 99 USD al año. Es una plataforma probada, con muchos desarrolladores y recursos en la Web para resolver cualquier problema. Sin embargo, esta es un arma de doble filo, dado que hay muchos desarrolladores muy competentes ahí afuera, haciendo aplicaciones cada vez mejores. De los grandes problemas de desarrollar en iOS: manejar la memoria. Cuando se viene de un background en Java o en PHP, entornos en los que se puede crear memoria a diestra y siniestra, uno se enfrenta a una de las tareas más complejas que hay en programación: manejar la memoria que uno va creando. Esto a veces suena más simple de lo que es. Que hemos hecho para iOS? en estos momentos tenemos publicadas: - Revista ENTER.CO - aplicación EL TIEMPO Próximamente: app EL ESPECTADOR
  • Para desarrollar para Android, se puede usar: - Java (Dalvik) - C/C++ (NDK) - Python (Intérprete) Sin embargo, la mejor alternativa sigue siendo Java sobre Dalvik, dada la documentación, número de desarrolladores y recursos puestos por Google. Uno de los grandes problemas de CUALQUIER plataforma móvil es la fragmentación; cualquiera que haya estado en el desarrollo para móviles sabrá que intentar pegarle a todos los dispositivos con una sola base de código es un ejercicio futil (sí, así lo haga en HTML. Que se pare el primer desarrollador Web que nunca ha tenido problemas de compatibilidad por IE!). Sin embargo, es cierto que Android es una plataforma más fragmentada que iOS por su naturaleza: al ser múltiples dispositivos, con diferentes capacidades de hardware y diferentes tamaños de pantalla, es necesario tener en cuenta muchas más variables que cuando se desarrolla para iOS. De los grandes problemas para desarrollar en Android: La fragmentación hace que cuando uno se sienta tentado a meter machete, la aplicación sufra más. Si uno viene de un entorno Web, es como intentar pasar de un diseño de grilla fija a un diseño fluido. Que hemos hecho para Android? participamos en el desarrollo de  la aplicación de EL TIEMPO para el Galaxy Tab. Estamos terminando una aplicación para servicio al cliente de Samsung.
  • Puede que no sea la mejor plataforma, la más avanzada, la que más ventajas ofrece a los desarrolladores, pero hay algo que no se le puede negar a Blackberry y es su ubicuidad. Cuantos en el auditorio tienen un blackberry y están echando bb messenger mientras yo estoy acá parado hablando? :P Las estadísticas demuestran que BlackBerry es la plataforma preferida por los Colombianos, o al menos a la que los operadores más les pueden sacar jugo. Según enter.co, el 85% de los smartphones que se venden en internet son BB. El dispositivo que más visita eltiempo.com es el BB Bold 8530, y de los 10 dispositivos que más visitan el sitio 8 son blackberry. Para desarrollar para BB, se puede hacer usando los APIs de BB o aplicaciones JME. Sin embargo, recomiendan los que saben (nosotros no, porque no le hemos hecho) que es mejor irse por las APIs de BB. La única ventaja que tiene jME aquí es que se puede reutilizar el código para otras plataformas, pero eso a quien le interesa? Por otra parte, desarrollar sobre los APIs nativos de BB (que por cierto, también están en Java :D) trae ciertas ventajas, como acceder a cosas del dispositivo que programar sobre MIDP no permite, como enviar apps a background o iniciar la app cuando inicia el sistema. Nuestra experiencia en Blackberry, hemos de confesarla es bastante escasa. Planeamos desarrollar aplicaciones en el futuro, pero hasta ahora lo que hemos hecho se limita a crear un WebIcon, es decir, un ícono instalable que abre el navegador del dispositivo. (eltiempo.com, portafolio.com.co, y vive.in).
  • WP7 y WebOS las mencionamos solo de pasada, porque aquí no hay muchos dispositivos con estos S.O. WP7 trabaja con XNA y silverlight. Los desarrolladores .NET deberían sentirse como en casa (soy desarrollador .NET, pero no me consta. Sin embargo, de mi experiencia con MS se que probablemente será cierto!). WebOS trabaja con aplicaciones escritas en Javascript, HTML y CSS. La historia de Nokia es diferente: de hecho, sigue siendo la plataforma de smartphones mas popular en todo el mundo! Lo que sucede con Nokia, en nuestra experiencia, es que sus usuarios no suelen instalar muchas aplicaciones, ni mucho menos comprarlas! además, el uso de dispositivos nokia para navegar es muy reducido.
  • Phonegap Titanium developer Unity Corona
  • La dura verdad: muy pocas aplicaciones para el mercado Colombiano: - App de Transmilenio (iPhone):  Banshai  - de Bogotá - Banco de Bogotá (iPhone):  YellowPepper  - de USA - Aplicaciones de medios: El Tiempo, El Espectador, Portafolio, Revista Semana, Revista Dinero, El País, PlanB, etc.. - Jueguitos: Al Rambone, Cowboy Guns, etc... - La mayoría de apps que se consiguen para Colombia son guías de viaja. La mayoría de desarrolladores hace apps para el mercado de USA! Samsung está muy metido con Android, y está promoviendo apps para desarrollar una comunidad fuerte de Android en Colombia. Están haciendo un diplomado (al que va Ivan) de aplicaciones Android, y están más que dispuestos a patrocinar a pequeñas empresas y proyectos que tengan. Empresas que desarrollan para móviles: centuriTech Colombia Games ColombiTrade DOMOTI EasyNet Interactiu Media Plataforma Digital Quantum Data LTDA Mind de Colombia ST&T Wireless & Mobile
  • La dura verdad: muy pocas aplicaciones para el mercado Colombiano: - App de Transmilenio (iPhone):  Banshai  - de Bogotá - Banco de Bogotá (iPhone):  YellowPepper  - de USA - Aplicaciones de medios: El Tiempo, El Espectador, Portafolio, Revista Semana, Revista Dinero, El País, PlanB, etc.. - Jueguitos: Al Rambone, Cowboy Guns, etc... - La mayoría de apps que se consiguen para Colombia son guías de viaja. La mayoría de desarrolladores hace apps para el mercado de USA! Samsung está muy metido con Android, y está promoviendo apps para desarrollar una comunidad fuerte de Android en Colombia. Están haciendo un diplomado (al que va Ivan) de aplicaciones Android, y están más que dispuestos a patrocinar a pequeñas empresas y proyectos que tengan. Empresas que desarrollan para móviles: centuriTech Colombia Games ColombiTrade DOMOTI EasyNet Interactiu Media Plataforma Digital Quantum Data LTDA Mind de Colombia ST&T Wireless & Mobile
  • La dura verdad: muy pocas aplicaciones para el mercado Colombiano: - App de Transmilenio (iPhone):  Banshai  - de Bogotá - Banco de Bogotá (iPhone):  YellowPepper  - de USA - Aplicaciones de medios: El Tiempo, El Espectador, Portafolio, Revista Semana, Revista Dinero, El País, PlanB, etc.. - Jueguitos: Al Rambone, Cowboy Guns, etc... - La mayoría de apps que se consiguen para Colombia son guías de viaja. La mayoría de desarrolladores hace apps para el mercado de USA! Samsung está muy metido con Android, y está promoviendo apps para desarrollar una comunidad fuerte de Android en Colombia. Están haciendo un diplomado (al que va Ivan) de aplicaciones Android, y están más que dispuestos a patrocinar a pequeñas empresas y proyectos que tengan. Empresas que desarrollan para móviles: centuriTech Colombia Games ColombiTrade DOMOTI EasyNet Interactiu Media Plataforma Digital Quantum Data LTDA Mind de Colombia ST&T Wireless & Mobile

Desarrollando para nuevos dispositivos Desarrollando para nuevos dispositivos Presentation Transcript

  • Desarrollando para nuevos dispositivos Ivan Camilo Vasquez Sergio David Acosta
  • Agenda
      • ¿Quiénes somos y porqué estamos aquí?
      • ¿De dónde venimos? - Historia
      • ¿En dónde estamos? - Estado del arte
      • ¿Para dónde vamos? - Tendencias
  • ¿Quiénes somos?
    • .mob - http://www.puntomob.com
    • Dev blog - http://www.puntomob.com/blog
    • Blog - http://webmacheter.com
    Sergio Acosta Ivan Vásquez
  • ¿De dónde venimos? Historia
  • J2ME
    • - Una plataforma diseñada para sistemas embebidos. Este era el significado real de "Write Once, Run Anywhere".
  • Windows Mobile
    • Un PC con Windows en cada hogar... y Windows en cada dispositivo.
  • Palm OS
  • Symbian, Blackberry, Apple...
  • ¿En dónde estamos?
    • Desarrollo Web, Desarrollo Nativo y Desarrollo Híbrido.
  • Desarrollo de Aplicaciones Web para móviles
  • Desarrollo de aplicaciones nativas? Android Dalvik iOS Objective C Windows Mobile 7 XNA/Silverlight BlackBerry Java WebOS HTML5
  • HTML5 esta en todos lados!
  • Pero vienen más!
  • Algunos ejemplos
  • Calificación de soporte de browsers móviles
  • Calificación de soporte de  browsers móviles
  • Whiteboard http://whiteboardframework.com/ 
  • Laker
    • http://www.lakercompendium.com/
  • Angry Birds
    • http://chrome.angrybirds.com/
  • PlayBoy (!!!)
    • http://i.playboy.com/
  • Ejemplos HTML5
    • http://whiteboardframework.com/ - Framework de temas para wordpress
    • http://www.lakercompendium.com/ - Proyecto para hacer revistas para móviles usando HTML5
    • http://chrome.angrybirds.com/ - Angry Birds, HTML 5
    • http://i.playboy.com/ - Revista Playboy para iPad
  • Dejame arreglar esto para ti ... Android Dalvik iOS Objective C Windows Mobile 7 XNA/Silverlight BlackBerry Java WebOS HTML5
  • Dejame arreglar esto para ti ... ...Listo! arreglado para ti Android Dalvik y HTML5 iOS Objective C y HTML5 Windows Mobile 7 XNA/Silverlight y HTML5 BlackBerry Java y HTML5 WebOS Permanece HTML5!
  • Frameworks:Un poco de ayuda
  • Qué nos ofrecen...
  • ¿Como lidiar con estructuras HTML5 y CSS3 no soportados?
  • Una nuve, muchas aplicaciones
  • HTML5 permite hacer numerosas cosas...
  • Desarrollo Nativo
  • ¿Por qué desarrollar nativo?
      • Velocidad
      • Poder
      • Control
      • Integración
  • iOS
  • Android
  • BlackBerry
  • WP7, WebOS, Symbian
  • ¿Nativo o Web móvil?
    • Vs.
  • Un pequeño demo
  • Desarrollo híbrido
  • Conclusión
    • Web apps:
      • Móvil
      • Competente
      • Abierto
    • Native apps:
      • Integrado
      • Actualizado
      • Experiencia de usuario
    • "Si no puedes pensar una manera de mejorar tu aplicación Web utilizando las caracteristicas del SDK (API) ... 
    • ...lo estas haciendo mal"
  • ¿Qué hacer entonces?
      • Web app
      • Webviews
      • Añadir mejoras aprovechando el API (ej: widgets, notificaciones, acelerometro)
      • Comunicación entre aplicacion nativa y javascript y visceversa
  • ¿Para dónde vamos? Tendencias
  • Tendencias
  • Otro demo :)
  • Cada vez más cosas
      • 2007: Multi-touch, acelerometro, microfono
      • 2008: video, brujula,background apps
      • 2009: Bluetooth, múltiples tamaños de pantalla
      • 2010: Giroscopios, cámara front-facing
      • 2011: Barometro, NFC, tablets, accesorios USB, Android@Home
      • 2012: ??? 
        • Google TV,car, lavadora, neveras, portaretratos
    •  
  • ¿Y acá que?
  • ¿Y acá que?
  • ¿Y acá que? ...
  • Referencias
    • http://www.google.com/events/io/2011/sessions/html5-versus-android-apps-or-web-for-mobile-development.html
    • http://web.archive.org/web/20080530073139/http://java.sun.com/features/1998/05/birthday.html
    • http://www.codepedia.com/1/J2ME
    • http://www.codepedia.com/1/Oak+Project
    • http://www.hpcfactor.com/support/windowsce/default.asp
    • http://www.mobilespoon.net/2009/03/history-of-pdas-part-2.html
    • http://www.pcworld.com/article/195199/a_brief_history_of_palm.html
    • http://www.engadget.com/2009/12/28/ten-years-of-blackberry/