SlideShare una empresa de Scribd logo
1 de 24
Aplicaciones móviles a 60fps




blocketpc.com
Spanish Mobile and Devices Adobe User Group

Raúl Jiménez
Twitters: @elecash
       @teleport
       @BlocketPc

Mail: elecash@gmail.com
Ayúdame con Teleport.io



Teleport.io es un proyecto personal que
  acabo de lanzar a crowdfunding.

Ayúdame a difundirlo a través de Facebook,
  Twitter y Google+ y si crees que lo
  merece... ¡contribuye!

http://www.teleport.io
http://www.indiegogo.com/teleport
https://twitter.com/teleport
http://www.facebook.com/TeleportApp
https://vimeo.com/teleportio
Adobe <3 HTML5




HTML5 HA VENIDO PARA
      QUEDARSE
¿Por qué usar Flash?
El “nuevo” Flash




- Juegos y apps: Windows, Mac OS, Android, iOS,
   PlayBook, BB10, etc... (Machinarium)

- Juegos browser AAA: Unreal Engine y Unity to Flash

- Video: progressive download, streaming, P2P

- Igual que antes existía el “Pixel-Perfect”, ahora existen
   las “Smooth Apps”
Smooth Apps




- Quiero que mi app vuele ¿cómo lo hago?

- Deben correr a 60fps o cercano

- No han de presentar lags (pérdidas de fps) en ningún
  momento

- Deben ser agradables de usar, que den ganas de
  tocarla
El problema




- Adobe donó Flex a Apache y desde entonces no hay un
   framework de componentes oficial

- Flex Hero no funciona demasiado bien en dispositivos,
   es demasiado pesado

- AIR y Flash en móviles pueden funcionar a 30fps
   fácilmente, pero más es complicado

- Podemos desarrollar aplicaciones aceleradas por GPU
   gracias al 3D y el direct mode
AS3 y el 3D




- Las APIs 3D de Flash son increíblemente veloces

- Existen frameworks de desarrollo de videojuegos 3D y
   2D acelerados por GPU

- Pero desarrollar 3D es muy complejo y yo quiero
   desarrollar aplicaciones!! No juegos!! >:-(

- Tranquilidad, tranquilidad... existen soluciones :D
Soluciones en el mercado




- Starling: Framework de desarrollo de videojuegos 2D
http://gamua.com/starling/


- Feathers: Framework y componentes desarrollados
   sobre Starling
http://feathersui.com/


- Mad Components: Framework de componentes
http://code.google.com/p/mad-components/
Starling: ¿Cómo funciona?




- Desarrollar 3D es muy complejo, Starling facilita el
  desarrollo emulando la API de Flash

- Por ejemplo: flash.display.Sprite pasa a ser
   starling.display.Sprite

- En el 3D no hay vectores, sólo texturas, así que cambia
   la forma en que hacemos las cosas

- Hay ventajas y desventajas
Starling: Las texturas y sus cosas




- Subir texturas a la GPU es un proceso muy intensivo

- Debemos ahorrar en subidas a la GPU reutilizando
  texturas una vez están subidas y empaquetando
  texturas en una imagen

- No hay API drawing, pero podemos pintar sobre un
  Sprite de Flash y luego convertirlo en un Bitmap que lo
  subimos a la GPU

Ejemplo TexturePacker y BMFont
Starling: Crear una aplicación Starling




- Instancia Starling y ya puedes comenzar a usar la API


 Starling.handleLostContext = true;
 Starling.multitouchEnabled = true;

 const MainType:Class =
 getDefinitionByName("com.blocketpc.MyApp") as
 Class;

 this._starling = new Starling(MainType,
 this.stage);
 this._starling.start();
FeathersUI: Introducción



- Al igual que Starling es un proyecto de código abierto

- Se instancia sobre starling.display.Sprite

- Componentes: Screen, Button, Check, List,
  ProgressBar, Radio, ScrollBar, etc...

- Sistema de inyección de dependencias

- Sistema de temas

- Y mucho más... :)
FeathersUI: Sistema de pantallas



