Descarga la aplicación para disfrutar aún más
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
Compartir