Logo Studenta

ES-IOS-Desarrollo-aplicaciones-iosandroid-charte

¡Este material tiene más páginas!

Vista previa del material en texto

Desarrollo de
aplicaciones
iOS/Android con
Delphi
por Francisco Charte
© Danysoft 2014
2 -
DERECHOS RESERVADOS
Te pedimos que no hagas un uso ilegal de este libro, para poder seguir publicando 
libros tan especializados como este, para profesionales como tú.
El contenido de esta publicación tiene todos los derechos reservados, por lo que no 
se puede reproducir, transcribir, transmitir, almacenar en un sistema de 
recuperación o traducir a otro idioma de ninguna forma o por ningún medio 
mecánico, manual, electrónico, magnético, químico, óptico, o de otro modo. La 
persecución de una reproducción no autorizada tiene como consecuencia la cárcel 
y/o multas.
LIMITACIÓN DE LA RESPONSABILIDAD
Tanto el autor como en Danysoft hemos revisado el texto para evitar cualquier tipo 
de error, pero no podemos prometerle que el libro esté siempre libre de errores. Por 
ello le rogamos nos remita por e-mail sus comentarios sobre el libro a
attcliente@danysoft.com
LIBRO GRATUITO
En agradecimiento a la comunidad de desarrolladores Delphi, el autor y 
Danysoft han decidido dejar este libro como gratuito, por lo que no se puede 
obtener ningún beneficio, ni realizar distribución del mismo de ningún tipo sin 
autorización previa de la editorial. Si desean comentarlo a amigos o indicar que 
es gratuito, pueden indicar el siguiente enlace como referencia para la descarga o 
visualización: 
https://www.danysoft.com/desarrollo-de-aplicaciones-ios-android-con-delphi/
MARCAS REGISTRADAS
Todos los productos y marcas se mencionan únicamente con fines de identificación 
y están registrados por sus respectivas compañías.
Autor: Francisco Charte
Publicado en castellano por Danysoft
Avda. de la Industria, 4 Edif. 1
28108 Alcobendas, Madrid. España.
902 123146 | www.danysoft.com
ISBN: 978-84-939910-7-4
Depósito Legal: M-25663-2014
Si no es eres ese usuario, rogamos nos lo comentes en attcliente@danysoft.com
IMPRESO EN ESPAÑA | © Danysoft | Madrid, 2014 | versión en
castellano. Desarrollo de aplicaciones iOS/Android con Delphi |
https://www.danysoft.com/desarrollo-de-aplicaciones-ios-android-con-delphi/
Prólogo - 3
Prólogo
A la persona que hace que mi vida tenga sentido: María Jesús
Hasta finales del siglo pasado la mayor parte del software se desarrollaba 
para ser utilizado casi exclusivamente en ordenadores personales. Estos 
tenían unas características homogéneas en cuanto a hardware se refiere, 
existiendo tres sistemas operativos predominantes: Windows, OS X y 
GNU/Linux. Tanto los dispositivos de entrada, teclado y ratón, como las 
resoluciones de pantalla y la forma de operar sobre el sistema de archivos 
eran aspectos bastante estandarizados, por lo que el desarrollador no tenía 
que preocuparse en exceso por estos detalles.
A lo largo de los últimos diez-quince años han ido ganando terreno dos nue-
vas plataformas de ejecución de aplicaciones: la web y los dispositivos 
móviles. Estos últimos conceptualmente son también ordenadores, pero con
una heterogeneidad de configuraciones hardware y software que el campo 
de la informática no ha conocido desde la explosión de los microordenado-
res, en las décadas de los 70-80.
Es la heterogeneidad hardware y software lo que favorece la competencia y, 
a la postre, ofrece al usuario final una extensa gama de dispositivos entre los 
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
4 - Prólogo
que elegir. Sin embargo, esa ventaja para el usuario final se convierte en tér-
minos generales en un obstáculo para los desarrolladores, al tener que 
diseñar sus aplicaciones para distintos sistemas operativos que siguen guías 
de interacción con el usuario no siempre paralelas.
Delphi se ha convertido en los últimos años en una de las herramientas de 
desarrollo multi-plataforma más potentes, merced a la incorporación de 
nuevos compiladores específicos para cada sistema y de una biblioteca de 
componentes común para todos ellos. A partir de su versión XE5 es posible 
generar aplicaciones para Windows, OS X, iOS y Android usando una misma
base de código. Dicha capacidad se ha mejorado en las versiones posterio-
res: XE6 y especialmente XE7. Esto permite ampliar así el número de 
potenciales usuarios a partir de un único proyecto, reduciendo la carga de 
trabajo del desarrollador.
El objetivo de este libro es ofrecer al lector toda la información que precisa 
para iniciarse en el desarrollo de aplicaciones móviles con Delphi, concreta-
mente para dispositivos que funcionan con los sistemas operativos iOS y 
Android. No se asume ningún conocimiento específico sobre el lenguaje Del-
phi, su entorno de trabajo o las herramientas de desarrollo para dichos 
sistemas, pero sí que el lector es programador y, por tanto, cuenta con el 
nivel adecuado para comprender el texto y conoce los aspectos fundamenta-
les del ciclo de desarrollo de software.
Agradecimientos
Escribir un libro es una tarea exigente, una tarea que requiere tanta dedica-
ción que habitualmente abstrae al autor de todo aquello que le rodea. Por 
ello nunca agradeceré suficientemente el apoyo que siempre me brinda mi 
familia. Gracias María Jesús, David y Alejandro, sois los pilares que me 
mantienen donde estoy.
También quiero transmitir mi agradecimiento a todos aquellos que, de una 
forma u otra, han hecho posible que este libro se haga realidad y llegue hasta
el lector. Gracias a José Luis Castaño, por confiarme este proyecto, y al per-
sonal de Danysoft implicado en el diseño de la cubierta, producción, 
distribución, etc.
Desarrollo de aplicaciones iOS/Android con Delphi | 
Tabla de Contenidos - 5
Tabla de
Contenidos
Prólogo........................................................................................................3
Agradecimientos..............................................................................................................4
Tabla de Contenidos.....................................................................................5
Lista de figuras............................................................................................17
Introducción..............................................................................................25
La historia de Delphi......................................................................................................26
Delphi para plataformas móviles...................................................................................29
Sobre este libro..............................................................................................................29
Sobre el autor.................................................................................................................31
Apartado I:
El ecosistema móvil....................................................................................33
Capítulo 1:
Hardware de dispositivos móviles..............................................................35
Componentes fundamentales........................................................................................37
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
6 - Tabla de Contenidos
Procesadores y unidades gráficas.............................................................................37
SoCs para móviles...............................................................................................39
Núcleos de CPU móvil.........................................................................................41
Procesadores gráficos..........................................................................................42
Memoria...................................................................................................................43
Almacenamiento.......................................................................................................44
Batería.......................................................................................................................46
Componentes de interacción con el usuario..................................................................47Pantalla táctil............................................................................................................48
Superficie de visualización..................................................................................48
Otras capas..........................................................................................................50
Teclado......................................................................................................................51
Micrófono/Altavoz....................................................................................................52
Otros componentes de interacción...........................................................................53
Sensores y otros componentes......................................................................................54
Acelerómetro y giróscopo.........................................................................................54
Magnetómetro (Brújula)..........................................................................................56
Componentes de posicionamiento...........................................................................57
Componentes de comunicación................................................................................57
Miscelánea................................................................................................................59
Conclusiones..................................................................................................................60
A continuación...............................................................................................................61
Capítulo 2:
Plataformas software para móviles.............................................................63
Estructura de la plataforma software de los smartphones...........................................64
Un RTOS de bajo nivel.............................................................................................65
Un sistema operativo de alto nivel...........................................................................66
Historia de los sistemas operativos móviles..................................................................67
Los inicios.................................................................................................................68
Plataformas principales actualmente.......................................................................71
iOS........................................................................................................................71
Android................................................................................................................72
Windows Phone...................................................................................................74
Otros sistemas operativos móviles...........................................................................76
Conclusiones..................................................................................................................78
A continuación...............................................................................................................78
Capítulo 3:
Revisión de soluciones de desarrollo..........................................................79
Las tres principales estrategias de desarrollo...............................................................80
Aplicaciones web móviles..............................................................................................81
Ventajas....................................................................................................................82
Desventajas...............................................................................................................83
Lenguajes y herramientas........................................................................................85
Desarrollo de aplicaciones iOS/Android con Delphi 
Tabla de Contenidos - 7
Lenguajes de diseño............................................................................................85
Lenguajes de programación................................................................................86
Las API y bibiliotecas..........................................................................................87
Herramientas de desarrollo................................................................................88
Aplicaciones móviles híbridas........................................................................................91
Ventajas....................................................................................................................92
Desventajas...............................................................................................................93
Lenguajes y herramientas........................................................................................94
Aplicaciones móviles nativas.........................................................................................96
Ventajas....................................................................................................................96
Desventajas...............................................................................................................97
Lenguajes y herramientas........................................................................................98
¿Dónde encaja Delphi?.................................................................................................101
Conclusiones................................................................................................................103
A continuación.............................................................................................................103
Apartado II:
 Desarrollo móvil con Delphi.....................................................................105
