Firemonkey Mobile Application (XE4 / iOS)

viernes, 24 de mayo de 2013 11 comentarios
Share Button

Continuando con la última entrada dónde vimos cómo configurar el entorno de desarrollo para generar aplicaciones móviles para iOS, vamos a realizar una primera aplicación paso a paso para ver algunas funcionalidades básicas.

En este caso testearemos el componente TWebBrowser, que hasta esta versión sólo estaba disponible para la plataforma Windows, y que ahora ya se puede utilizar en iOS.

Para empezar seleccionamos el tipo de proyecto “Firemonkey Mobile Application – Delphi”. Una vez en el asistente podemos escoger (y probar) entre los diferentes tipos de aplicaciones prediseñadas, que ya nos crearán un esqueleto de una “aplicación tipo” con unos determinados componentes, según lo que escojamos.

Imagen504

Continuar leyendo…

Categories: Delphi, iOS, XE4 Tags: , , ,

XE4 Iberian Tour (Madrid, Lisboa y Barcelona)

miércoles, 8 de mayo de 2013 Sin comentarios
Share Button

XE4 Iberian TourComo ya es habitual, desde Danysoft (distribuidor oficial de Embarcadero en la península ibérica) se organiza la presentación del nuevo RAD Studio XE4.

«El nuevo RAD Studio XE4 sigue renovándose para proporcionar a los desarrolladores una herramienta que responda a los nuevos retos en la creación de aplicaciones, al tiempo que permite mantener y evolucionar proyectos anteriores.

Pero sin duda, la utilización de la plataforma FireMonkey para crear aplicaciones con una sola base de código, que se ejecutan natívamente en distintos dispositivos y plataformas es una de las más importantes.

Además revisaremos las importantes novedades en bases de datos, entre las cuales FireDAC es la principal.»

Si queréis más información del evento visitad la página de presentación.

Categories: Danysoft, XE4 Tags: ,

Configuración del entorno de trabajo iOS/OSX (Delphi XE4)

lunes, 29 de abril de 2013 22 comentarios
Share Button

Las últimas versiones de Delphi incluyen, tal y como podéis leer en las características del producto, soporte para dispositivos iOS y OSX (MAC). Hace tiempo que deseaba probar estas características, así que aprovechando que estos día he tenido acceso a una máquina Apple, he probado a “poner en marcha” el entorno de desarrollo y a hacerlo funcionar.

En general el proceso ha sido más sencillo de lo que pensaba (aunque tal vez también con más pasos de los que esperaba…). Hay que realizar varias operaciones, pero en sí, ninguno complicada.

Todavía no dispongo de un dispositivo iOS, así que me he tenido que quedar (conformar) en el punto de ejecutar la aplicación en OSX (en la versión 10.8) utilizando los simuladores correspondientes a estos dispositivos.

Según la documentación necesitamos tener instalada una versión OS X 10.7 Lion o 10.8 Mountain Lion en nuestro MAC. A partir de ahí, para dispositivos móviles, es necesario contar con una versión iOS 5.1 o superior.

Continuar leyendo…

Categories: Delphi, iOS, OSX, XE4 Tags: , ,

Embarcadero Delphi XE4

miércoles, 24 de abril de 2013 Sin comentarios
Share Button

A estas alturas seguro que ya estáis al corriente de que ya está disponible la nueva versión de Delphi. XE4. Aquí podéis acceder a la página oficial de Rad Studio XE4, donde se encuentra la información oficial de embarcadero de esta nueva versión.

Esta entrada pretende ser una recopilación de datos y enlaces sobre esta nueva presentación.

 

Shopsite_Header2_734x189_EN

Personalmente creo que es una versión como “de transición”, pero eso no impide que traiga bastantes mejoras y algunos nuevos detalles muy interesantes. No voy a entrar en la discusión de si es mejor sacar versiones más a menudo y con periodos “más dilatados”, y sé que cada una de estas opciones tiene defensores y detractores. Personalmente prefiero la primera, como ya he dicho otras veces, ya que la última desición (la de adquirir una versión o no) siempre estará en nuestra mano.

Continuar leyendo…

Una semana más… (18/04/2012)

miércoles, 17 de abril de 2013 5 comentarios
Share Button

Retomando la costumbre de analizar cosas relacionadas con este blog que van pasando durante la semana (o la quincena o el mes,…) vuelvo con una entrada más.

PortadaLibroEsta semana me ha llegado el anuncio de un nuevo libro publicado por Danysoft y de la mano de Francisco Charte. Gran noticia, ya no sólo por el libro en sí, sino por lo que significa. Desde hace un tiempo sólo hemos podido disfrutar de buenos libros sobre Delphi en Inglés. De un tiempo acá esa tendencia está cambiando de la mano de Danysoft. Primero con la publicación del libro sobre XE2, “La guía de Delphi” también de Francisco Charte y ahora con la publicación de “La guía de HTML5 Builder”.