- ScreenNavigator controla las vistas que son
   componentes Screen

 navigator = new ScreenNavigator();
 addChild(navigator);

 var events:Object = {onSelectSession: SESSION_DETAIL_SCREEN};
 var data:Object = {
     dataProvider: XML(dataProvider.section.sessions),
     originalDPI: originalThemeDPI
 };

 item = new ScreenNavigatorItem(SessionsScreen, events, data);

 navigator.addScreen(SESSIONS_SCREEN, item);
 navigator.showScreen(SESSIONS_SCREEN);
FeathersUI: Transiciones entre
                                                           pantallas



- Se pueden ejecutar transiciones entre nuestras vistas
   de ScreenNavigator


  transitionManager = new
  ScreenSlidingStackTransitionManager(navigator);

  transitionManager.duration = 0.4;
  transitionManager.ease = Cubic.easeOut;

  navigator.showScreen(“myScreen”);


Ejemplo:
http://feathersui.com/examples/layout-explorer/
FeathersUI: Temas



- Feathers cuenta con un potente sistema de temas con
   el que poder personalizar nuestros componentes


  const isDesktop:Boolean = Mouse.supportsCursor;
  theme = new MinimalTheme(stage, !isDesktop);
  const originalThemeDPI:int = theme.originalDPI;


Lista de temas:
https://github.com/joshtynjala/feathers-examples/
Teleport Skin:
Teleport Demo
FeathersUI : Componentes



- Feathers tiene componentes para prácticamente todo lo
   que necesitas en un móvil o un Pc


  emailButton = new Button();
  emailButton.onRelease.add(onEmailButton);
  container.addChild(emailButton);


Demo:
http://feathersui.com/examples/components-explorer/
ALGUNOS EJEMPLOS
  Aplicación iPad educacional
        Donuts Maniac
FeathersUI : Problemas




- Si tu aplicación tiene muchas texturas deberías
   descartar Starling y Feathers.. por ahora (Workers)

- El control del texto es complejo y FeathersUI ahora no
   tiene un componente de texto multilínea

- Trabajar con texturas puede resultar tedioso al principio

- Crear un tema es complejo aunque muy potente
FeathersUI: Ventajas




- La velocidad a la que se mueve todo, esos 60fps
   deseados por las “Smooth Apps”

- Escalado automático por DPI

- Componentes muy sólidos y estables en un proyecto
  que tiene constantes actualizaciones

- Soporte por parte de Adobe al proyecto de Starling y
   puede que a FeathersUI igual que han hecho con
   Away3D
FeathersUI: Consejos 1/3



- Reutiliza todas las texturas que puedas con Object
  Pooling

- Utiliza flatten() para cachear el contenido estático

- Los hijos y eventos se limpian automáticamente al
   hacer un removeChild

- Simula los eventos de Touch con simulateMultitouch
   (Ejemplo SimulateMultitouch)

 starling = new Starling();
 starling.simulateMultitouch = true;
FeathersUI: Consejos 2/3



- Las Release Builds pueden duplicar tus fps en
   comparación a cuando haces un debug

- Utiliza los ActionScript Workers para procesos muy
  intensivos (Flash Player 11.4 y AIR 3.4)

- Estudia acerca de Native Extensions, lo vas a necesitar
   en Android/iOS (In-App Purchase, Notifications, etc...)

- Infórmate sobre las Starling Extensions
http://wiki.starling-framework.org/extensions/start
FeathersUI: Consejos 3/3


- Lee el manual que escribió Thibault Imbert sobre
   Starling (Gratis!!)
http://shop.oreilly.com/product/0636920024217.do


- Mira los videotutoriales de Hemanth Sharma
  disponibles gratis en su web
http://www.hsharma.com/tutorials/


- En Active Tuts+ también encontraréis buena
   información
http://active.tutsplus.com/tutorials/effects/starling-particle...