Capítulo 4:
Instalación de Delphi, SDKs y herramientas..............................................107
Instalación de Delphi...................................................................................................108
Ediciones del producto y características................................................................109
Requerimientos del sistema....................................................................................110
Requisitos hardware..........................................................................................110
Requisitos software............................................................................................111
Proceso de instalación.............................................................................................111
Actualización de la instalación de Delphi...............................................................115
Mantenimiento de la instalación.............................................................................117
Configuración de las herramientas de desarrollo para Android.................................118
Gestionar versiones del SDK Android....................................................................118
Administración de dispositivos virtuales Android.................................................122
Configuración de dispositivos físicos......................................................................125
Configuración de las herramientas de desarrollo iOS.................................................129
Instalación de Xcode..............................................................................................130
Configuración de carpetas compartidas.................................................................132
Instalación de PAServer..........................................................................................134
PAServer Manager (Delphi XE7)............................................................................136
Conclusiones................................................................................................................138
A continuación.............................................................................................................138Capítulo 5:
Introducción al entorno de trabajo de Delphi............................................141
La aplicación de ejemplo MyMunchies........................................................................142
Principales componentes del IDE................................................................................143
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
8 - Tabla de Contenidos
Personalizar la distribución del IDE.......................................................................144
IDE Insight..............................................................................................................146
Inicio de un nuevo proyecto.........................................................................................148
Proyectos multi-dispositivo en Delphi XE7............................................................150
Elección de la plantilla para MyMunchies..............................................................151
Fundamentos de diseño de la interfaz de usuario.......................................................153
Elegir entre las vistas del diseñador.......................................................................153
Vistas y estilos en XE7............................................................................................155
Estilo de interfaz en el diseñador......................................................................156
Vista maestra y vistas específicas por plataforma.............................................156
Esquema de trabajo con las vistas de XE7........................................................158
Edición de las propiedades de los componentes....................................................159
Adición de nuevos componentes a la interfaz........................................................163
Eliminación de componentes..................................................................................165
La interfaz de usuario de MyMunchies..................................................................165
Un título para cada página................................................................................166
Configuración de las listas de productos...........................................................169
Inserción de la lista de elementos seleccionados..............................................172
Escribiendo algo de código...........................................................................................173
Código, componentes y eventos..............................................................................173
Gestión de eventos mediante el Inspector de objetos............................................174
Edición de código....................................................................................................176
Código aportado por la plantilla del proyecto........................................................178
Administración de plataformas objetivo......................................................................179
Propiedades y configuración de las plataformas...................................................180
Añadir una nueva plataforma.................................................................................181
Gestión de plataformas en Delphi XE7..................................................................183
Ejecución y depuración del programa.........................................................................184
Herramientas de depuración..................................................................................186
Puntos de parada...............................................................................................187
Estado del proceso.............................................................................................188
Examinando el contenido de variables.............................................................190
Ejecución paso a paso........................................................................................192
Despliegue del proyecto a dispositivos móviles...........................................................193
Despliegue a un dispositivo Android......................................................................194
Despliegue a un dispositivo iOS..............................................................................195
Configuración de la conexión............................................................................196
Cómo cambiar una conexión..................................................................................198
Conclusiones................................................................................................................200
A continuación............................................................................................................200
Capítulo 6:
Plantillas de proyectos móviles.................................................................201
Partiendo de cero.........................................................................................................202
Un formulario con cabecera y pie................................................................................203
Desarrollo de aplicaciones iOS/Android con Delphi 
Tabla de Contenidos - 9
Elementos de navegación.......................................................................................204
Un formulario con varias páginas...............................................................................207
Un formulario maestro/detalle...................................................................................210
Una interfaz optimizada para tabletas...................................................................212
Maestro/Detalle en Delphi XE7..............................................................................214
El componente TMultiView...............................................................................217
Un formulario para aplicaciones 3D............................................................................218
Conclusiones................................................................................................................219
A continuación.............................................................................................................220
Capítulo 7:
Tareas comunes........................................................................................221
Navegación por la interfaz de usuario.........................................................................222
El componente TActionList.........................................................................................223
El editor TActionList..............................................................................................225
Acciones estándar...................................................................................................228
Cómo implementar un sistema de navegación basado en acciones Tab..........229
Dispositivos con botón hardware de vuelta atrás.............................................232
Acciones definidas por el usuario...........................................................................233
Navegación basada en gestos......................................................................................234
Gestos estándar frente a gestos interactivos..........................................................236
El componente TGestureManager.........................................................................236
Expansión del objetivo táctil..................................................................................238
Navegación mediante gestos estándar...................................................................239
Cómo gestionar gestos interactivos........................................................................239
Identificación de los gestos interactivos...........................................................240
Gestos interactivos en la práctica......................................................................241Actualización de contenidos mediante gestos (pull-to-refresh)............................243
Cambios durante la vida de la aplicación....................................................................245
Cambios en la orientación de la pantalla...............................................................246
Configuración del proyecto para una orientación específica de pantalla........246
Cómo reaccionar ante cambios en la orientación de la pantalla......................247
Cambios en el estado de la aplicación....................................................................250
Cómo registrarse para eventos de estado de la aplicación................................251
Eventos del ciclo de vida en aplicaciones móviles............................................252
Cómo gestionar eventos de estado de la aplicación en la práctica...................253
Guardar y recuperar datos...........................................................................................255
Dónde almacenar los datos de la aplicación..........................................................256
Guardar y recuperar textos.....................................................................................257
Tratando con parámetros de configuración...........................................................259
Cargar archivos con gráficos..................................................................................262
Distribuir archivos adicionales en el directorio de datos.................................263
Guardar y recuperar el estado en Delphi XE7.............................................................265
El evento OnSaveState............................................................................................265
Guardar el estado de forma transitoria..................................................................266
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
10 - Tabla de Contenidos
Guardar el estado de forma persistente.................................................................267
El componente TMultiView (XE7)..............................................................................268
TMultiView como contenedor genérico.................................................................268
Modo de visualización ...........................................................................................270
Configuración del panel estático.............................................................................271
Configuración del panel deslizable.........................................................................271
Configuración del panel flotante............................................................................273
Enlace entre el panel maestro y el de detalle.........................................................274
Conclusiones................................................................................................................275
A continuación.............................................................................................................276
Capítulo 8:
Introducción al lenguaje Delphi................................................................277
Sintaxis básica..............................................................................................................278
Módulos de código Delphi......................................................................................279
Estructura del módulo de programa......................................................................280
Estructura de un módulo de código estándar........................................................281
Referencias a módulos...........................................................................................283
Comentarios...........................................................................................................285
Tipos de datos fundamentales.....................................................................................286
Números enteros y de coma flotante......................................................................287
Caracteres y cadenas de caracteres........................................................................288
Otros tipos de datos básicos...................................................................................289
Notación para literales e identificadores...............................................................290
Enumeraciones.......................................................................................................292
Enumeraciones con ámbito..............................................................................294
Subrangos...............................................................................................................295
Vectores y matrices (Arrays)..................................................................................297
Declaración de matrices estáticas.....................................................................298
Matrices con índices no numéricos..................................................................299
Cómo trabajar con matrices dinámicas............................................................300
Registros.................................................................................................................301
Conjuntos...............................................................................................................304
Expresiones.................................................................................................................306
Expresiones aritméticas, relacionales y lógicas.....................................................307
Expresiones con conjuntos....................................................................................308
Expresiones con punteros......................................................................................308
Otros tipos de expresiones.....................................................................................308
Sentencias....................................................................................................................310
Estructuras condicionales......................................................................................310
Estructuras iterativas..............................................................................................312
Procedimientos y funciones....................................................................................313
Parámetros por valor y por referencia...............................................................315
Parámetros con valores por defecto..................................................................316
Parámetros de tipo matriz.................................................................................316
Desarrollo de aplicaciones iOS/Android con Delphi | 
Tabla de Contenidos - 11
Control estructurado de excepciones......................................................................317
Otras sentencias......................................................................................................319
Clases y sus miembros.................................................................................................320
Cómo definir una nueva clase.................................................................................321
Visibilidad de los miembros de una clase..............................................................323
Construcción de objetos.........................................................................................324
La clase TCollectible...............................................................................................325
Declaración de atributos...................................................................................326
Declaración de métodos privados.....................................................................328
Declaración del constructor..............................................................................329Declaración de propiedades públicas...............................................................329
Implementación de métodos.............................................................................331
La clase TComputer................................................................................................334
Miembros de clase y el objeto self...............................................................................337
La clase TCollection................................................................................................338
Métodos anónimos......................................................................................................342
Escenario de uso de un método anónimo..............................................................342
Definición de tipo de un método anónimo............................................................343
Cómo pasar métodos anónimos como parámetros...............................................344
Tipos genéricos............................................................................................................345
Cómo definir un tipo genérico................................................................................346
Instanciación y uso de tipos genéricos...................................................................348
Ayudas a la escritura de código...................................................................................349
Plantillas de código................................................................................................349
Dar formato al código.............................................................................................352
Navegar por el código.............................................................................................353
Refactorización del código......................................................................................353
Gestión de versiones del código.............................................................................354
Conclusión....................................................................................................................355
A continuación.............................................................................................................355
Capítulo 9:
La biblioteca de componentes FMX...........................................................357
¿Por qué FMX?............................................................................................................358
FMX y el hardware gráfico.....................................................................................359
Estilos de interfaz de usuario en FMX...................................................................360
Aspectos comunes a los controles FMX......................................................................361
Posicionamiento de los controles...........................................................................362
Tamaño y alineación de los controles....................................................................362
Márgenes y relleno.................................................................................................364
Ejemplo de diseño de una interfaz de usuario.......................................................364
Todos los controles FMX son contenedores..........................................................366
Componentes anidados..........................................................................................367
Coordenadas de los hijos y límites de los padres (área de recorte)..................370
Propiedades asociadas a la apariencia del control.................................................371
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
12 - Tabla de Contenidos
Estilos visuales.............................................................................................................372
Estilos predefinidos y propiedades tint..................................................................373
Cómo se construye un estilo FMX..........................................................................375
Archivos con estilos visuales..................................................................................378
Carga de archivos de estilo visual en la fase de diseño.....................................379
El diseñador de estilos visuales.........................................................................379
Cómo cambiar el estilo visual durante la ejecución...............................................381
Conclusión...................................................................................................................387
A continuación.............................................................................................................389
Capítulo 10:
Animaciones, transformaciones y efectos visuales....................................391
Animaciones................................................................................................................393
Categorías de animación........................................................................................393
Definición de una animación.................................................................................394
Control del proceso de animación..........................................................................398
Rotación y escalado de controles................................................................................400
Animaciones y transformaciones en la práctica..........................................................401
Composición de la interfaz de usuario...................................................................401
Configuración de la animación de las agujas del reloj...........................................404
Configuración de la animación del botón..............................................................405
Modificación de la escala de la interfaz de usuario...............................................407
Rotación de la interfaz de usuario al completo.....................................................408
Efectos visuales y filtros...............................................................................................410
La clase TEffect y sus descendientes......................................................................410
Cómo configurar un efecto visual...........................................................................412
Efectos visuales en la práctica................................................................................413
Conclusión....................................................................................................................415
A continuación.............................................................................................................416
Capítulo 11:
Introducción al diseño de interfaces de usuario 3D...................................417
Cómo se estructura una interfaz 3D............................................................................419
Objetos tridimensionales.............................................................................................421
Cómo configurar un objeto 3D...............................................................................421
Cómo definir nuevos objetos tridimensionales......................................................425
Definición de un objeto mediante una malla de triángulos.............................426
Cargar mallas de triángulos predefinidas.........................................................428
Materiales....................................................................................................................429
Luces............................................................................................................................432
Cámaras.......................................................................................................................435
Uso de cámaras en la práctica................................................................................436Objetos 2D en un mundo 3D.......................................................................................438
Conclusión...................................................................................................................440
A continuación.............................................................................................................440
Desarrollo de aplicaciones iOS/Android con Delphi | 
Tabla de Contenidos - 13
Apartado III:
Técnicas de desarrollo móvil.....................................................................441
Capítulo 12:
Sensores relacionados con el movimiento................................................443
Componentes FMX de acceso a sensores móviles......................................................445
Sensores de movimiento..............................................................................................446
Tipos de sensor de movimiento y clases asociadas................................................447
Selección del sensor a leer......................................................................................448
Estado del sensor...................................................................................................450
Lectura de datos del sensor....................................................................................451
Propiedades con datos de movimiento.............................................................452
Proceso de lectura de datos...............................................................................453
Sensores de orientación...............................................................................................454
Tipos de sensores de orientación y propiedades asociadas...................................454
Configuración y obtención de datos del sensor.....................................................456
Uso de sensores de movimiento en la práctica...........................................................456
Diseño de la interfaz de usuario.............................................................................456
Obtención de la lista de sensores...........................................................................460
Selección del sensor a utilizar................................................................................463
Activación del proceso de lectura...........................................................................463
Lectura de datos.....................................................................................................464
Compilación y ejecución.........................................................................................468
Conclusión....................................................................................................................471
A continuación.............................................................................................................472
Capítulo 13:
Información de geolocalización................................................................473
El componente TLocationSensor................................................................................474
Disponibilidad del sensor de localización..............................................................475
Configuración del sensor........................................................................................477
Lectura de datos de localización............................................................................478
Obtención de otros datos del GPS..........................................................................479
Configuración de regiones (iOS)............................................................................479
Codificación y descodificación de localizaciones.........................................................481
Inicialización del objeto TGeocoder.......................................................................481
Obtener las coordenadas de una dirección............................................................482
Obtener la dirección de unas coordenadas............................................................483
Visualización de mapas...............................................................................................484
El componente TWebBrowser...............................................................................484
Cómo componer una URL de acceso a Google Maps y Bing Maps........................485
Información de localización en la práctica..................................................................486
Diseño de la interfaz de usuario.............................................................................486
Declaración de miembros adicionales...................................................................488
Activación y desactivación del sensor....................................................................489
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
14 - Tabla de Contenidos
Cambios en la ubicación.........................................................................................489
Información descriptiva de ubicación....................................................................492
Conclusión...................................................................................................................495
A continuación.............................................................................................................495
Capítulo 14:
Acceso a las cámaras integradas...............................................................497
Componentes para uso de medios audiovisuales........................................................498
Obtención de imágenes de la cámara..........................................................................499
Detección de la cámara y sus funciones.................................................................500
Selección de la cámara a usar.................................................................................501
Configuración de funcionamiento..........................................................................502
Captura de imágenes..............................................................................................503
TCameraComponent en la práctica........................................................................504
Diseño de la interfaz de usuario........................................................................504
Inicialización de la cámara...............................................................................508
Cambio de la cámara activa..............................................................................509
Cambios en la configuración.............................................................................509
Visualización de las imágenes capturadas.........................................................511
Guardar las imágenes en archivos..........................................................................512
Acciones estándar y la cámara.....................................................................................514
Obtención de una imagen desde la cámara............................................................515
Obtención de una imagen desde la biblioteca de imágenes...................................515
Opciones para compartir información...................................................................516
Uso de acciones en la práctica................................................................................516
Captura de secuencias de audio y vídeo......................................................................520
Reproducción de secuencias de audio y vídeo............................................................522
Conclusión...................................................................................................................523
A continuación.............................................................................................................523
Capítulo 15:
Enlaceentre aplicaciones móviles y de escritorio......................................525
Introducción a la técnica de app tethering..................................................................526
Cómo conectar las aplicaciones...................................................................................528
Conexión automática..............................................................................................528
Conexión manual....................................................................................................529
Descubrimiento de aplicaciones.......................................................................529
Emparejamiento manual..................................................................................530
Descubrimiento de perfiles de aplicación.........................................................531
Descubrimiento y emparejamiento en la práctica..................................................531
Diseño de la aplicación para los encargados.....................................................532
Diseño de la aplicación para los clientes...........................................................535
Comprobación de conectividad.........................................................................538
Envío y recepción de datos..........................................................................................539
Recursos compartidos............................................................................................540
Desarrollo de aplicaciones iOS/Android con Delphi | 
Tabla de Contenidos - 15
Definición del recurso compartido...................................................................540
Establecer el contenido del recurso...................................................................541
Acceso a un recurso compartido.......................................................................542
Suscripción a cambios en un recurso compartido............................................544
Recursos temporales..............................................................................................546
Publicar y demandar acciones.....................................................................................547
Definición de acciones remotas..............................................................................548
Invocación de una acción remota...........................................................................549
App tethering en Delphi XE7.......................................................................................552
Descubrir aplicaciones fuera de la subred..............................................................552
Conexiones por Bluetooth......................................................................................553
Servicios de comunicación Bluetooth..........................................................................554
Bluetooth classic y Bluetooth LE............................................................................555
Esquema de funcionamiento..................................................................................556
Configuración de permisos................................................................................556
El gestor de comunicaciones Bluetooth............................................................557
Preparación de una interfaz de usuario básica.................................................558
Hacer visible la aplicación para otros dispositivos...........................................559
Búsqueda de otros dispositivos.........................................................................561
Gestionar el emparejamiento............................................................................562
Conexión y transferencia de datos....................................................................563
El componente TBluetoothLE................................................................................564
Conclusión...................................................................................................................565
A continuación.............................................................................................................565
Capítulo 16:
Notificaciones y publicidad.......................................................................567
Uso de notificaciones...................................................................................................568
Definición de una notificación...............................................................................568
Notificaciones inmediatas......................................................................................569
Notificaciones programadas...................................................................................571
Cancelación de notificaciones.................................................................................571
Inclusión de publicidad................................................................................................573
Publicidad y aplicaciones para móviles..................................................................574
El programa AdMob de Google..............................................................................574
Obtención de un Ad ID para una aplicación.....................................................576
El programa iAd de Apple......................................................................................578
Cómo agregar banners publicitarios a nuestras aplicaciones...............................580
Configuración específica para Android.............................................................581
Cambiar de AdMob API a Google Mobile Ads API...........................................583
Configuración específica para iOS....................................................................584
Conclusión...................................................................................................................585
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
16 - Tabla de Contenidos
Indice.......................................................................................................587
Desarrollo de aplicaciones iOS/Android con Delphi | 
Lista de figuras - 17
Lista de figuras
Figura 1.1: Circuitos integrados en la placa de un smartphone..........................................37
Figura 1.2: Componentes integrados en un SoC.................................................................39
Figura 1.3: Tamaño relativo de un SoC, mostrado tras una tarjeta SIM............................41
Figura 1.4: Muchos smartphones y tabletas cuentan con una ranura microSD................45
Figura 1.5: Habitualmente la batería es el componente más grande en un smartphone.. 46
Figura 1.6: Las tres capas básicas de una pantalla táctil típica..........................................48
Figura 1.7: Algunos smartphones incluyen un pequeño teclado........................................51
Figura 1.8: Es posible mover el dispositivo a lo largo de los ejes del espacio 
tridimensional, así como ser rotado alrededor de ellos.....................................................55
Figura 2.1: Dispositivo móvil con Palm OS........................................................................68
Figura 2.2: Un Psion Series 7 ejecutando Symbian............................................................69
Figura 2.3: El Compaq iPAQ Pocket PC.............................................................................70
Figura 2.4: Interfaz de usuario de iOS................................................................................72
Figura 2.5: Interfaz de usuario de Android 4.4..................................................................74
Figura 2.6: Interfaz de usuario de Windows Phone 8........................................................75
Figura 3.1: Sitio web con la última especificación de HTML5...........................................86
Figura 3.2: ThemeRoller, la herramientade diseño de temas para jQuery Mobile...........89
Figura 3.3: Herramientas de depuración integradas en el navegador web Chrome.........90
Figura 3.4: Representación esquemática de la estructura de una aplicación móvil híbrida.
.............................................................................................................................................91
Figura 3.5: HTML5 Builder incluye funciones para el desarrollo de proyectos con 
PhoneGap............................................................................................................................95
Figura 3.6: Xcode puede descargarse gratuitamente desde el sitio web para 
programadores de Apple.....................................................................................................99
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
18 - Lista de figuras
Figura 3.7: El complemento NBAndroid para NetBeans añade funciones para el 
desarrollo Android a este IDE..........................................................................................100
Figura 4.1: Debemos seleccionar las características a instalar en nuestro sistema..........112
Figura 4.2: También deben instalarse el SDK y NDK de Android....................................113
Figura 4.3: Ventana informativa durante el proceso de instalación.................................114
Figura 4.4: Aviso relativo a la disponibilidad del Update 2 para Delphi XE5..................115
Figura 4.5: Podemos encontrar las actualizaciones instaladas en la ventana About del 
producto.............................................................................................................................116
Figura 4.6: Opciones de mantenimiento ofrecidas por la utilidad de instalación............117
Figura 4.7: Mediante el SDK Manager podemos actualizar todos los componentes del 
SDK de Android.................................................................................................................119
Figura 4.8: Los SDKs configurados actualmente podemos encontrarlos en la página 
→Environment Options SDK Manager, en la ventana Options a la que da paso la opción 
→Tools Options de Delphi..................................................................................................120
Figura 4.9: Una vez se ha seleccionado Android como plataforma, es posible añadir una 
nueva versión del SDK.......................................................................................................121
Figura 4.10: Debemos introducir las rutas correspondientes al SDK y NDK de Android.
...........................................................................................................................................122
Figura 4.11: Lista de dispositivos virtuales Android configurados...................................123
Figura 4.12: Configuración del dispositivo virtual............................................................124
Figura 4.13: Lista de definiciones desde la que podemos crear dispositivos virtuales.. . .125
Figura 4.14: Debemos activar la opción Depuración USB................................................126
Figura 4.15: Buscamos la utilidad Administrador de dispositivos de Windows..............127
Figura 4.16: Opción que debemos usar para actualizar el controlador............................128
Figura 4.17: El controlador ya está en nuestro sistema....................................................129
Figura 4.18: Instalamos el software Xcode desde la App Store........................................131
Figura 4.19: Las Command Line Tools se instalan desde la ventana Preferences de Xcode.
...........................................................................................................................................132
Figura 4.20: La compartición de archivos entre OS X y Windows es indispensable.......133
Figura 4.21: PAServer ha de instalarse en el Mac que se usará para probar y depurar.. .134
Figura 4.22: RAD PAServer ha de estar ejecutándose antes de desplegar aplicaciones 
desde Delphi......................................................................................................................135
Figura 4.23: Localizamos la aplicación PAServer Manager con el Finder.......................136
Figura 4.24: Interfaz de la aplicación PAServer Manager................................................137
Figura 5.1: Principales elementos en el IDE de Delphi.....................................................143
Figura 5.2: Controles de personalización en una ventana del IDE de Delphi..................145
Figura 5.3: IDE Insight buscando elementos que comiencen por “tabb”.........................147
Figura 5.4: Hay disponibles múltiples plantillas para generar proyectos móviles..........148
Figura 5.5: Búsqueda de la opción FireMonkey Mobile Application con IDE Insight.....149
Figura 5.6: Todas las plantillas pueden encontrarse en la Paleta de Herramientas........149
Figura 5.7: Proyecto multi-dispositivo en Delphi XE7.....................................................150
Figura 5.8: El proyecto contiene dos módulos relacionados............................................151
Figura 5.9: Contenido inicial del módulo .pas agregado al nuevo proyecto.....................152
Figura 5.10: El diseñador puede cambiar de máscara, así como de orientación.............154
Figura 5.11: La máscara puede desactivarse, dejando solamente la superficie en la que se 
Desarrollo de aplicaciones iOS/Android con Delphi | 
Lista de figuras - 19
mostraría la interfaz de usuario........................................................................................155
Figura 5.12: Selección del estilo durante la fase de diseño...............................................156
Figura 5.13: Selección de la vista con la que se quiere trabajar........................................157
Figura 5.14: Importación de los módulos de configuración específica para cada 
dispositivo..........................................................................................................................159
Figura 5.15: Modificando el texto de un TabItem en el Inspector de objetos..................160
Figura 5.16: Edición de la lista de iconos asociadas a un TabItem...................................161
Figura 5.17: La interfaz tras aplicar los cambios a los títulos e iconos.............................162
Figura 5.18: Búsqueda de un componente en la Paleta de herramientas.........................164
Figura 5.19: Menú contextual asociado a un componente en el diseñador......................166
Figura 5.20: Cambiamos la alineación del TLabel en su contenedor...............................167
Figura 5.21: Estilos y atributos de texto............................................................................168
Figura 5.22: Selección de la apariencia de los elementos.................................................169
Figura 5.23: Podemos elegir entre distintos tipos de campos..........................................170
Figura 5.24: El diseñador de LiveBindings........................................................................171
Figura 5.25: Edición del título de los botones mostrados en el margen derecho de la lista.
...........................................................................................................................................172
Figura 5.26: Lista de eventos del componente TListView................................................175
Figura 5.27: Code Insight abre una lista de objetos disponibles en el contexto actual.. . .177
Figura 5.28: Seleccionando un método podemos ver su lista de argumentos y tipo de 
retorno...............................................................................................................................178
Figura 5.29: Cada plataforma puede tener varios objetivos y configuraciones de 
compilación.......................................................................................................................180
Figura 5.30: Añadimos unanueva plataforma al proyecto...............................................181
Figura 5.31: Podemos inspeccionar el código de inicialización del proyecto...................183
Figura 5.32: Selección de la plataforma objetivo en Delphi XE7.....................................184
Figura 5.33: Lista de elementos en la primera página de la interfaz de usuario..............185
Figura 5.34: Se han añadido algunos elementos a la lista MyMunchies..........................186
Figura 5.35: Establecimiento de un punto de parada en la sentencia que añade un 
elemento a la lista..............................................................................................................188
Figura 5.36: La ventana Call Stack muestra las funciones ejecutadas hasta alcanzar el 
punto actual.......................................................................................................................189
Figura 5.37: Inspección del contenido de una variable local...........................................190
Figura 5.38: Moviendo el puntero del ratón sobre un identificador obtenemos su valor 
actual..................................................................................................................................191
Figura 5.39: Añadimos un nuevo elemento a la ventana Watch List...............................192
Figura 5.40: El proyecto ejecutándose en un dispositivo físico Android.........................195
Figura 5.41: La utilidad PAServer debe estar ejecutándose en el ordenador con OS X...196
Figura 5.42: Configuración y comprobación de la conexión entre Delphi y el ordenador 
con OS X............................................................................................................................197
Figura 5.43: El proyecto ejecutándose en el emulador de iOS.........................................198
Figura 5.44: Es posible tener más de una configuración de conexión.............................199
Figura 6.1: Estructura de la plantilla de aplicación Header/Footer with navigation......205
Figura 6.2: Editando la apariencia de un componente TSpeedButton............................206
Figura 6.3: Establecemos el estilo y posición de los botones en un componente 
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
20 - Lista de figuras
TabControl........................................................................................................................208
Figura 6.4: Cuadro de diálogo para editar las páginas del TTabControl.........................209
Figura 6.5: Estructura e interfaz de usuario de la plantilla de aplicación Phone Master-
Detail.................................................................................................................................210
Figura 6.6: Enlace de datos entre el PrototypeBindSource y los controles de la interfaz de 
usuario...............................................................................................................................212
Figura 6.7: Interfaz de usuario del formulario maestro/detalle para tabletas.................213
Figura 6.8: Plantillas para aplicaciones multi-dispositivo en Delphi XE7.......................214
Figura 6.9: Distribución inicial de la interfaz de la aplicación maestro-detalle...............215
Figura 6.10: La columna con el TListView se oculta en pantallas pequeñas....................216
Figura 6.11: La misma interfaz de usuario en una tableta en modo apaisado..................217
Figura 6.12: El TMultiView contiene al TListView...........................................................218
Figura 6.13: Componentes 3D en la Paleta de herramientas...........................................220
Figura 7.1: Lista desplegable de la propiedad Action.......................................................224
Figura 7.2: Categorías de acciones ofrecidas por la opción New Standard Action..........225
Figura 7.3: El editor TActionList (derecha) y las propiedades de la acción seleccionada 
(izquierda).........................................................................................................................226
Figura 7.4: Lista de acciones estándar..............................................................................227
Figura 7.5: Estructura de la interfaz de usuario-.............................................................230
Figura 7.6: Los tres TSpeedButton añadidos al TToolBar ejecutarán las acciones..........231
Figura 7.7: Miembros de la propiedad Touch...................................................................235
Figura 7.8: Cada gesto estará enlazado a una acción.......................................................237
Figura 7.9: Subpropiedades de la propiedad TouchTargetExpansion.............................238
Figura 7.10: Lista de gestos interactivos..........................................................................240
Figura 7.11: Podemos hacer zoom para cambiar el tamaño de letra de la etiqueta de texto.
...........................................................................................................................................243
Figura 7.12: Establecemos las preferencias de orientación para el proyecto actual........247
Figura 7.13: El TLabel rota cuando cambia la orientación de la pantalla........................250
Figura 7.14: El control en orientación apaisada mostrando los eventos de estado de la 
aplicación..........................................................................................................................255
Figura 7.15: El contenido del TMemo es guardado y recuperado....................................259
Figura 7.16: La aplicación almacena su estado en un archivo de configuración.............262
Figura 7.17: Hay que especificar la ruta para el despliegue de los archivos adicionales. 263
Figura 7.18: Configuración por defecto del TMultiView al agregarlo a un formulario....269
Figura 7.19: Subpropiedades de la propiedad DrawerOptions........................................272
Figura 7.20: Subpropiedades de la propiedad PopoverOptions......................................273
Figura 8.1: El proyecto de ejemplo Forms utiliza dos formularios distintos...................283
Figura 8.2: Delphi es capaz de hacer un seguimiento de todos los comentarios TODO. 286
Figura 8.3: Cada elemento de un tipo enumerado tiene asociado un valor numérico....293
Figura 8.4: El valor asignado está fuera de los límites del rango.....................................296
Figura 8.5: La opción Range checking está deshabilitada por defecto............................297
Figura 8.6: Code Insight muestra los miembros con que cuenta el registro...................302
Figura 8.7: Añadimos un nuevo módulo al proyecto actual............................................326
Figura 8.8: Plantilla de código insertada automáticamente............................................349
Figura 8.9: Ventana de plantillas.....................................................................................350
Desarrollo de aplicaciones iOS/Android con Delphi | 
Lista de figuras - 21
Figura 8.10: Selección del perfil para dar formato al código...........................................352
Figura 8.11: Las distintas versiones pueden compararse y restaurarse...........................354
Figura 9.1: Ejemplo de uso de las propiedades de alineación, márgenes y relleno.........366
Figura 9.2: Agregamos una nueva imagen al componente TImage.................................368
Figura 9.3: El TLabel es hijo del TImage que es, a su vez, hijo del TButton....................369
Figura 9.4: La posición del TLabel es relativa a la posición del recuadro de texto..........370
Figura 9.5: Ciertas propiedades pueden ser animadas.....................................................372
Figura 9.6: Lista de estilos visuales para un control TButton..........................................374
Figura 9.7: Dos botones con propiedades de tinte...........................................................375
Figura 9.8: Estructura delestilo visual checkcellstyle.....................................................376
Figura 9.9: Un bitmap que contiene imágenes asociadas a elementos de interfaz de 
usuario...............................................................................................................................377
Figura 9.10: Archivos de estilo visual para cada plataforma............................................378
Figura 9.11: Edición de las propiedades de un elemento de un estilo visual...................380
Figura 9.12: Archivos con estilos visuales agregados como recursos del proyecto.........382
Figura 9.13: La lista desplegable nos permitirá elegir uno de los estilos visuales 
disponibles........................................................................................................................384
Figura 9.14: Estructura de la interfaz de usuario.............................................................385
Figura 9.15: Apariencia de la interfaz de usuario tras aplicar cada estilo visual.............388
Figura 10.1: Propiedades que contemplan el uso de animaciones y componentes que las 
generan (derecha).............................................................................................................392
Figura 10.2: La lista desplegable ofrece los tipos de animación que haya disponibles para 
ese tipo de propiedad........................................................................................................395
Figura 10.3: Lista de propiedades que pueden ser animadas..........................................396
Figura 10.4: Lista de disparadores de animación.............................................................399
Figura 10.5: Estructura de la interfaz de usuario a componer.........................................402
Figura 10.6: Propiedades del segundo componente TFloatAnimation...........................406
Figura 10.7: Apariencia de la interfaz de usuario con las animaciones en funcionamiento 
y tras aplicar algunas transformaciones...........................................................................409
Figura 10.8: Página de la Paleta de herramientas conteniendo los componentes que 
generan efectos visuales....................................................................................................411
Figura 10.9: La animación estará asociada a la propiedad BlockCount...........................414
Figura 10.10: La interfaz de usuario con el efecto de pixelado.........................................415
Figura 11.1: Lista de propiedades de un formulario FMX 3D...........................................419
Figura 11.2: Controles que representan objetos tridimensionales en la Paleta de 
herramientas.....................................................................................................................422
Figura 11.3: Los controladores conectados a cada cara nos permiten rotar el objeto.....423
Figura 11.4: Un texto tridimensional generado mediante un proceso de extrusión........424
Figura 11.5: Es posible definir cualquier objeto tridimensional asignando los valores 
adecuados a las propiedades Points y TriangleIndices....................................................427
Figura 11.6: Una de las mallas de ejemplo distribuidas con el producto.........................428
Figura 11.7: Es posible cargar cualquier mapa de bits para usarlo como textura............430
Figura 11.8: Un componente TSphere con un material que combina textura e iluminación
aplicada a su superficie.....................................................................................................431
Figura 11.9: Dos esferas idénticas con el mismo material y tres luces distintas..............434
Desarrollo de aplicaciones iOS/Android con Delphi por Francisco Charte
22 - Lista de figuras
Figura 11.10: El segundo componente TCamera estará encima de la escena..................436
Figura 11.11: El TLayer3D ajustado a la parte inferior contiene tres TCheckBox............439
Figura 12.1: Componentes de acceso a los sensores.........................................................445
Figura 12.2: Propiedades y eventos del componente TMotionSensor.............................446
Figura 12.3: Configuración de permisos para la aplicación.............................................450
Figura 12.4: Jerarquía de componentes en la interfaz de usuario del proyecto...............457
Figura 12.5: Aspecto de la interfaz de usuario en el diseñador de formularios...............459
Figura 12.6: Aspecto del programa al iniciarse................................................................469
Figura 12.7: Selección de un sensor de movimiento........................................................470
Figura 12.8: El gráfico de la parte inferior reacciona a la inclinación del móvil..............471
Figura 13.1: Configuración del servicio de ubicación en Android....................................476
Figura 13.2: Debemos activar la solicitud del permiso de acceso a Internet...................485
Figura 13.3: Estructura de la interfaz de usuario a diseñar.............................................487
Figura 13.4: Creamos los elementos que contendrá la lista.............................................488
Figura 13.5: Coordenadas devueltas por el sensor de localización..................................490
Figura 13.6: El mapa actualiza automáti-camente su posición........................................492
Figura 13.7: Información descriptiva de la ubicación actual...........................................494
Figura 14.1: Componentes de reproducción de medios y acceso a la cámara..................499
Figura 14.2: Selección de la cámara a usar.......................................................................501
Figura 14.3: Elementos de visualización de la imagen en la interfaz de usuario.............504
Figura 14.4: Controles para configurar la captura de imágenes......................................506
Figura 14.5: Selección del modo de enfoque....................................................................507
Figura 14.6: Control del flash y la lámpara.......................................................................507
Figura 14.7: Controles para ajustar la intensidad del efecto visual sobre las imágenes.. 507
Figura 14.8: La aplicación mostrando las imágenes obtenidas de las dos cámaras.........512
Figura 14.9: Solicitamos permiso para poder guardar datos en almacenamiento externo.
...........................................................................................................................................513
Figura 14.10: Acciones estándar específicas para dispositivos móviles...........................514
Figura 14.11: Elementos que componen la interfaz de usuario.........................................517
Figura 14.12: Selección de una imagen de la biblioteca y de un destinatario para recibirla.
...........................................................................................................................................519
Figura 15.1: Componentes de tethering en la paleta.........................................................527
Figura 15.2: Iniciamos un proyecto de aplicación de escritorio.......................................533
Figura 15.3: Interfaz de la aplicación para los encargados...............................................533
Figura 15.4: Interfaz de la aplicación para los clientes.....................................................535
Figura 15.5: La lista desplegable del cliente permite elegir entre las especialidades 
ofrecidas por la aplicación de escritorio...........................................................................539
Figura 15.6: Definimos un recurso compartido en la aplicación de escritorio.................541
Figura 15.7: Los cambios en la aplicación de escritorio se notifican automáticamente a la 
aplicación móvil................................................................................................................546
Figura 15.8: Definimos un TAction simple llamado SendID...........................................548

Continuar navegando