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




blocketpc.com
Spanish Mobile and Devices Adobe User Group

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

Mails: elecash@gmail.com
       info@blocketpc.com
Españoles...




          FLASH HA
           MUERTO
(bueno en realidad sólo en el navegador, y a decir verdad, sólo en móviles, pero da igual, mola un montón)
Chan! Chan! Chaaaaaaaaaan!!
No, pero casi...




          FLASH HA
           MUERTO
(bueno en realidad sólo en el navegador, y a
decir verdad, sólo en móviles, pero da igual,
              mola un montón)
La realidad




- Adobe ha cambiado nuestro rol como programadores
AS3

- Ahora hay que programar juegos para dispositivos y
video

- Sigue habiendo una gran necesidad de aplicaciones

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




- 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/


- Foxhole: Framework y componentes desarrollados
sobre Starling
https://github.com/joshtynjala/foxhole-starling/


- 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.subflash.Subfla
 shApp") as Class;

 this._starling = new Starling(MainType,
 this.stage);
 this._starling.start();
Foxhole: 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... :)
Foxhole: 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);
Foxhole: 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://flashtoolbox.com/foxhole-starling/examples/layout-explorer/
Foxhole: Temas



- Foxhole 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;


Tema 1:
http://flashtoolbox.com/foxhole-starling/examples/layout-explorer/
Tema 2:
http://flashtoolbox.com/foxhole-starling/examples/kitchen-sink/
Foxhole: Componentes



- Foxhole 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);


Componentes:
http://flashtoolbox.com/foxhole-starling/examples/kitchen-sink/
Foxhole: Creación de componentes



- Siempre puedes hacerte tus componentes si no hay
alguno disponible


 description = new TextArea();
 description.text = this.data.description;
 container.addChild(description);


Ejemplo TouchableImage
EJEMPLO DE UNA
  APLICACIÓN

  SUBFLASH
Foxhole: Problemas




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

- El control del texto es complejo y Foxhole 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
Foxhole: 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 Foxhole igual que han hecho con Away3D
Foxhole: Consejos 1/3


- Reutiliza todas las texturas que puedas con Object
Pooling (Ejemplo AssetLibrary)

- 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;
Foxhole: 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
Foxhole: 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 regularmente los foros de Starling y Foxhole
http://forum.starling-framework.org/
http://forum.starling-framework.org/forum/foxhole
GRACIAS A TODOS

 ¿PREGUNTAS?

Más contenido relacionado

La actualidad más candente

Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesADWE Team
 
FirebugNext ¿Qué se viene en la nueva versión de Firebug?
FirebugNext ¿Qué se viene en la nueva versión de Firebug?FirebugNext ¿Qué se viene en la nueva versión de Firebug?
FirebugNext ¿Qué se viene en la nueva versión de Firebug?hidekel
 
Manual+de+camtasia+para+bibliotecarios
Manual+de+camtasia+para+bibliotecariosManual+de+camtasia+para+bibliotecarios
Manual+de+camtasia+para+bibliotecariospedro pablo pacheco
 
Taller de creación de videotutoriales
Taller de creación de videotutorialesTaller de creación de videotutoriales
Taller de creación de videotutorialesalamito
 

La actualidad más candente (8)

Camtasia
CamtasiaCamtasia
Camtasia
 
Diarios de campo
Diarios de campoDiarios de campo
Diarios de campo
 
Frameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móvilesFrameworks para el desarrollo de juegos para dispositivo móviles
Frameworks para el desarrollo de juegos para dispositivo móviles
 
FirebugNext ¿Qué se viene en la nueva versión de Firebug?
FirebugNext ¿Qué se viene en la nueva versión de Firebug?FirebugNext ¿Qué se viene en la nueva versión de Firebug?
FirebugNext ¿Qué se viene en la nueva versión de Firebug?
 
Manual+de+camtasia+para+bibliotecarios
Manual+de+camtasia+para+bibliotecariosManual+de+camtasia+para+bibliotecarios
Manual+de+camtasia+para+bibliotecarios
 
Manual de Camtasia
Manual de CamtasiaManual de Camtasia
Manual de Camtasia
 
Herramientas de Flash
Herramientas de FlashHerramientas de Flash
Herramientas de Flash
 
Taller de creación de videotutoriales
Taller de creación de videotutorialesTaller de creación de videotutoriales
Taller de creación de videotutoriales
 

Destacado

Realidad Aumentada
Realidad AumentadaRealidad Aumentada
Realidad AumentadaRaul Jimenez
 
Adobe AIR Native Extensions
Adobe AIR Native ExtensionsAdobe AIR Native Extensions
Adobe AIR Native ExtensionsRaul 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)

Realidad Aumentada
Realidad AumentadaRealidad Aumentada
Realidad Aumentada
 
Adobe AIR Native Extensions
Adobe AIR Native ExtensionsAdobe AIR Native Extensions
Adobe AIR Native Extensions
 
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 Taller subflash 2012

T. multimedia giovanny lombana
T. multimedia giovanny lombanaT. multimedia giovanny lombana
T. multimedia giovanny lombanaGiovanny10
 
Introduccion a flash cs5
Introduccion a flash cs5Introduccion a flash cs5
Introduccion a flash cs5maangeliica
 
Libro curso de flash 8
Libro curso de flash 8Libro curso de flash 8
Libro curso de flash 8Sergio Medina
 
Investigacion de 2 d sulay españa
Investigacion de 2 d sulay españaInvestigacion de 2 d sulay españa
Investigacion de 2 d sulay españasulaiespana
 
