SlideShare uma empresa Scribd logo
1 de 63
Baixar para ler offline
Desarrollo de
Aplicaciones Móviles
  Multiplataforma
#presentación
#presentación

Alberto Domínguez

Ingeniero de Sistemas y Computación (BSc. y MSc.)
Programador Certificado Java (SCJP)
Gerente de Proyectos (PMP)
Profesor Universitario (Programación y GP)
Miembro ACIS, PMI
Organizador @Bogotech

Miembro del Equipo Torrenegra Labs
Referral Program Manager @LetMeGo

@_dominguez_
http://co.linkedin.com/in/albertodominguezs
#motivación
+2MM
 iPad
+80MM
  iPhone +
iPod Touch
+40
~3.5MM
+5000MM
descargas
 appstore
+$1000MM
 ingresos
65000
+dispositivos
      x
     día
+100K
 apps
#intro
#ecosistema
+
~16% SOM              ~9% SOM




  =
Corona     ~25% SOM
Corona SDK

es un producto de Ansca, Inc.
   http://www.anscamobile.com/corona

       ... y no soy socio,
           ni empleado!
#alternativas



iPhone / iPod / iPad SDK - Apple
Corona - Ansca Inc
iPhone Wax - probablyinteractive
Titanium Mobile - Appcelerator
Phonegap - Nitobi
Rodhes - Rhomobile
Flash CS5 - Adobe
#pqp
#pqp
                                         Corona SDK

No puedo creer lo poco que me tomó estar listo para desarrollar
apps con Corona.
Es uno de los mejores kits (emergentes) de desarrollo que haya
usado recientemente. Chevere!
-- Scott Janousek (@scottjanousek)

Corona SDK me permitió desarrollar la aplicación de Campus
Party para iPhone en menos de 4 días
-- Ivan Sosa (@ivansosa)

Que afortunado soy al no tener que aprender Objective C.
-- Alberto Domínguez (@_dominguez_)
#historia
Venture Palo-Alto, CA
                   Adobe Flash Lite


Ansca is committed to creating innovative mobile products
allowing anyone to create great mobile apps and games.
#sdk
versión 2 beta 5
#lua
#lua


Lua - Luna en Portuguese

Creado en 1993 por
Roberto Ierusalimschy
Luiz Henrique de Figueiredo
Waldemar Celes

@ Tecgraf
Pontificia Universidad Católica de Rio de Janerio
#juegos
#lua
#quiero-ver-código
#proyectos



Proyecto por carpeta
Todo los elementos se compilan en una sola App
El archivo principal es main.lua
Editores:
    XCode
    BBEdit
    TextWrangler
#simulador
#proceso




1.   Diseñar aplicación
2.   Desarrollar el código Lua
3.   Cargar y probar aplicación en el Simulador
4.   Compilar aplicación via XCode
#hola-mundo




background = display.newImage('cpbogota.jpg')
title = display.newText('Hola Mundo', 15, 30)
title:setTextColor(0, 120, 255)
#WTF!
#hola-mundo




background = display.newImage('cpbogota.jpg')
title = display.newText('Hola Mundo', 15, 30)
title:setTextColor(0, 120, 255)
#lua
#tipos



nil
boolean
number
string
function
userdata
thread
table
#condicional
                                                #lua



while exp do block end repeat block until expif exp then block
elseif exp then block
elseif exp then block
...
else block end
#variables
                                 #lua



-- Variables
variableGlobal = 10
local variableLocal = 20
#tablas
                                        #lua



-- Tablas
local palabras = {'lua', 'campus', 'corona'}
local diccionario = {x = 5, y = 3, z = 23}
print (diccionario.x)
#cadenas
                             #lua