47_web20_320x240_gmlib_thumb1Esta semana también se ha publicado la primera versión final (la v.1.0.0) de la librería de componentes GMlib de Cadetill. Para conocer más detalles de esta librería podéis leer la descripción completa (Español / Inglés) en la página de los componentes. Allí podéis ver la descripción, funcionalidades, clases y todo lo necesario para trabajar con ellos. Personalmente he trabajado con ellos y además de que funcionan muy bien, son un gran trabajo de diseño. Muy recomendables y superiores a algunos paquetes comerciales con un objetico similar.

Otra librería que últimamente ha sufrido “cambios” en su estado ha sido GH Freebrary de Alberto González. Renovada y que Al ha publicado con licencia Open Source. En esta publicación en los foros del club delphi, podéis ver la introducción de Alberto e información sobre la librería. En relación con esto, en los propios foros del clubdelphi se ha creado un nuevo espacio dedicado a esta librería, donde poder publicar ejemplos, dudas, mejoras,…

Siempre es bueno ver cómo nacen nuevos espacios de difusión para Delphi. Cuanta más información exista y cuantas más personas se decidan a publicarla mejor para los que trabajamos en Delphi. Y sobre todo, si además es en castellano. Esta semana he llegado a este blog “Aprendiendo Firemonkey”, de José Luis Rocha. Relativamente “joven”, pero espero que siga adelante.

Por último y para cerrar esta entrada, ayer mismo hemos empezado a escuchar campanas sobre la salida de la nueva versión de Delphi (XE4). Andreano Lanusse habla en su blog en que en apenas unos días saldrá esta nueva versión. Las mejoras sobre el compilador para iOS y FireDAC (que promete mucho) parece que serán las novedades más importantes de esta nueva versión.

NOTA: Al poco de cerrar y publicar la entrada, me ha llegado el pedido que tenía hecho. Ya tengo mi copia.  ;-)

HTML5 Builder

Un saludo y hasta la próxima.

Categories: Danysoft, Offtopic, Resumen Tags:

Juega con esta o cualquier otra web en 3D (Google Labs)

martes, 16 de abril de 2013 Sin comentarios
Share Button

Me encantan estas «cosas» que hacen la gente de Google. Tiene pinta de que se lo pasan bomba…  ;-)

[youtube BPMQb3DgQZ0 La web en Chrome Maze]

Enlace: http://www.chrome.com/maze/

Un saludo.

 

Categories: Otros Tags: ,

Persistencia de una estructura de clases.

viernes, 8 de marzo de 2013 9 comentarios
Share Button

core_data_image_1Esta entrada nace de una necesidad, la que he intentado explicar en el título, pero que tal vez, por la falta de espacio ha quedado «parca» y poco clara. Se trata de una estructura de clases almacenada en memoria y que utilizo en una de mis aplicaciones. Llegado a este punto tengo la necesidad de «respaldar» esta estructura  en disco, para posteriormente, desde este mismo programa o desde otro, poder recuperarla. Lo que comúnmente podemos llamar como un backup/restore.

Se trata de una estructura jerárquica de clases, en la que unas incluyen a otras y en la que además podemos encontrar listas de elementos. En una clase podemos encontrar propiedades de tipos simples (string, cadena), propiedades con objetos de otras clases y listas que almacenan objetos de otras clases.

Continuar leyendo…

Categories: Delphi, OOP, RTTI Tags: , ,

Feliz Cumpleaños Delphi!

jueves, 14 de febrero de 2013 5 comentarios
Share Button

Delphi acaba de cumplir la mayoría de edad. ¡¡Enhorabuena!!

Collage_Delphi2

Categories: Offtopic Tags: , ,

Felices Fiestas!

viernes, 21 de diciembre de 2012 2 comentarios
Share Button

Aprovecho la felicitación que hemos realizado las personas que formamos el Proyecto de DelpHispano, para desearos a todos los que visitáis este blog, unas Felices Fiestas.

Felicitación

 

Un saludo.

Categories: Otros Tags: ,

Programas multiidioma con Delphi

jueves, 25 de octubre de 2012 22 comentarios
Share Button

flags-all-countries_6130Ya he hablado en otras ocasiones de cómo generar un aplicación multiidioma en Delphi y de paquetes tanto comerciales, como los componentes siComponents, como de código abierto como GNU GetText. En esta entrada hablaba de ambos y explicaba cómo acometer este proceso.

Aplicación multiidioma con GNU GetText

Hace tiempo había revisado el sistema de internacionalizar aplicaciones de Delphi (en este caso en la versión 6) y no me pareció muy intuitivo, tal vez también por falta de algo de documentación. Por lo que he visto en las versiones nuevas, pocas cosas han variado en el proceso y en las herramientas que trae el IDE.

En este caso me he visto obligado por las circunstancias a utilizarlo, y aunque a priori me ha resultado un poco “confuso”, como en su momento, una vez puesto en marcha, el sistema la verdad es que no es complejo y funciona de forma bastante sencilla. Se echa en falta que determinados aspectos sean un poco más potentes, como el editor de traducciones o el repositorio y la forma en que funcionan. Estos dos elementos realizan su función pero son bastante básicos en comparación con otros paquetes que hay en el mercado.