T1 e1 terroba
T1 e1 terrobaT1 e1 terroba
T1 e1 terrobaplinanoia
 
Alejandra vargas (1)
Alejandra vargas (1)Alejandra vargas (1)
Alejandra vargas (1)zalejitha
 
Lina cardona flash n1
Lina cardona flash n1Lina cardona flash n1
Lina cardona flash n1LinaCtriana
 
Video desde camara web raspberry motion
Video desde camara web raspberry motionVideo desde camara web raspberry motion
Video desde camara web raspberry motionfalso234
 
Flash Macromedia
Flash MacromediaFlash Macromedia
Flash Macromedialousyanita
 
Flash professional cs5
Flash professional cs5Flash professional cs5
Flash professional cs590000111
 
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
 

Similar a Taller subflash 2012 (20)

T. multimedia giovanny lombana
T. multimedia giovanny lombanaT. multimedia giovanny lombana
T. multimedia giovanny lombana
 
FlASH Macro
FlASH MacroFlASH Macro
FlASH Macro
 
Introduccion a flash cs5
Introduccion a flash cs5Introduccion a flash cs5
Introduccion a flash cs5
 
Libro curso de flash 8
Libro curso de flash 8Libro curso de flash 8
Libro curso de flash 8
 
Investigacion de 2 d sulay españa
Investigacion de 2 d sulay españaInvestigacion de 2 d sulay españa
Investigacion de 2 d sulay españa
 
T1 e1 terroba
T1 e1 terrobaT1 e1 terroba
T1 e1 terroba
 
Alejandra vargas (1)
Alejandra vargas (1)Alejandra vargas (1)
Alejandra vargas (1)
 
Lina cardona flash n1
Lina cardona flash n1Lina cardona flash n1
Lina cardona flash n1
 
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
 
Macromedia Flash 8
Macromedia  Flash 8Macromedia  Flash 8
Macromedia Flash 8
 
Video desde camara web raspberry motion
Video desde camara web raspberry motionVideo desde camara web raspberry motion
Video desde camara web raspberry motion
 
Flash Macromedia
Flash MacromediaFlash Macromedia
Flash Macromedia
 
Html5 vs Flash
Html5 vs FlashHtml5 vs Flash
Html5 vs Flash
 
Flash tercer periodo
Flash tercer periodoFlash tercer periodo
Flash tercer periodo
 
Flash professional cs5
Flash professional cs5Flash professional cs5
Flash professional cs5
 
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...
 
Action script 3.0
Action script 3.0Action script 3.0
Action script 3.0
 
Action script 3.0
Action script 3.0Action script 3.0
Action script 3.0
 

Último

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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
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
 
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
 
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
 
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
 

Último (20)

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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
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...
 
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
 
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
 
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
 
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)
 
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
 
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
 
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...
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
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...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
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
 
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
 

Taller subflash 2012

  • 1. Aplicaciones móviles a 60fps blocketpc.com Spanish Mobile and Devices Adobe User Group Raúl Jiménez Twitters: @elecash @BlocketPc Mails: elecash@gmail.com info@blocketpc.com
  • 2. Españoles... FLASH HA MUERTO (bueno en realidad sólo en el navegador, y a decir verdad, sólo en móviles, pero da igual, mola un montón)
  • 4. No, pero casi... FLASH HA MUERTO (bueno en realidad sólo en el navegador, y a decir verdad, sólo en móviles, pero da igual, mola un montón)
  • 5. La realidad - Adobe ha cambiado nuestro rol como programadores AS3 - Ahora hay que programar juegos para dispositivos y video - Sigue habiendo una gran necesidad de aplicaciones - Igual que antes existía el “Pixel-Perfect”, ahora existen las “Smooth Apps”
  • 6. Smooth Apps - 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/ - Foxhole: Framework y componentes desarrollados sobre Starling https://github.com/joshtynjala/foxhole-starling/ - 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.subflash.Subfla shApp") as Class; this._starling = new Starling(MainType, this.stage); this._starling.start();
  • 13. Foxhole: 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. Foxhole: 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. Foxhole: 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://flashtoolbox.com/foxhole-starling/examples/layout-explorer/
  • 16. Foxhole: Temas - Foxhole 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; Tema 1: http://flashtoolbox.com/foxhole-starling/examples/layout-explorer/ Tema 2: http://flashtoolbox.com/foxhole-starling/examples/kitchen-sink/
  • 17. Foxhole: Componentes - Foxhole 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); Componentes: http://flashtoolbox.com/foxhole-starling/examples/kitchen-sink/
  • 18. Foxhole: Creación de componentes - Siempre puedes hacerte tus componentes si no hay alguno disponible description = new TextArea(); description.text = this.data.description; container.addChild(description); Ejemplo TouchableImage
  • 19. EJEMPLO DE UNA APLICACIÓN SUBFLASH
  • 20. Foxhole: Problemas - Si tu aplicación tiene muchas texturas deberías descartar Starling y Foxhole.. por ahora (Workers) - El control del texto es complejo y Foxhole 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
  • 21. Foxhole: 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 Foxhole igual que han hecho con Away3D
  • 22. Foxhole: Consejos 1/3 - Reutiliza todas las texturas que puedas con Object Pooling (Ejemplo AssetLibrary) - 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;
  • 23. Foxhole: 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
  • 24. Foxhole: 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 regularmente los foros de Starling y Foxhole http://forum.starling-framework.org/ http://forum.starling-framework.org/forum/foxhole
  • 25. GRACIAS A TODOS ¿PREGUNTAS?