-- Cadenas - Strings
a = 'alon123"'
a = "alon123""
a = '97lo1004923"'
a = [[alo
123"]]
a = [==[
alo
123"]==]
#botones
                                        #lua
local ui = require("ui")
-- Boton
local button = ui.newButton{
    default = "buttonYellow.png",
    over = "buttonYellowOver.png",
    onEvent = buttonHandler,
    id = "button2",
    text = "Button 2 Label",
    font = "Trebuchet-BoldItalic",
    textColor = { 51, 51, 51, 255 },
    size = 22,
    emboss = true
}
#movieclip
                                       #lua

display.setStatusBar(display.HiddenStatusBar)
-- Crea "capas"
background = display.newGroup()
foreground = display.newGroup()

animacion = movieclip.newAnim{"cube1.png",
"cube2.png", "cube3.png", "cube4.png", "cube5.
png", "cube6.png"}

foreground:insert(animacion)
animacion.play()
#movieclip
                                       #lua


sec = {}
for i = 1,6 do
  table.insert(sec, "cube" .. i .. ".png")
end
animacion = movieclip.newAnim{sec}

foreground:insert(animacion)
#movieclip
                                       #lua


sec = {}
for i = 1,6 do
  table.insert(sec, "cube" .. i .. ".png")
end
animacion = movieclip.newAnim{sec}

foreground:insert(animacion)
#device
                                        #lua

local bkgd = display.newRect(0, 0, display.
stageWidth, display.stageHeight)
bkgd:setFillColor(128, 0, 0)

local listener = function(event)
    media.show(media.Camera, sessionComplete)
    return true
end
bkgd:addEventListener("tap", listener)
#aplicación
#cpbogota
                                    #iphone
                                 #coronasdk


Información sobre el evento
Mapa
Carga de datos remotos
Multipantalla - varias escenas
#game-engine
          alpha
#game-engine
                         paso 1: ambiente



local sky = display.newImage( "clouds.png" )

local ground = display.newImage( "ground.jpg" )
ground.y = 405
#game-engine
                             paso 2: sujeto



local crate = display.newImage( "crate.png" )
crate.x = 180
crate.y = 80
crate.rotation = 10
#game-engine
                             paso 2: magia

local physics = require( "physics" )
physics.start()
...
physics.addBody( ground, { friction=0.5 } )
ground.bodyType = "static"
...
physics.addBody( crate, { density=2.0,
friction=0.5,
bounce=0.3 } )
2
#WTF !
#game-engine
                          paso 2: magia++

local physics = require( "physics" )
physics.start()
...
physics.addBody( ground, { friction=0.5 } )
ground.bodyType = "static"
...
physics.addBody( crate, { density=2.0,
friction=0.5,
bounce=0.3 } )
3
#WTF !
#next-steps
estudiar
 Objective C
¡NO!
#next-steps



Principio KISS
http://es.wikipedia.org/wiki/Principio_KISS
Experimentar
Visitar foros de desarrolladores
Estudiar
Registrarse como Apple Developer ($)
Registrarse como Corona Developer ($)
#GRACIAS

Mais conteúdo relacionado

Semelhante a Develop Mobile Apps with Corona SDK

Desarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2DDesarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2Dcreagamers
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5Plain Concepts
 
Programación de Videojuegos con Python y Pilas (V)
Programación de Videojuegos con Python y Pilas (V)Programación de Videojuegos con Python y Pilas (V)
Programación de Videojuegos con Python y Pilas (V)Fernando Salamero
 
Manual de android
Manual de androidManual de android
Manual de androidJarboledah
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18Young Suk Ahn Park
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDKFe
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndkBarcelona GTUG
 
Manual(mario alberto rosales lara)
Manual(mario alberto rosales lara)Manual(mario alberto rosales lara)
Manual(mario alberto rosales lara)MariOo Rosales
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryDavid Arango
 
Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMjavier ramirez
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterAdolfo Sanz De Diego
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...RootedCON
 

Semelhante a Develop Mobile Apps with Corona SDK (20)

Desarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2DDesarrollar juegos para Iphone e Ipad con Cocos2D
Desarrollar juegos para Iphone e Ipad con Cocos2D
 
Taller Corona
Taller CoronaTaller Corona
Taller Corona
 
HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5HTML Tour - Programación de Videojuegos HTML5
HTML Tour - Programación de Videojuegos HTML5
 
Programación de Videojuegos con Python y Pilas (V)
Programación de Videojuegos con Python y Pilas (V)Programación de Videojuegos con Python y Pilas (V)
Programación de Videojuegos con Python y Pilas (V)
 
Fabric más allá de lo básico
Fabric más allá de lo básicoFabric más allá de lo básico
Fabric más allá de lo básico
 
Programación de Aplicaciones
Programación de AplicacionesProgramación de Aplicaciones
Programación de Aplicaciones
 
Curso android studio
Curso android studioCurso android studio
Curso android studio
 
Curso android studio
Curso android studioCurso android studio
Curso android studio
 
Manual de android
Manual de androidManual de android
Manual de android
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDK
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndk
 
Mejorandola
MejorandolaMejorandola
Mejorandola
 
Manual(mario alberto rosales lara)
Manual(mario alberto rosales lara)Manual(mario alberto rosales lara)
Manual(mario alberto rosales lara)
 
Presentacion proyecto
Presentacion proyectoPresentacion proyecto
Presentacion proyecto
 
Presentacion proyecto
Presentacion proyectoPresentacion proyecto
Presentacion proyecto
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVM
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipster
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
 

Último

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
 
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
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
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
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 

Último (10)

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
 
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)
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
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
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
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
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

Develop Mobile Apps with Corona SDK

  • 3. #presentación Alberto Domínguez Ingeniero de Sistemas y Computación (BSc. y MSc.) Programador Certificado Java (SCJP) Gerente de Proyectos (PMP) Profesor Universitario (Programación y GP) Miembro ACIS, PMI Organizador @Bogotech Miembro del Equipo Torrenegra Labs Referral Program Manager @LetMeGo @_dominguez_ http://co.linkedin.com/in/albertodominguezs
  • 6. +80MM iPhone + iPod Touch
  • 12.
  • 15. + ~16% SOM ~9% SOM = Corona ~25% SOM
  • 16. Corona SDK es un producto de Ansca, Inc. http://www.anscamobile.com/corona ... y no soy socio, ni empleado!
  • 17. #alternativas iPhone / iPod / iPad SDK - Apple Corona - Ansca Inc iPhone Wax - probablyinteractive Titanium Mobile - Appcelerator Phonegap - Nitobi Rodhes - Rhomobile Flash CS5 - Adobe
  • 18. #pqp
  • 19. #pqp Corona SDK No puedo creer lo poco que me tomó estar listo para desarrollar apps con Corona. Es uno de los mejores kits (emergentes) de desarrollo que haya usado recientemente. Chevere! -- Scott Janousek (@scottjanousek) Corona SDK me permitió desarrollar la aplicación de Campus Party para iPhone en menos de 4 días -- Ivan Sosa (@ivansosa) Que afortunado soy al no tener que aprender Objective C. -- Alberto Domínguez (@_dominguez_)
  • 21. Venture Palo-Alto, CA Adobe Flash Lite Ansca is committed to creating innovative mobile products allowing anyone to create great mobile apps and games.
  • 23.
  • 24.
  • 25.
  • 26. #lua
  • 27. #lua Lua - Luna en Portuguese Creado en 1993 por Roberto Ierusalimschy Luiz Henrique de Figueiredo Waldemar Celes @ Tecgraf Pontificia Universidad Católica de Rio de Janerio
  • 30. #proyectos Proyecto por carpeta Todo los elementos se compilan en una sola App El archivo principal es main.lua Editores: XCode BBEdit TextWrangler
  • 32. #proceso 1. Diseñar aplicación 2. Desarrollar el código Lua 3. Cargar y probar aplicación en el Simulador 4. Compilar aplicación via XCode
  • 33. #hola-mundo background = display.newImage('cpbogota.jpg') title = display.newText('Hola Mundo', 15, 30) title:setTextColor(0, 120, 255)
  • 34. #WTF!
  • 35. #hola-mundo background = display.newImage('cpbogota.jpg') title = display.newText('Hola Mundo', 15, 30) title:setTextColor(0, 120, 255)
  • 36. #lua
  • 38. #condicional #lua while exp do block end repeat block until expif exp then block elseif exp then block elseif exp then block ... else block end
  • 39. #variables #lua -- Variables variableGlobal = 10 local variableLocal = 20
  • 40. #tablas #lua -- Tablas local palabras = {'lua', 'campus', 'corona'} local diccionario = {x = 5, y = 3, z = 23} print (diccionario.x)
  • 41. #cadenas #lua -- Cadenas - Strings a = 'alon123"' a = "alon123"" a = '97lo1004923"' a = [[alo 123"]] a = [==[ alo 123"]==]
  • 42. #botones #lua local ui = require("ui") -- Boton local button = ui.newButton{ default = "buttonYellow.png", over = "buttonYellowOver.png", onEvent = buttonHandler, id = "button2", text = "Button 2 Label", font = "Trebuchet-BoldItalic", textColor = { 51, 51, 51, 255 }, size = 22, emboss = true }
  • 43. #movieclip #lua display.setStatusBar(display.HiddenStatusBar) -- Crea "capas" background = display.newGroup() foreground = display.newGroup() animacion = movieclip.newAnim{"cube1.png", "cube2.png", "cube3.png", "cube4.png", "cube5. png", "cube6.png"} foreground:insert(animacion) animacion.play()
  • 44. #movieclip #lua sec = {} for i = 1,6 do table.insert(sec, "cube" .. i .. ".png") end animacion = movieclip.newAnim{sec} foreground:insert(animacion)
  • 45. #movieclip #lua sec = {} for i = 1,6 do table.insert(sec, "cube" .. i .. ".png") end animacion = movieclip.newAnim{sec} foreground:insert(animacion)
  • 46. #device #lua local bkgd = display.newRect(0, 0, display. stageWidth, display.stageHeight) bkgd:setFillColor(128, 0, 0) local listener = function(event) media.show(media.Camera, sessionComplete) return true end bkgd:addEventListener("tap", listener)
  • 48.
  • 49. #cpbogota #iphone #coronasdk Información sobre el evento Mapa Carga de datos remotos Multipantalla - varias escenas
  • 50. #game-engine alpha
  • 51. #game-engine paso 1: ambiente local sky = display.newImage( "clouds.png" ) local ground = display.newImage( "ground.jpg" ) ground.y = 405
  • 52. #game-engine paso 2: sujeto local crate = display.newImage( "crate.png" ) crate.x = 180 crate.y = 80 crate.rotation = 10
  • 53. #game-engine paso 2: magia local physics = require( "physics" ) physics.start() ... physics.addBody( ground, { friction=0.5 } ) ground.bodyType = "static" ... physics.addBody( crate, { density=2.0, friction=0.5, bounce=0.3 } )
  • 54.
  • 56. #game-engine paso 2: magia++ local physics = require( "physics" ) physics.start() ... physics.addBody( ground, { friction=0.5 } ) ground.bodyType = "static" ... physics.addBody( crate, { density=2.0, friction=0.5, bounce=0.3 } )
  • 57.
  • 61. ¡NO!
  • 62. #next-steps Principio KISS http://es.wikipedia.org/wiki/Principio_KISS Experimentar Visitar foros de desarrolladores Estudiar Registrarse como Apple Developer ($) Registrarse como Corona Developer ($)