- Visita los foros de Starling y Feathers
http://forum.starling-framework.org/
http://forum.starling-framework.org/forum/feathers
GRACIAS A TODOS

 ¿PREGUNTAS?

Más contenido relacionado

Destacado

Adobe AIR Native Extensions
Adobe AIR Native ExtensionsAdobe AIR Native Extensions
Adobe AIR Native ExtensionsRaul Jimenez
 
Realidad Aumentada
Realidad AumentadaRealidad Aumentada
Realidad AumentadaRaul Jimenez
 
2 Training on webwroks for Word
2 Training on webwroks for Word2 Training on webwroks for Word
2 Training on webwroks for Wordsumeettechno
 

Destacado (7)

Adobe AIR Native Extensions
Adobe AIR Native ExtensionsAdobe AIR Native Extensions
Adobe AIR Native Extensions
 
Realidad Aumentada
Realidad AumentadaRealidad Aumentada
Realidad Aumentada
 
Diseño inclusivo
Diseño inclusivoDiseño inclusivo
Diseño inclusivo
 
HTML5 WebWorks
HTML5 WebWorksHTML5 WebWorks
HTML5 WebWorks
 
DPS + HTML5
DPS + HTML5DPS + HTML5
DPS + HTML5
 
2 Training on webwroks for Word
2 Training on webwroks for Word2 Training on webwroks for Word
2 Training on webwroks for Word
 
HTML5 y WebGL
HTML5 y WebGLHTML5 y WebGL
HTML5 y WebGL
 

Similar a Mejorandola

Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Ignacio Muñoz Vicente
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Ricardo Guerrero Gómez-Olmedo
 
Abp mooc herramientas tic martin garcia valle
Abp mooc herramientas tic martin garcia valleAbp mooc herramientas tic martin garcia valle
Abp mooc herramientas tic martin garcia valleMartín García Valle
 
Barcelona Workshop 2008
Barcelona Workshop 2008Barcelona Workshop 2008
Barcelona Workshop 2008Mitusin
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandboxTensor
 
T. multimedia giovanny lombana
T. multimedia giovanny lombanaT. multimedia giovanny lombana
T. multimedia giovanny lombanaGiovanny10
 
2. principales elementos
2.  principales elementos2.  principales elementos
2. principales elementosVictor Aravena
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Mauro Parra-Miranda
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteCarlos Toxtli
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandboxTensor
 
Flash Macromedia
Flash MacromediaFlash Macromedia
Flash Macromedialousyanita
 

Similar a Mejorandola (20)

Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 
E book en adobe
E book en adobeE book en adobe
E book en adobe
 
E book
E bookE book
E book
 
E book
E bookE book
E book
 
Sallis Usb Hacks
Sallis Usb HacksSallis Usb Hacks
Sallis Usb Hacks
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
 
HTML5
HTML5 HTML5
HTML5
 
Abp mooc herramientas tic martin garcia valle
Abp mooc herramientas tic martin garcia valleAbp mooc herramientas tic martin garcia valle
Abp mooc herramientas tic martin garcia valle
 
Barcelona Workshop 2008
Barcelona Workshop 2008Barcelona Workshop 2008
Barcelona Workshop 2008
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandbox
 
T. multimedia giovanny lombana
T. multimedia giovanny lombanaT. multimedia giovanny lombana
T. multimedia giovanny lombana
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Contenidoinformaticaenlaeducacion
ContenidoinformaticaenlaeducacionContenidoinformaticaenlaeducacion
Contenidoinformaticaenlaeducacion
 
Contenidoinformaticaenlaeducacion
ContenidoinformaticaenlaeducacionContenidoinformaticaenlaeducacion
Contenidoinformaticaenlaeducacion
 
2. principales elementos
2.  principales elementos2.  principales elementos
2. principales elementos
 
Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101Cloudevel - Microsoft Azure - 101
Cloudevel - Microsoft Azure - 101
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamente
 