El sistema de traducción de Delphi, se basa en añadir todos los recursos traducidos a una DLL; Una para cada idioma que necesitamos añadir a nuestra aplicación.


EL PROYECTO

Imagen44Para ver el proceso completo de internacionalización crearemos un proyecto sencillo, con dos formularios y veremos que es relativamente rápido montar toda la estructura para que funcione en varios idiomas.

Algunas etiquetas, un memo con algunos strings, unos botones y un segundo formulario para comprobar un ejemplo con más de uno y un TComboBox que nos permitirá modificar el idioma en tiempo de ejecución.

Una vez que tenemos nuestro proyecto funcionando, comencemos el proceso para añadirle dos nuevos idiomas, en este caso el catalán y el inglés, al que ya tiene por defecto (español o castellano).


INTERNACIONALIZACIÓN

Para ello lo primero que debemos hacer es añadir los 2 nuevos idiomas desde el menú de Project.

en la imagen inferior podéis ver las pantallas del asistente, aunque no tiene ninguna complicación y lo que hacemos con él es añadir los idiomas (tantos como necesitemos) a la aplicación.

internacionalizacion

Una vez finalizado el asistente, veremos que el IDE ha generado dos proyectos más (en nuestro caso) correspondientes a los idiomas que hemos seleccionado.

Imagen45

Podemos probar a compilar y grabar todos los proyectos.

Lo siguiente es comenzar a traducir las cadenas para poder utilizar múltiples idiomas en la aplicación. El editor de cadenas es similar a muchas otros aplicaciones que hay para esta función. Se trata de una pantalla que nos muestra las cadenas actuales y donde debemos introducir las cadena introducidas.

Para acceder al “Translation Manager” podemos hacerlo desde el menú en: “Project / Languages / Update resource DLLs”.

Imagen47

En esta pantalla vemos a la izquierda la estructura del proyecto y los diferentes formularios que lo componen. A la derecha la zona que nos permite traducir las diferentes cadenas. Hay columnas que identifican el elemento (ID), la que contiene las cadenas en el lenguaje original de la aplicación y la que contendrá las cadenas traducidas, en este caso con el título de “Inglés (estados Unidos)”.

He marcado en rojo una cadena que ya aparece traducida automáticamente (&Cerrar – &Close).  Este es debido a que esta cadena ya está traducida en el repositorio.


EL REPOSITORIO

El “Transation Repository” o “Repositorio” es como un diccionario de traducciones que podemos ir ampliando a medida que traducimos aplicaciones. De esta forma, podemos reutilizar las cadenas que ya hemos traducido anteriormente (en la misma aplicación o en otras). En el ejemplo que estamos viendo, mi repositorio ya tiene incluida la traducción desde el Español (internacional) al Inglés (Estados unidos) de la palabra &Cerrar. Por eso al acceder a las traducciones, esta palabra ya aparece traducida.

Imagen48El repositorio nos permite acelerar la traducción de términos. Además posee opciones para importar y exportar traducciones, con lo que podemos compartirlos o incluso utilizar herramientas de traducción automáticas externas e importar las traducciones a él.

Una vez que las cadenas están traducidas para los formularios podemos añadirlas al repositorio desde el “Translation Manager” , para tenerlas disponibles más adelante.


EJECUCIÓN

Una vez traducidas y añadidas al repositorio todas las cadenas de los diferentes idiomas, compilamos los proyectos, tanto el original, como los de los diferentes idiomas.

Para probar la ejecución, podemos seleccionar desde el menú de “Project” cual es el idioma que queremos por defecto. Si probamos con alguno de los 2 idiomas y ejecutamos, veremos que efectivamente la aplicación, como era de esperar.

Por último, nos quedaría ver cómo modificar el idioma durante la ejecución de la aplicación. Es bastante simple y para ello hay una sección en la ayuda del propio Delphi a la que podéis acceder; Dentro de la «internacionalización de aplicaciones» hay un tema concreto llamado «Dynamic switching of resource DLLs». Allí se puede leer que basta con añadir la unit Reinit en el uses, y utilizar una línea como la siguiente para cambiar el idioma.

// Cargar los recursos y releer los forms
if (LoadNewResourceModule(lang) < > 0) then begin
  ReinitializeForms;
end;

Comentar que si en alguna versión de Delphi, no encontráis la unit ReInit, podéis buscar dentro del directorio de Demos.

Al final el código que hay más arriba va a ser el único que vamos a necesitar en la aplicación.

Para apoyar la entrada, además del código de ejemplo, he añadido en este caso un vídeo.

 

[youtube dTIo5Oh-wmw]

Como siempre podéis descargar el código del ejemplo desde este link.

<DESCARGAR CÓDIGO FUENTE>

Espero que os haya sido útil y hasta la próxima.