Archivo

Archivo para la categoría ‘Delphi’

Obtener información de una canción

Martes, 13 de mayo de 2014 Sin comentarios

images (2)El tema de esta entrada ha surgido a partir de la necesidad de obtener esta información de una canción, para un programa  que en breve os presentaré en otra entrada del blog.
Esta parte no tiene que ver directamente con el tema de esa entrada, pero sí me ha parecido interesante y tal vez útil para otras personas, así que me he decidido a publicar estas líneas al respecto, ya que en la otra no tiene cabida.

El problema es sencillo; A partir de los datos básicos de un tema musical (título y/o artista) necesito obtener algo de información de esa canción. En mi caso me interesaba el título del álbum y una caratula (aunque se puede obtener más).

Hay varios servicios en Internet que os ofrecen la posibilidad de acceder a esta información.

http://www.lastfm.es/api

http://www.freecovers.net/api/

http://www.allcdcovers.com/api#sthash.4ULJ5WpF.dpbs

https://www.apple.com/itunes/affiliates/resources/documentation/itunes-store-web-service-search-api.html

images (3) En esta ocasión me he decantado por iTunes, por la facilidad de uso y porque no hace falta registrarse. Hay algunos otros cuya utilización es gratuita, pero requieren un registro y el uso de una APIKey. En este caso, por simple sencillez, me he decantado por este. Además, ya me ofrece (con creces) los datos que para este ejemplo estaba buscando.

En esta página podeís acceder a la información de la API para realizar búsquedas en iTunes.

Como podéis ver es bastante sencilla de utilizar.

Leer más…

Categories: Aplicación, Delphi, Threads Tags: , , ,

Tethering; Operaciones básicas…

Miércoles, 23 de abril de 2014 4 comentarios

images Una de las características más atractivas de la nueva versión de RAD Studio, y sobre la que seguro continuaremos hablando, pues están previstas ampliaciones y mejoras para las próximas versiones, es el AppThthering. Antes de continuar con el artículo, os dejo unos links por si queréis revisar documentación sobre esta característica. Si ya lo habéis revisado, pues podéis continuar con la introducción.

Lo primero a revisar es la DocWiki de Embarcadero. Con esta información ya podemos iniciar. No es que sea muy extensa, pero está la suficiente y básica del funcionamiento.

También podéis revisar la entrada anterior que publiqué en el blog, en la que os mostré algunas preguntas y respuestas que aparecieron en la presentación de embarcadero sobre características del nuevo RAD Studio. Hay un bloque dedicado a AppTethtering bastante clarificador.

Añadir un par de videos que se pueden encontrar en el canal de embarcadero:

Por último, os remito a algunas entradas de los blogs de embarcadero, como la de Sarina DuPond titulada “Extend your Windows apps to mobile with Tethering in XE6”,  o esta publicada en Fixed by Code titulada “Fun with Delphi XE6 App tethering and barcodes”.

 

INTRODUCCIÓN

Si a estas alturas no ha quedado claro (con todo lo anterior) qué es y para qué se usa el Tethering, sólo queda citar el siguiente párrafo (traducido):

Usando Tethering sus aplicaciones pueden fácilmente:

  • Descubrir otras aplicaciones que estén usando Tethering y ejecutándose en el mismo dispositivo o de otros dispositivos que estén conectados a la red (interna).
  • Ejecutar acciones de forma remota. Una aplicación puede “publicar” acciones, de forma que las otras aplicaciones puedan invocarlas/llamarlas de forma remota.
  • Compartir datos entre aplicaciones. El Tethering permite intercambiar tipos de Datos estándar y streams.

El tethering no depende de un protocolo específico de transporte de datos, de forma que se pueden implementar nuevos protocolos utilizando la API de tethering. La RTL proporciona soporte para conexiones ethernet que se ejecutan en la misma red local (LAN), incluso si se están ejecutando en el mismo dispositivo.

Hay que decir que el tethering, aunque puede ser muy útil en determinados escenarios, tiene un funcionamiento bastante básico desde el punto de vista del programador. Toda la gestión la realizamos utilizando 2 componentes (iguales para todas las aplicaciones que lo utilizan).

TTetheringManager

Este componente es el que está más enfocado a las conexiones entre dispositivos.

TTetheringAppProfile

Es el componente que está más enfocado al intercambio de Datos. Es el que se utiliza para “publicar” acciones que posteriormente se van a compartir entre aplicaciones o para enviar y recibir recursos.

  Leer más…

Categories: Delphi, FMX, Tethering, VCL, XE6 Tags: , ,