Html5 vs Flash
Html5 vs FlashHtml5 vs Flash
Html5 vs Flash
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandbox
 
Flash Macromedia
Flash MacromediaFlash Macromedia
Flash Macromedia
 

Último

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 

Último (20)

El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 

Mejorandola

  • 1. Aplicaciones móviles a 60fps blocketpc.com Spanish Mobile and Devices Adobe User Group Raúl Jiménez Twitters: @elecash @teleport @BlocketPc Mail: elecash@gmail.com
  • 2. Ayúdame con Teleport.io Teleport.io es un proyecto personal que acabo de lanzar a crowdfunding. Ayúdame a difundirlo a través de Facebook, Twitter y Google+ y si crees que lo merece... ¡contribuye! http://www.teleport.io http://www.indiegogo.com/teleport https://twitter.com/teleport http://www.facebook.com/TeleportApp https://vimeo.com/teleportio
  • 3. Adobe <3 HTML5 HTML5 HA VENIDO PARA QUEDARSE
  • 5. El “nuevo” Flash - Juegos y apps: Windows, Mac OS, Android, iOS, PlayBook, BB10, etc... (Machinarium) - Juegos browser AAA: Unreal Engine y Unity to Flash - Video: progressive download, streaming, P2P - Igual que antes existía el “Pixel-Perfect”, ahora existen las “Smooth Apps”
  • 6. Smooth Apps - Quiero que mi app vuele ¿cómo lo hago? - Deben correr a 60fps o cercano - No han de presentar lags (pérdidas de fps) en ningún momento - Deben ser agradables de usar, que den ganas de tocarla
  • 7. El problema - Adobe donó Flex a Apache y desde entonces no hay un framework de componentes oficial - Flex Hero no funciona demasiado bien en dispositivos, es demasiado pesado - AIR y Flash en móviles pueden funcionar a 30fps fácilmente, pero más es complicado - Podemos desarrollar aplicaciones aceleradas por GPU gracias al 3D y el direct mode
  • 8. AS3 y el 3D - Las APIs 3D de Flash son increíblemente veloces - Existen frameworks de desarrollo de videojuegos 3D y 2D acelerados por GPU - Pero desarrollar 3D es muy complejo y yo quiero desarrollar aplicaciones!! No juegos!! >:-( - Tranquilidad, tranquilidad... existen soluciones :D
  • 9. Soluciones en el mercado - Starling: Framework de desarrollo de videojuegos 2D http://gamua.com/starling/ - Feathers: Framework y componentes desarrollados sobre Starling http://feathersui.com/ - Mad Components: Framework de componentes http://code.google.com/p/mad-components/
  • 10. Starling: ¿Cómo funciona? - Desarrollar 3D es muy complejo, Starling facilita el desarrollo emulando la API de Flash - Por ejemplo: flash.display.Sprite pasa a ser starling.display.Sprite - En el 3D no hay vectores, sólo texturas, así que cambia la forma en que hacemos las cosas - Hay ventajas y desventajas
  • 11. Starling: Las texturas y sus cosas - Subir texturas a la GPU es un proceso muy intensivo - Debemos ahorrar en subidas a la GPU reutilizando texturas una vez están subidas y empaquetando texturas en una imagen - No hay API drawing, pero podemos pintar sobre un Sprite de Flash y luego convertirlo en un Bitmap que lo subimos a la GPU Ejemplo TexturePacker y BMFont
  • 12. Starling: Crear una aplicación Starling - Instancia Starling y ya puedes comenzar a usar la API Starling.handleLostContext = true; Starling.multitouchEnabled = true; const MainType:Class = getDefinitionByName("com.blocketpc.MyApp") as Class; this._starling = new Starling(MainType, this.stage); this._starling.start();
  • 13. FeathersUI: Introducción - Al igual que Starling es un proyecto de código abierto - Se instancia sobre starling.display.Sprite - Componentes: Screen, Button, Check, List, ProgressBar, Radio, ScrollBar, etc... - Sistema de inyección de dependencias - Sistema de temas - Y mucho más... :)
  • 14. FeathersUI: Sistema de pantallas - ScreenNavigator controla las vistas que son componentes Screen navigator = new ScreenNavigator(); addChild(navigator); var events:Object = {onSelectSession: SESSION_DETAIL_SCREEN}; var data:Object = { dataProvider: XML(dataProvider.section.sessions), originalDPI: originalThemeDPI }; item = new ScreenNavigatorItem(SessionsScreen, events, data); navigator.addScreen(SESSIONS_SCREEN, item); navigator.showScreen(SESSIONS_SCREEN);
  • 15. FeathersUI: Transiciones entre pantallas - Se pueden ejecutar transiciones entre nuestras vistas de ScreenNavigator transitionManager = new ScreenSlidingStackTransitionManager(navigator); transitionManager.duration = 0.4; transitionManager.ease = Cubic.easeOut; navigator.showScreen(“myScreen”); Ejemplo: http://feathersui.com/examples/layout-explorer/
  • 16. FeathersUI: Temas - Feathers cuenta con un potente sistema de temas con el que poder personalizar nuestros componentes const isDesktop:Boolean = Mouse.supportsCursor; theme = new MinimalTheme(stage, !isDesktop); const originalThemeDPI:int = theme.originalDPI; Lista de temas: https://github.com/joshtynjala/feathers-examples/ Teleport Skin: Teleport Demo
  • 17. FeathersUI : Componentes - Feathers tiene componentes para prácticamente todo lo que necesitas en un móvil o un Pc emailButton = new Button(); emailButton.onRelease.add(onEmailButton); container.addChild(emailButton); Demo: http://feathersui.com/examples/components-explorer/
  • 18. ALGUNOS EJEMPLOS Aplicación iPad educacional Donuts Maniac
  • 19. FeathersUI : Problemas - Si tu aplicación tiene muchas texturas deberías descartar Starling y Feathers.. por ahora (Workers) - El control del texto es complejo y FeathersUI ahora no tiene un componente de texto multilínea - Trabajar con texturas puede resultar tedioso al principio - Crear un tema es complejo aunque muy potente
  • 20. FeathersUI: Ventajas - La velocidad a la que se mueve todo, esos 60fps deseados por las “Smooth Apps” - Escalado automático por DPI - Componentes muy sólidos y estables en un proyecto que tiene constantes actualizaciones - Soporte por parte de Adobe al proyecto de Starling y puede que a FeathersUI igual que han hecho con Away3D
  • 21. FeathersUI: Consejos 1/3 - Reutiliza todas las texturas que puedas con Object Pooling - Utiliza flatten() para cachear el contenido estático - Los hijos y eventos se limpian automáticamente al hacer un removeChild - Simula los eventos de Touch con simulateMultitouch (Ejemplo SimulateMultitouch) starling = new Starling(); starling.simulateMultitouch = true;
  • 22. FeathersUI: Consejos 2/3 - Las Release Builds pueden duplicar tus fps en comparación a cuando haces un debug - Utiliza los ActionScript Workers para procesos muy intensivos (Flash Player 11.4 y AIR 3.4) - Estudia acerca de Native Extensions, lo vas a necesitar en Android/iOS (In-App Purchase, Notifications, etc...) - Infórmate sobre las Starling Extensions http://wiki.starling-framework.org/extensions/start
  • 23. FeathersUI: Consejos 3/3 - Lee el manual que escribió Thibault Imbert sobre Starling (Gratis!!) http://shop.oreilly.com/product/0636920024217.do - Mira los videotutoriales de Hemanth Sharma disponibles gratis en su web http://www.hsharma.com/tutorials/ - En Active Tuts+ también encontraréis buena información http://active.tutsplus.com/tutorials/effects/starling-particle... - Visita los foros de Starling y Feathers http://forum.starling-framework.org/ http://forum.starling-framework.org/forum/feathers
  • 24. GRACIAS A TODOS ¿PREGUNTAS?