SlideShare a Scribd company logo
1 of 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?

More Related Content

What's hot

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
 

What's hot (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
 

Viewers also liked

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
 

Viewers also liked (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 to 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 to 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
 

Recently uploaded

LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxkimontey
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 

Recently uploaded (20)

LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptxLINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
LINEA DE TIEMPO LITERATURA DIFERENCIADO LITERATURA.pptx
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 

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?