RAD Studio XE6 First Look Webminar, Apuntes…

Jueves, 17 de abril de 2014 Sin comentarios


Ayer se celebró por parte de Embarcadero el seminario online de presentación de esta nueva versión de RAD Studio, con título “RAD Studio XE6 First Look Webminar”. Supongo que en breve estará disponible para descarga.

RADXE6-Launch_eDMBanner01_680x150

Un poco tarde para el aviso, pensarán algunos…  ;-)

Cierto, aunque la idea de esta entrada no es para avisar del Webminar, sino para exponer algunas de las cosas que allí se trataron.
En breve embarcadero pondrá a disposición de los usuarios la grabación completa del Webminar (si no lo está ya), así como la transcripción de las preguntas y respuestas.

A esto último voy. A veces estamos atentos a la explicación y nos perdemos (no hay otro remedio) las preguntas y respuestas que se van desarrollando durante el transcurso de la sesión.
Personalmente me gusta guardar la transcripción para revisarla con tranquilidad al acabar, porque es una gran fuente de información y aclaran muchas cosas.

PreguntasRespuestas Del Webminar de ayer he seleccionado algunas; Las he traducido y organizado en secciones. Espero que ayuden a entender (o a aclarar) el funcionamiento de algunas de las novedades que presenta XE6.

Tened en cuenta que la traducción ha sido rápida así que tan vez haya frases que son “mejorables” sintácticamente. También es posible que algunas preguntas/respuestas sean repetitivas, pero las he querido copiar y traducir tal cual sin eliminar ninguna parte ni de la pregunta ni de la respuesta.

Leer más…

RAD Studio XE6

Miércoles, 16 de abril de 2014 8 comentarios

Está claro que a estas alturas si alguien no se ha enterado de que el nuevo RAD Studio XE6 ha visto la luz, es que no tiene conexión a Internet y está viviendo en una isla desierta…

A algunos nos ha pillado un poco de sorpresa, ya que todavía estamos asimilando la salida al mercado de la penúltima apuesta de embarcadero en el mundo del desarrollo; Appmethod.

Al fin y al cabo están estrechamente relacionados, y la nueva imagen en Appmethod nos daba pistas en su lanzamiento de lo que íbamos a ver en breve. Igualmente las novedades que disfrutaremos en XE6 (excluyendo las de la VCL) pronto se verán plasmadas en AppMethod.

Ambos productos evolucionan a la par, puesto que uno no es más que un subconjunto del otro.

radstudioxe6banner_11792

Leer más…

Categories: Delphi, Eventos, XE6 Tags: , , ,

(5/5) Publicación en AppStore (Google Play) paso a paso.

Miércoles, 5 de febrero de 2014 9 comentarios

Aquí comenzamos la que será la última entrada de esta serie, completando el "ciclo de vida" de este desarrollo, con la publicación de la aplicación en la “tienda” de Google (Google Play). Tal vez para el ejemplo que estamos tratando no sea el “final lógico”, pues recordemos que trabajamos sobre el supuesto de que la aplicación es para una empresa. En ese caso la distribución podría ser de forma “interna” y no tendría sentido publicarla para todos los usuarios de Google Play.  Pero me váis a permitir que en este caso me tome esta “licencia” y aprovecharé así esta aplicación para documentar este último paso.

Recordemos lo que hemos visto hasta ahora, y aprovecho para actualizar los links en el resto de las entradas.

“ROADMAP” DE LAS ENTRADAS

Hay una serie de pasos que necesitaremos completar, antes de poder publicar nuestra aplicación. En las pruebas normales del día a día tal vez no sean todos necesarios, pero una vez que vamos a publicar la aplicación deberíamos completarlos.

Leer más…

(4/5) Generación del cliente iOS/Android (código compartido)

Martes, 4 de febrero de 2014 10 comentarios

mobile-productsContinuando con la  “hoja de ruta” y después de que en la última entrada de esta serie creáramos un cliente de “escritorio” para acceder a la Base de Datos a través de un webservice; En esta entrada vamos a generar una aplicación móvil para acceder a los datos, tal y como estaba definido en las premisas iniciales.

“ROADMAP” DE LAS ENTRADAS

Para ello voy a utilizar Delphi XE5. Basándonos en uno de los ejemplos anteriores, ya casi tenemos todo el trabajo hecho, ya que la base del código y los componentes utilizados van a ser los mismos. Por lo tanto, lo único que voy a tener que definir es la nueva interficie para la plataforma móvil.

Iniciaremos el proyecto utilizando la opción desde el IDE para un nuevo proyecto móvil.

Leer más…

