Tema correspondiente al Bloque I de las pruebas selectivas al Cuerpo General Auxiliar de la Administración General del Estado (España)Descripción completa
tres cyartosDescripción completa
Descripción completa
SDK Contpaq i comercial manualDescripción completa
VolvoDescripción completa
ventajas de la cerveza coronaDescripción completa
Descripción: Manual utilização Biometria griaule
Tutorial
-1-
Indice
1. Introducción al desarrollo con Corona SDK …………………………………… 3 Ejercicios tema 1……………………………… 1………………………………………………………………… ………………………………… 9 2. Empezar a proramar con !"# !" # …………………………………………………...13 …………………………………………………...13 Ejercicios tema 2 ………………………………………………………………..21 ………………………………………………………………..21 3. $ormas% im&enes ' te(to ………………………………………………………….23 ………………………………………………………….23 Ejercicios tema 3 ………………………………………………………………..3) ………………………………………………………………..3) *. E+entos e interacción ………………………………………………………….…...39 ………………………………………………………….…...39 Ejercicios tema * ……………………………………………………………......*, ……………………………………………………………......*, ). Timers ' animaciones …………………………………………………………...…)…………………………………………………………...…)Ejercicios tema ) ………………………………………………………………..) ………………………………………………………………..) /. 0otor $sico …………………………………………………………………………../1 …………………………………………………………………………../1 Ejercicios tema / ………………………………………………………………..,1 ………………………………………………………………..,1 ,. ardare ' multimedia ………………………………………………………….....,* ………………………………………………………….....,* Ejercicios tema , ………………………………………………………………..) ………………………………………………………………..) . 4estión de mapas ' 45S …………………………………………………………..9…………………………………………………………..9Ejercicios tema ………………………………………………………………..9, ………………………………………………………………..9, 9. Dise6ando la inter7az de usuario ……………………………………………..…1-Ejercicios tema 9 ………………………………………………………………1-) ………………………………………………………………1-) 1-. Entrada ' salida ………………………………… …………………………………………………………….….…1- ………………………….….…1- Ejercicios tema 1- ………………………………… ……………………………………………………….….…1 …………………….….…11/ 1/ 11. Composer ' idet ……………………………… ……………………………………………………………….12 ……………………………….12-Ejercicios tema 11 ………………………………………………………..……13………………………………………………………..……1312. 0otor 7sico 7sic o 8 5arte 2 ……………………………………………………….…...13) ……………………………………………………….…...13) Ejercicios tema 12 ………………………………………………………..……1*2 ………………………………………………………..……1*2
-2-
Tema 1 Introducción al desarrollo con
Corona SDK • Corona es un kit de desarrollo de software que permite la creación de aplicaciones móviles para iPhone, iPad y dispositivos Android. • Su o!etivo es el de ahorrar el mayor tiempo posile desarrollando proyectos móviles al compartir códi"o entre los diferentes sistemas • #iene una versión "ratuita para desarrollar que se puede descar"ar desde el si"uiente enlace$
• 'l proceso de desarrollo con Corona S() es muy simple$ • (ise*amos los elementos de audio, v+deo, ima"en y animación con al"una herramienta destinada a ello Photoshop, Premiere, Audacity...-. Audacity...-. • /pido desarrollo de la aplicación haciendo uso del simulador multiplataforma para previsuali0ar nuestro proyecto en los diferentes dispositivos. • Pulicación con muy pocos clicks del resultado de nuestro proyecto en la App Store y en 1oo"le Play
• 'l len"ua!e de pro"ramación empleado para el desarrollo con Corona S() es 23A$
-3-
• 23A es un len"ua!e de pro"ramación imperativo se asa en estados de la aplicación que podemos ir modi4cando mediante sentencias-, estructurado y astante li"ero • Sólo funciona emeido en un cliente an4trión, este caso, el framework Corona • 5frece un uen soporte para la pro"ramación orientada a o!etos, pro"ramación funcional y pro"ramación orientada a datos
Corona SDK !"# • A trav6s del uso de funciones C, 2ua puede ser aumentado para aarcar un amplio ran"o de diferentes diferent es dominios, creando as+ len"ua!es de pro"ramación personali0ados. • 23A es software lire y se proporciona sin "arant+as, "arant+ as, tal y como especi4ca su manual de referencia en el sitio o4cial www.lua.or" www.lua.or"..
Caractersticas de Corona • Posee un motor 5pen12&'S propio que nos permite reali0ar "randes manipulaciones "r/4cas de manera muy sencilla • (estaca por por su desarrollo multiplataforma. Permite Permite crear aplicaciones aplicaciones tanto para i5S iPhone y iPad-, como para Android. • Cuenta con controles nativos para el acceso al dispositivo y a los diferentes elementos hardware como c/mara, acelerómetro, 1PS... etc. • 2as aplicaciones creadas con Corona se pueden optimi0ar para ocupar el menor espacio posile. A partir de 788ks.
-4-
Instalación de Corona SDK • Para otener la versión "ratuita del framework, con la que podremos crear aplicaciones de manera ilimitada, tendremos que crearnos una cuenta de desarrollador en la we o4cial de Corona
http$%%www.coronalas.com%
• (eemos descar"arnos e instalar la aplicación correspondiente a nuestro sistema operativo 9ac 5S : o 9icrosoft ;indows-
-5-
• Con la instalación otendremos una carpeta carpet a en nuestra m/quina con las si"uientes aplicaciones
-6-
• Contamos con tres aplicaciones para poder acceder al Simulador de Corona Corona Simulator, Simulator, Corona #erminal y deu""er• 2as tres nos dan acceso al mismo simulador, sólo que las dos
Simulador Corona SDK • (esde la ventana principal de la aplicación simulador podremos acceder a todos nuestros proyectos, as+ como crear uno nuevo o e!ecutar cualquiera de los e!emplos que nos vienen dentro del directorio director io SampleCode
• Si arimos cualquier proyecto, e!ecutaremos e !ecutaremos autom/ticamente la vista del simulador, simulador, la cual podemos camiar para reali0ar las prueas pertinentes en los diferentes dispositivos.
-7-
• Para editar el códi"o de nuestro proyecto se usar/ el editor de te=to que ten"amos de4nido por defecto en nuestra m/quina. Para camiar esto tendremos que camiar la aplicación asociada a los archivos de tipo .lua • Al salvar un 4chero .lua correspondiente al proyecto activo act ivo en el simulador, 6ste nos pre"untar/ si deseamos volver a car"ar la aplicación para poder oservar los camios en el dispositivo. 'sta opción se puede desactivar.
-8-
Ejercicios Tema 1 Ejercicio 1 >amos a reali0ar la instalación completa de Corona S() y comproaremos su correcto funcionamiento en nuestra m/quina, para as+ poder afrontar el resto de temas sin prolemas. Para comen0ar con la instalación, deemos acceder a la we o4cial de Corona para darnos de alta como desarrolladores https$%%developer.coronalas.com%user%re"ister -
3na ve0 estemos correctamente re"istrados e iniciemos sesión en la p/"ina, podemos descar"arnos el sdk desde la propia we, distin"uiendo el sistema operativo sore el que vamos a traa!ar https$%%developer.coronalas.com%downloads%corona&sdk https$%%developer.coronalas.com%downloads%corona&sdk--
-9-
Procedemos a instalar el e!ecutale que hemos descar"ado de la we y tendremos acceso a la carpeta con las herramientas de Corona S(), en el directorio donde hayamos especi4cado durante la instalación. 2os e!ecutales que se han instalado en nuestra nues tra m/quina son los si"uientes$
- 10 -
Si hacemos dole click sore la aplicación Corona Simulator, Simulator, arimos la interfa0 principal para desarrollar con Corona S()
- 11 -
'n el men< de la aplicación podemos acceder a ?ile &@ 5pen.. y si accedemos a la carpeta Sample Codes del directorio direct orio donde hemos instalado Corona S(), podemos oservar un "ran n
#mpliación 1 Camia el tipo de simulador en el que se e!ecuta la aplicación accediendo al men< de Corona S() en ;indow &@ >iew AsB
Ejercicio 2 'n ve0 de e!ecutar la aplicación Corona Simulator, Simulator, vamos a e!ecutar la aplicación Corona #erminal. #erminal. Pruea a se"uir los mismos pasos que el e!ercicio anterior y oserva los mensa!es que van apareciendo en el terminal. Para acceder al códi"o que se est/ e!ecutando sólo hay que arir el men< de la aplicación en la ruta ?ile &@ 5pen pro!ect in 'ditor...
- 12 -
Tema 2 'mpe0ar a pro"ramar con 23A
!"# • 2ua es un len"ua!e de pro"ramación e=tensile el cual dee funcionar dentro de un pro"rama contenedor o simplemente an4trión. • Se pretende que 2ua sea usado como un len"ua!e de script potente y li"ero para cualquier pro"rama que lo necesite. • 2os pro"ramas en 2ua no son interpretados directamente, sino compilados a códi"o ytecode, que es e!ecutado por la m/quina virtual de 2ua. • 'l proceso de compilación es normalmente transparente transparent e al usuario y se reali0a en tiempo de e!ecución, pero puede hacerse con anticipación para aumentar el rendimiento y reducir el uso de la memoria al prescindir del compilador.
!"# :aria;les • 2os nomres de las variales pueden ser de4nidos con cualquier cominación de letras, d+"itos y caracteres de surayado underscoresiempre y cuando no comiencen por un d+"ito. • 'n 2ua hay diferencia entre may'SI5 e!$ D>'SI5-• 2ua es un len"ua!e din/micamente tipado, es decir, decir, las variales no tienen tipo, sólo tienen tipo los valores. o e=isten de4niciones de tipo en el len"ua!e ya que cada valor almacena su propio tipo. - 13 -
• '=isten E tipos /sicos en 2ua$ nil, boolean, number, string, function, userdata, thread y table • 'l tipo nil nil es es el valor nulo, cuya principal función es la de ser diferente a cualquier otro valor • oolean oolean es es el tipo de los valores true true verdadero verdadero- o false falso falso-• #anto #anto nil como false hacen que una condición sea falsa, cualquier otro valor la hace verdadera • numer representa representa n
- 14 -
• 2as variales pueden ser de tres tipos$ locales, "loales y campos de tala • Por defecto todas las variales son de tipo "loal a no ser que sean declaradas e=pl+citamente como locales, con la palara reservada local local.. • 2as variales locales tienen un /mito scope- de4nido. Se puede acceder a ellas desde dentro de las funciones de4nidas en su mismo /mito.
!"# Ta;las • 2as talas son variales utili0adas para almacenar dentro otros valores. Ser+a el tipo equivalente a lo que conocemos como arrays en otros len"ua!es de pro"ramación. • Para iniciali0ar nuestras talas tenemos dos posiilidades$
creamos una tabla vacía en este caso le asignamos directamente 4 elementos nada más crearla. Los índices son de tipo numrico
miTabla = { latitud = !"."# !"."#,, longitud = $!."% $!."%,, direccion = “&' (rueba 1)!”} 1)!”} Tambin asignamos directamente los valores, pero en este caso los índices no son de tipo numrico
- 15 -
• Para acceder a los valores almacenados en una tala tami6n podemos proceder de varias maneras$
accedemos al valor de la tabla situado en la posicin !, en este caso Test
miTabla = { latitud = !"."# !"."#,, longitud = $!."% $!."%,, direccion = “&' (rueba 1)!”} 1)!”} miTabla.latitud
en este caso accedemos accedemo s al valor de la tabla cu-a clave es latitud. n este caso, !"."#
!"# Ta;las Ta;las <7unciones= < 7unciones= • Podemos conocer el tama*o de una tala con el operador F miTabla = { 1, 4, “Test” “Test”,, true true}}
la sentencia #miTabla nos devolverá el tama/o de la tabla. n este caso 4
• Con la función ta;le.sort ordenamos los valores de la tala i"norando las claves. 2a ordenación se asa en el al"oritmo quicksorttabla&iudades tabla&iudades = {0arago2a0 0arago2a0,, 03arcelona0 03arcelona0,, 0adrid0 0adrid0,, 05alencia0 05alencia0,, 06lmeria0 06lmeria0}} table.sort 7tabla&iudades8 7tabla&iudades8 9or i=1, :tabla&iudades, 1 do print 7tabla&iudades*i+8 7tabla&iudades*i+8 end
Nos muestra el siguiente resultado en el Terminal: Almeria Barcelona Madrid Valencia Zaragoza - 16 -
• 2a función ta;le.concat reco"e una tala de strin"s o de n
• Con tale.remove eliminamos el
• Para recorrer una tala en 2ua, tenemos diferentes opciones. 2a primera y m/s sencilla es usando un ucle 7or a a partir de la lon"itud de la tala tabla&iudades = {0arago2a0, 03arcelona0, 0adrid0, 05alencia0, 06lmeria0} 9or i=1, :tabla&iudades :tabla&iudades do print 7tabla&iudades *i+8 end
;esultado en el Terminal< arago2a 3arcelona adrid 5alencia 6lmeria
• 5tra forma para recorrer la tala, oteniendo el mismo resultado es utili0ando la estructura 7or ... inpairs… 9or i, ciudad in ipairs7tabla&iudades8 do print7ciudad8 end
&ada iteracin del bucle, la variable ciudad toma el valor de la tabla correspondiente
- 17 -
!"# Control de >ujo i7 ?condicion@ tAen else B elsei7 ?condicion@ • 2a sentencia if compruea la condición y e!ecuta la parte del then si esta condición se cumple, si no, se e!ecuta la parte del else, la cual es opcional
i9 a " t>en a=" end
i9 a a " t>en a=" else a = )" end
Ai el valor de la variable a es menor Bue cero, se le asigna el valor cero. Ai es ma-or Bue cero, no se >ace nada
Ai el valor de la variable a es menor Bue cero, se le asigna el valor cero. Ai es ma-or Bue cero, se le asigna el valor )"
• Para evaluar distintas condiciones, utili0aremos la sentencia if anidada utili0ando elsei7 i9 n n == 1 t>en print 7“? es 1”8 elsei9 n n == ) t>en print 7“? es )”8 elsei9 n n == ! t>en print 7“? es !”8 end
Cependiendo del valor de ?, obtendremos el mensaDe correspondiente a travs del Terminal
Aile ?condicion@ do • Se e!ecuta el proceso incluido dentro del ucle hasta que la evaluación de la condición devuelva false n=) @>ile n1" @>ile n1" do print7n8
ientras Bue la variable n sea menor Bue 1", mostrará en el terminal el valor de n - 18 -
n = nE1 end
• (eemos controlar en el interior del ucle la condición de salida para evitar que la e!ecución del ucle sea in4nita
ucle 7or • 'l ucle for, puede ser de4nido de varias maneras$ • 2a formula m/s com
7or Gvalor Gvalor inicialH, Gvalor 4nalH, GaumentoH do end 9or i=", 9or i=", 1", 1 do print 7i8 end
n este eDemplo mostraremos en el terminal los nGmeros del " al 1"
• 5tra de las formas de reali0ar un for y que suele ser de astante utilidad en el recorrido talas es$ i, v in ipairsa- do 7or i,
end local tabla = {“nero” { “nero”,, “Febrero” “Feb rero”,, “ar2o” “ ar2o”,, “6bril”} 9or i, 9or i, mes in ipairs ipairs7tabla8 7tabla8 do print 7mes8 end
- 19 -
ste eDemplo nos mostrará a travs del Terminal todos los elementos de la tabla, en este caso, 4 meses
!"# 8 $unciones • 2as funciones son una a"rupación de sentencias y declaraciones de variales que cumplen un o!etivo com
7unction nomre?uncion parametro, parametrosJ... parametroGreturn valor(evueltoH
end • 3na de las "randes venta!as de las funciones en 2ua es que pueden devolver varios valores.
- 20 -
Ejercicios Tema 2 Ejercicio 1 ola 0undo !ua Para comen0ar con los e!ercicios, vamos a arrancar la aplicación Corona S(), teniendo en cuenta que esco"emos la opción que nos permite visuali0ar el terminal. 'n el men< de la aplicación, accedemos a ?ile &@ ew Pro!ect y completamos los datos que nos piden$ &App ame$ Kola9undo &Choose #emplate$ Llank &Screen Si0e$ Phone preset M ;idth$ NJ8 M Kei"ht$ 7E8 &(efault 5rientation$ 3pri"ht 3na ve0 creado el proyecto y seleccionado el directorio donde lo vamos a "uardar, "uardar, seleccionamos arir el editor, para poder modi4car nuestro códi"o. 'n este momento, tendremos al"o as+, en nuestro 4chero main.lua$ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && && main.lua O &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & our code here
Para terminar nuestro primer proyecto 2ua, podemos a"re"ar la si"uiente l+nea de códi"o$ &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && && main.lua O &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& & our code here - 21 -
print QKola mundo 2uaQ-
Salvamos el 4chero main.lua y autom/ticamente, el simulador detecta camios y nos refresca la vista del modelo de móvil que ten"amos seleccionado. Para poder oservar el mensa!e que hemos pro"ramado, deemos acceder al #erminal. ermina l.
Ejercicio 2 A partir de la si"uiente tala$ local mi#ala mi#ala R TPa!aroU, TPerroU, T#iurónU, TPulpoUV Crea un m6todo que recia como par/metro un n
Ejercicio 3 Crea un m6todo que recia como par/metro un n
- 22 -
Tema 3 ?ormas, Im/"enes y #e=to
$ormas 4eomtricas &sicas • (esde la API de Corona tenemos la posiilidad de acceder a una serie de m6todos que nos permiten mostrar elementos "eom6tricos en nuestros dispositivos. • 2os elementos que podemos representar mediante m6todos de 2ua en el simulador son$ l+neas, rect/n"ulos, c+rculos, elipses y rect/n"ulos redondeados
displa'.ne!ine < (1% '1% (2% '2= • Con el m6todo new2ine podemos especi4car una l+nea recta entre dos puntos • 2os par/metros =, y- indican el punto de inicio de la recta. 2os par/metros =J, yJ- indican el punto 4nal de la recta. • 'l color por defecto es el lanco
displa-.ne@Line7 1)", 1"", !"", 1)"8
• Podemos especi4car el color y el tama*o de la recta con el m6todo setColor y el atriuto width • 2os colores deen especi4carse con valores espec+4cos para el o!o, >erde >erde y A0ul. 'l n
- 23 -
local recta = displa-.ne@Line7 1"",#", )%",!#" 8 recta = H
• Si almacenamos la creación de nuestro rect/n"ulo en una variale, podemos modi4car el relleno y el tra0o.
local mi;ect = displa-.ne@;ect71%#, )#", )"", 1""8 mi;ect.stroIeJidt> = H mi;ect
• Con el m6todo stroGeHidtA especi4camos el tama*o del tra0o del rect/n"ulo • Con set$illColor de4nimos de4nimos el color de relleno del rect/n"ulo r ect/n"ulo • 'l m6todo setStroGeColor de4ne de4ne el color del tra0o • 2os colores se de4nen indicando los valores de o!o, >erde y A0ul A0ul con n
displa'.neFoundedFect< displa'.neFoundedFect< le7t% top% idtA% AeiAt% cornerFadius = • ?unciona como el m6todo anterior, sólo que en este le tenemos que especi4car el radio de curvatura en las esquinas del rect/n"ulo con el
local mi;ound;ect = displa-.ne@;ounded;ect71!#, )"", 1#", 1#", )"8 mi;ound;ect.stroIeJidt> = ! mi;ound;ect
displa'.neCircle< (Center% 'Center% radius = • 'ste m6todo nos permite diu!ar un c+rculo especi4cando el punto central del c+rculo =Center, yCenter- y el radio radius-
local mi&irc = displa-.ne@&ircle7 1#", )"", 1"" 8
Im&enes displa'.neImae< displa'.neImae< lename ?%center(% center'@ = • Con este m6todo podemos situar en nuestra aplicación im/"enes. Para ello deemos incluir las im/"enes en el directorio de nuestra aplicación y a trav6s del par/metro 4lename deemos especi4carle la ruta e=acta donde poder encontrarlas. • 9ediante top y left, que son par/metros opcionales, podemos especi4car las coordenadas donde vamos a situar la ima"en. Si no especi4camos coordenadas, el centro de la ima"en se sit
- 26 -