Develop Mobile Apps with Corona SDK

Preview:

DESCRIPTION

Presentación sobre desarrollo de aplicaciones móviles sobre la platarforma Corona SDK de Ansca Inc.

Citation preview

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, PMIOrganizador @Bogotech

Miembro del Equipo Torrenegra LabsReferral Program Manager @LetMeGo

@_dominguez_http://co.linkedin.com/in/albertodominguezs

#motivación

+2MM iPad

+80MMiPhone +

iPod Touch

+40 ~3.5MM

+5000MM descargas appstore

+$1000MMingresos

65000+dispositivos

xdía

+100Kapps

#intro

#ecosistema

+=

Corona

~16% SOM ~9% SOM

~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 - AppleCorona - Ansca InciPhone Wax - probablyinteractiveTitanium Mobile - AppceleratorPhonegap - NitobiRodhes - RhomobileFlash CS5 - Adobe

#pqp

#pqpCorona 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, CAAdobe 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 FigueiredoWaldemar Celes @ TecgrafPontificia Universidad Católica de Rio de Janerio

#juegos

#lua#quiero-ver-código

#proyectos

Proyecto por carpetaTodo los elementos se compilan en una sola AppEl archivo principal es main.luaEditores:

XCodeBBEditTextWrangler

#simulador

#proceso

1. Diseñar aplicación2. Desarrollar el código Lua3. Cargar y probar aplicación en el Simulador4. 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 numberstring function userdatathread table

#condicional#lua

while exp do block end repeat block until expif exp then block elseif exp then blockelseif exp then block...else block end

#variables#lua

-- VariablesvariableGlobal = 10local variableLocal = 20

#tablas#lua

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

#cadenas#lua

-- Cadenas - Stringsa = 'alo\n123"'a = "alo\n123\""a = '\97lo\10\04923"'a = [[alo123"]]a = [==[alo123"]==]

#botones#lua

local ui = require("ui")-- Botonlocal 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")endanimacion = movieclip.newAnim{sec} foreground:insert(animacion)

#movieclip#lua

sec = {}for i = 1,6 do table.insert(sec, "cube" .. i .. ".png")endanimacion = 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 trueendbkgd:addEventListener("tap", listener)

#aplicación

#cpbogota#iphone

#coronasdk

Información sobre el eventoMapaCarga de datos remotosMultipantalla - varias escenas

#game-enginealpha

#game-enginepaso 1: ambiente

local sky = display.newImage( "clouds.png" ) local ground = display.newImage( "ground.jpg" )ground.y = 405

#game-enginepaso 2: sujeto

local crate = display.newImage( "crate.png" )crate.x = 180crate.y = 80crate.rotation = 10

#game-enginepaso 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 } )

#WTF2!

#game-enginepaso 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 } )

#WTF3!

#next-steps

estudiarObjective C

¡NO!

#next-steps

Principio KISShttp://es.wikipedia.org/wiki/Principio_KISSExperimentarVisitar foros de desarrolladoresEstudiarRegistrarse como Apple Developer ($)Registrarse como Corona Developer ($)

#GRACIAS