Categories: Delphi, WebService, XE5 Tags: , , , ,

(3/5) Generación de un cliente (WebService) en Delphi.

Martes, 28 de enero de 2014 16 comentarios

En las dos entradas anteriores de esta serie, hemos planteado el problema y hemos visto cómo generar un WebService en PHP que nos permita acceder a nuestra Base de Datos. Una vez completada la parte Servidor, vamos a comenzar a desarrollar las aplicaciones cliente que van a consumir los datos.

“ROADMAP” DE LAS ENTRADAS

Siguiendo con nuestra “hoja de ruta”, vamos a desarrollar varios clientes de escritorio en Windows, utilizando diferentes alternativas y posibilidades de las que disponemos.

web-service-overview-1

CLIENTE 1: Delphi6 + Indy + LkJSON

Nuestra primera opción va a ser una aplicación (creada en Delphi 6) que acceda al primer webservice que hemos creado aquí y para ello utilizaremos las librerías Indy.

Leer más…

(2/5) Generación del Webservice en PHP.

Lunes, 27 de enero de 2014 11 comentarios

imagesContinuando en el lugar dónde nos quedamos en la primera entrada, vamos a pasar al siguiente punto. La generación del Servidor.

“ROADMAP” DE LAS ENTRADAS

Antes de comenzar a generar código, necesitamos generar la Base de Datos, de esta forma podremos ir realizando pruebas sobre ella.
Para la creación de la tabla de “usuario” podéis utilizar la siguiente sentencia:

 

0
1
2
3
4
5
6
7
8
9
CREATE TABLE IF NOT EXISTS `agenda` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`nombre` VARCHAR(30) NOT NULL,
`apellidos` VARCHAR(40) NOT NULL,
`telefono` VARCHAR(9) NOT NULL,
`extension` INT(11) DEFAULT NULL,
`departamento` VARCHAR(15) DEFAULT NULL,
`interno` INT(11) NOT NULL,
`email` VARCHAR(40) DEFAULT NULL,
PRIMARY KEY (`id`)

Leer más…

(1/5) Aplicación de acceso a datos (Introducción)

Miércoles, 22 de enero de 2014 6 comentarios

estructEsta entrada y las siguientes, como otras del blog, viene “provocada” por una inquietud o un problema con el que me he encontrado. A raíz de eso y de la necesidad de solventarlo ha surgido esta solución; Seguramente no es la única, y me gustaría que me propusierais otras diferentes (sobre el mismo escenario) si las tenéis. Espero esta que os propongo sea útil a otros programadores en situaciones similares.

Mi intención es dividir todo el proceso (por lo extenso) en varias entradas sucesivas. Os adjunto el “Roadmap” (que suena como muy serio  ;-D ) del proceso completo y a medida que vaya completando los pasos, iré actualizando los links en todas ellas.

“ROADMAP” DE LAS ENTRADAS

Leer más…

Internacionalizar aplicaciones con DKLang

Viernes, 10 de enero de 2014 Sin comentarios

1326079952_297898748_1-Traductor-Espanol-Rumano-Rumano-Espanol-Coche Ya he hablado anteriormente de varios sistemas y paquetes de  componentes para internacionalizar aplicaciones en el blog. Por ejemplo, aquí y aquí. A raiz de un comentario de otro usuario, esta vez, por necesidad en este proyecto (IBCC) he decidido probar los componentes DKLang.

A primera vista me han sorprendido,  pues cuenta con versión para XE5 incluyendo aplicaciones móviles (Android/iPhone) así como para VCL y FMX. Más adelante hablaré de la versión para XE5 (versión 5), aunque en esta entrada y para este proyecto he usado la versión 3, que es la que soporta Delphi 6. 

Para la compilación del componente, al menos en esta versión (Delphi 6), hacen falta los componentes TNT para unicode. Gratuítos y con código fuente que podéis bajar desde esta misma web o desde internet sin problemas.

Imagen1138 La compilación e instalación de los packages se hace sin problemas. Basta con añadir un par de directorios al path para que encuentre los ficheros necesarios. Una vez instalado el package de diseño, ya me aparece el componente DKLanguageController en la pestaña de System.

He echado en falta algún manual sencillo para poder seguir a la hora de empezar con un proyecto nuevo. En la web y en la ayuda no hay nada que de una guía rápida de funcionamiento. Aun así, no lleva más de 10 minutos ver cómo se maneja el componente.

Todos los ejemplos que se incluyen están realizados utilizando los componentes TNT, aunque es fácil sustituirlos en el DFM por componentes estándar y el funcionamiento es correcto.

Leer más…