HelloAndroid (Android II)

En la pasada entrega de Android vimos como instalar la versión 1.5 (Donut) de Android sobre la versión 3.5 de Eclipse (Galileo). En la actualidad ya se puede instar la versión 2.0 (Eclair) de Android, para ello ir a la página de desarrollo de Android [1]. Otra opción de pasar a las últimas versiones es instalar el Motorola MOTODEV[2], que no es más que el Eclipse 3.5 ya configurado y con un instalador, además cuando hay actualizaciones te mandan correos, para este artículo lo voy a utilizar, ya que es ideal para los nuevos usuarios. Para configurarlo utilizar la documentación de Motorola, pero en mi caso no he tenido que hacer nada, ya que tenía el Eclipse 3.5 ya configurado y me ha cogido todos los dispositivos virtuales que ya tenía.

Lo primero que hacemos, una vez que MOTODEV nos ha pedido que nos actualicemos, por si hubiera algo nuevo. Ya cuando reiniciemos el MOTODEV nos pondremos manos a la obra. Para ello lo que tenemos que hacer es crear un nuevo proyecto de Android, para ello seleccionaremos la opción del menú principal File -> New -> Project y se nos abrirá la siguiente ventana.

Pincharemos sobre Android Project, una vez que hemos pulsado sobre Android en el árbol de Asistentes (Wizards).

Seleccionar el tipo de proyecto Android

Seleccionar el tipo de proyecto Android

Tras esto nos aparecerá la siguiente ventana de configuración del proyecto Android.

Configuración del proyecto Android

Configuración del proyecto Android

En la imagen se puede ver que se han marcado con números los campos más importantes de configuración del proyecto.

  1. Nombre del proyecto.
  2. Plataforma Android para la que vamos a desarrollar nuestro programa, en el ejemplo he marcado Android 1.5 (CupCake).
  3. Nombre de la aplicación, la que nos aparecerá en el menú de aplicaciones del móvil Android.
  4. Nombre del paquete. En realidad se podría poner el nombre del proyecto, pero desde google nos hacen la recomendación de poner primero un identificador del programador o empresa desarrolladora de la aplicación, en el ejemplo plf, de Petra Link Factory, punto y el nombre del proyecto.
  5. Nombre de la clase de tipo Activity de nuestra aplicación. No es obligatoria, pero sí recomendable.
  6. Botón de Finalizar para terminar de configurar el proyecto Android.

Tras esto podremos ver que se autogeneran la siguiente estructura del proyecto, que podemos ver en la image.

Estructura del programa HelloAndroid

Estructura del programa HelloAndroid

Podemos ver que el proyecto cuelgan varios items, que a su vez tienen otros items.

  • En la carpeta src nos encontramos las clases que vayamos a programar para nuestro programa, por esto encontramos el nombre del paquete, y debajo fichero holoAndroid.java, que contiene la clase Activity de nuestra aplicación.
  • En la carpeta gen nos encontramos los fichero que se autogeneran al manipular otro ficheros.
  • Android 1.5. En esta carpeta nos encontramos todos los archivos necesarios de Android 1.5 (el que configuramos en nuestra aplicación).
  • assets: la verdad es que no tengo idea de lo que va en esta carpeta, que se puede ver que está vacía, yo soy un novato en esto del Android, con lo que os pido perdón.
  • res: en esta carpeta estarán los ficheros que nos servirán para la parte gráfica de nuestra aplicación.
    • drawable: aquí­ guardaremos los archivos de imágenes. El archivo icon.png será el archivo de nuestra aplicación, que podremos cambiar, debe ser un PNG de 48×48 pixeles. Para que funcione bien, el PNG no debe tener capas y puede ser transparente.
    • layout: en esta carpeta estarán los ficheros xml que definirán las ventanas de nuestra aplicación. Para su desarrollo tenemos un editor, con lo que no será necesario que abramos el fichero xml y editarlo a mano.
    • values: en esta carpeta podremos poner ficheros de xml de constantes, al igual que en el caso anterior tenemos un editor de este tipo de ficheros.
  • AndroidManifiest.xml: Este es el fichero donde se indican datos del programa, como la versión, nombre de la empresa desarrolladora, o desarrollador del programa, …
  • default.properties: este fichero no hay que tocarlo, puesto que de su modificación se encarga el plugin ADT de Eclipse

Por defecto ya tenemos el HolaAndorid en el proyecto. Si abrimos el fichero strings.xml dentro de la carpeta values veremos la cadena con el nombre “hello” y el valor “Hello World, helloAndroid!“.

Cómo se está mostrando este texto en la pantalla. Pues para ello vamos al fichero main.xml que está dentro de la carpeta layout. Ahí vemos el editor de la ventana.

Editor de la ventana de Android

Editor de la ventana de Android

Podemos ver que en el ejemplo de helloAndroid hay una TextView. En la barra de la izquierda podemos encontrar dos tipos de Items, Layout que son los tipos de panel para la disposición de los demás componentes de la ventana, y Views que son los componentes con los que podemos ver en la pantalla, botones, campos de texto, …

Para el primer ejemplo ya hemos visto muchas cosas, ya a medida que vayamos viendo otros ejemplos iremos viendo más cosas, así como el uso de los demás ficheros. Ya solo nos queda ver cómo queda nuestra aplicación en el emulador. Para ello pulsamos el botón Run (un círculo verde con un triángulo blanco dentro) que hay en la barra de herramientas. A continuación nos aparecerá el emulador de Android, con el texto A N D R O I D. Tened paciencia puesto que tarda un poco en cambiar al logotipo de Android, y luego un poco más hasta que nos aparece el sistema cargado, lo que tengáis un teléfono Android os daréis cuenta que tarda más o menos lo que tarda vuestro móvil en arrancar.

HelloAndroid en el Emulador de Android

HelloAndroid en el Emulador de Android

En la última imagen del emulador la he puesto para mostrar cómo quedaría un icon.png diferente al que viene por defecto, por esto que los dos iconos están remarcados con un círculo rojo.

Si no tienes paciencia y quieres ver otros sitos webs con programación en castellano de Android te recomiendo que vayas a los blogs y foros específicos de este tema como and.roid.es y android-spa, donde hay gente muy maja detrás de estos dos sitios webs y que saben mucho sobre el tema, además que se dedican a desarrollar aplicaciones en Android.

Enlaces:

[1] Página oficial de instrucciones del instalador del plugin ADT para eclipse: http://developer.android.com/sdk/eclipse-adt.html

[2] MOTODEV: http://developer.motorola.com/docstools/motodevstudio/

Publicado en android, java, programación | Etiquetado , , , | Deja un comentario

Clientes Webmail en php

Cuando nos dedicamos a realizar webs para empresas, en muchas ocasiones, además llevamos la administración del dominio y esas cosas. Si por cuestiones económicas tenemos que alojar las webs de nuestros clientes en un mismo plan de hosting. En mucho de estos planes de hosting que nos permiten multidominio. A esos clientes además les podemos dar servicio de correo electrónico, mediante IMAP o POP3.

El problema viene cuando uno de los clientes te pide que le des acceso al correo por webmail, en la mayoría de los casos le podemos decir que acceda por el acceso que nos suelen dar los proveedores del hosting, el problema es que queda poco profesional y además no es buena idea, el cliente se puede ir si le estas cobrando un precio mayor que el que pagues por tu hosting, que debe ser lo normal, ya que aprender a configurar y manejar las cosas hay que cobrarlas, pero la gente no entiende esto.

Bueno la solución es montar un cliente de Webmail para cada dominio que tengas alojado en tu cuenta.

En el mercado podemos encontrar varias opciones, yo voy a enseñaros 3, una totalmente gratuita y dos de pago, con versiones lite gratuitas.

Rouncube

Roundcube [1] es opensource. Escrito en php, necesita una conexión con una base de datos, nos permite conectarnos a MySQL, MS SQL-Server y SQLite. Yo lo he probado con MySQL, y va muy bien, es una buena opción si tienes un servidor web con pocas bases de datos y ya tienes muchas de ellas ocupadas.

La instalación es muy sencilla, solo hubo que configurar un fichero de configuración, donde se le indica la conexión con la base de datos y los datos del servidor de correo al que nos vamos a conectar.

Por último decir que el aspecto se puede modificar mediante CSS.

Rouncecube

Rouncecube

Afterlogic Webmail Lite

Este cliente webmail es bantante sencillo de instalar, puesto que no hay que configurar ningún fichero, sino que tiene un asistente web bastante sencillo. Necesita MySQL o MS SQL Server, en la web también dice que funciona con Acces, pero me imagino que será para versión que hay en ASP.NET.

Tiene la posibilidad de temas, que el usuario puede cambiar, si desde el panel de administración principal lo habilitamos. Estos temas son fáciles de manipular y están en carpetas que nos permiten elimiar aquellos que no querramos que se muestren.

La versión de pago, nos permite utlizar un calendario, la posibilidad de utlizar varios dominios y versión para el móvil. Dicha versión cuesta 149$.

Afterlogic Webmail Lite

Afterlogic Webmail Lite

Esta versión Lite funciona perfectamente en el navegador de los móviles con el Sistema Operativo Android.

Atmail (@mail)

Atmail[3] es uno de los correos que suelen utilizar los hosting para sus clientes, junto con Horde o con SqurryMail. Su interfaz es muy sencilla y fácil de manejar. La instalación es muy sencilla, mediante asistente web.

En mi servidor local tuve problemas para instalarlo, me daba errores de php, pero no me puse a investigar el por qué de los errores y cómo corregirlo, puesto que de las 3 opciones vistas en este post, este es el que menos me gusta.

Pantalla del @mail

Pantalla del @mail

Hay que decir que este gestor de correo funciona perfectamente con el navegador del Sistema Operativo Android. Y es uno de los que nos ofrece Powweb como gestión de correo Webmail, además de Horde[4] y de SquirrelMail [5], que de ellos no he hablado, pero es que no me gustan como gestores de correo.

Conclusión

Para mí el más fácil de manejar y de utilizar el es el Afterlogic Webmail Lite, cosa que ha hecho que se lo haya instalado ya a varios amigos, aunque el roundcube también es bastante bueno. El Atmail, como no lo he podido instalar, no puedo hablar de la instalación, pero como usuario de dicho webmail la verdad es que estoy contento. La verdad es que estos 3 gestores de webmail funcionan en mi navegador de Android (tengo el HTC Dream con Movistar), para mí no es muy importante que funcione con el móvil, ya que tengo el gestor de correo del propio sistema operativo, pero hay veces que vienen correos en codificaciones raras y necesito abrir el correo desde el webmail o desde el gestor de correo del ordenador, y ya me ha sacado mirar el correo desde el webmail de varios apuros.

Enlaces

[1] Roundcube: http://roundcube.net

[2] Afterlogic Webmail Lite: http://www.afterlogic.com/products/webmail-lite

[3] Atmail: http://atmail.org

[4] Horde: http://www.horde.org

[5] SquirrelMail: http://squirrelmail.org

Publicado en php, Software | Etiquetado , , | Deja un comentario

Android (I)

Durante unas cuantas entradas, y siempre y cuando me lo permita el tiempo, voy a realizar unos cuantos artículos relacionados la programación sobre este sistema operativo para móviles.

El por qué dedicar tiempo a este sistema operativo en vez de iPhone o Windows Mobile es que considero que este va a ser el Sistema que revolucione la programación de los móviles, de hecho creo que va a ser como el Windows 3.1 para lo que hoy en día es la informática, que existían cosas mejores, como los primeros entornos UNIX (el iPhone u otros sistemas Linux) pero que no son tan abiertos y documentados como lo es Android.

A día de hoy solo existen 3 móviles en el mercado, y los 3 son de HCT (Dream[G1], Magic [G2] y Hero), en breve otros fabricantes como Sansung, Motorola, Sony Ericsson, … empezarán a sacar sus móviles con dicho sistema operativo.

Además otras industrias, que no tienen nada que ver con los móviles, están planteando utilizar el sistma operativo Android para otros dispositivos electónicos con valor añadido, como por ejemplo marcos digitales, que con una tarjeta wifi se pueda conectar a Flickr y mostrar las fotos desde ahí, o implementar juegos.

En la industria del automóvil también se estaba hablando utilizar el sistema Android para montar la información de la consola del vehículo, como un ordenador multimedia y el sistema de navegación, control del aire acondicionado, …

Bueno, manos a la obra.

Lo primero es descargarnos los programas. Hay que decir que se puede programar en los 3 sistemas operativos principales de hoy en día, Linux, Windows y OSX. Yo voy a hacer las pruebas en Windows o en Linux, puesto que mi Mac es un mini con un procesador Motorola G4 y el SDK de Android solo funciona en los equipos con Intel.

El primer programa que tenemos que descargarnos es el entorno de programación. Para programar en Android, en principio, el lenguaje por defecto es Java, aunque hoy en día ya hay otros lenguajes, como JavaScript, C. C++ o C# bajo mono. En estos artículos solo vamos a ver Java, puesto que es de lo que he encontrado más documentación, pero puesto que Android es un Linux modificado, se pueden programar en todos los lenguajes que en Linux se programan, con lo que con el tiempo irán apareciendo nuevos ports y liberías para dichos lenguajes. En la actualidad, Google nos recomienda utilizar eclipse[1] como entorno de desarrollo, aunque también se puede hacer en cualquier entorno de desarrollo Java. En estos artículos utilizaremos eclipse, que es muy fácil de utilizar. Para desarrollar software para Android deberemos descargarnos el Eclipse IDE for Java Developers. A día de hoy estamos en la versión 3.4.

Una vez que nos hemos descargado el IDE, que vienen en un fichero ZIP, lo descomprimimos y lo guardamos en la carpeta de programas (en Windows XP C:\Archivos de Programa\eclipse\

Ahora nos descargamos el SDK de Android [2]. Una vez que se haya descargado, descomprimeló y mueveló hacia el raíz de C u otra carpeta fuera del escritorio, que sino lo borrarás algún día por error y dejará de funcionar, yo te recomiendo en C:\Archivos de Programa\Android_SDK_1_5\

Bueno, ahora nos toca configurar el para poder programar con eclipse. Para ello ejecuta el eclipse y pulsa sobre el item del menú Help y luego pulsa sobre Install New Software… Se nos abrirá una ventana, en ésta ventana hay el botón Add, pulsaló y escribe un nombre, por ejemplo Android Plugin y luego pon la dirección https://dl-ssl.google.com/android/eclipse/

Tras un momento, lo que tarda en acceder a dicha dirección y obtener la información relativa, nos aparecerá el item Developer Tool. Lo marcamos y pulsamos sobre el botón Next. Seguimos con el asistente y por último aceptamos las condiciones de uso del plugin, tras lo que pulsamos Finish. Una vez que ha terminado de instalarse, nos peide que reiniciemos Eclipse.

Al volver del reinicio de Eclipse, lo que hacemos es ir a item del menú Window y seleccionamos Preferences. Marcamos el item del árbol Android y seleccionamos la carpeta donde hemos instalado el SDK de Android, en nuestro caso C:\Archivos de Programa\Android_SDK_1_5\. Tras esto Eclipse buscará el contenido del SDK y cuando acabe ya tendremos configurado todo lo que nos hace falata para desarrollar software en Android con Eclipse.

En la siguiente entrega veremos cómo crear el HolaMundo de manera que iremos viendo paso a paso cómo está compuesta una herramienta de Android.

Enlaces

[1] Dirección de descarga de eclipse: http://www.eclipse.org/downloads/

[2] Dirección de descarga del SDK 1.5 de Android: http://developer.android.com/sdk/1.5_r2/index.html

Otras Direcciones interesantes para estar al día o aprender a programar Android

  • http://and.roid.es : blog donde podemos estar al día con todas las noticias que rodean al mundo Android. En esta web encontramos un foro y un curso, en el que podemos encontrar solo la teoría, me imagino que está muy liado y no le ha dado tiempo de hacer ningún ejemplo de programación.
  • http://www.android-spa.com : al igual que la web anterior podemos encontrar un blog con las noticias que rodean al mundo de Android. En la zona del foro, hay secciones para principiantes, donde podemos encontrar manuales y muchos ejemplos.
  • http://developer.android.com : Página principal del proyecto Android, en inglés.
Publicado en android, programación | Etiquetado , , | 1 comentario

Instaladores

Una parte muy importante de nuestros programas de escritorio, y a los que muy poca gente le hecha cuenta es el instalador que vamos a utilizar. La importancia del instalador en nuestros programas en muy grande, puesto que no sirve de nada tener el mejor programa del mundo si luego la instalación es muy complicada. Podéis ver la importancia de ésto en Linux, las distribuciones con más aceptación por la gente que no entiende de programación son Ubunto (y derivados) y SuSe (y derivados) puesto que son las que han realizado mayor esfuerzo en hacer programas que faciliten la instalación de las fuentes sin la necesidad de paquetes dependencias, …, cosa que ha hecho que las demás distribuciones de Linux trabajen en este camino, facilitar la distribución de los programas.

En este artículo vamos a ver instaladores para Windows, puesto que por ahora no he programdo para otra plataforma, todavía nadie me ha pedido software para Linux y para Mac, que también tienen sus instaladores.

NSIS (Nullsoft Scriptable Install System) [1]

Este instalador, tal y como dice su nombre, fue creado por la empresa Nullsoft (la misma que creó el WinAmp). Para realizar el instalador hay que hacer un pequeño script. La sintaxis no es muy complicada. Este es el que yo siempre utilizo, pero en vez de saberme la sintaxis del script utilizo un editor para dicho script que tiene un wizard muy sencillo de utilizar. El programa es HM NIS EDIT [2].

Además de editor, cuando se quiere hacer algo más de lo que te permite hacer el Wizard (como comprobar si tienes instalada la versión de Framework.NET que tu aplicación necesita) puedes buscar código para realizar esto en el Wiki que encuentras en la web de NSIS.

Una de las ventajas más importantes de este instalador es que se puede ejecutar en modo comandos, con lo que es muy útil para hacer instaladores On-The-Fly desde una web, tal y como se hace en la web de Beon para la Beon Factory (al menos cuando trabaja yo allí lo hacíamos así, que se lo curró JuanMa).

Las imágnes del instalador también se pueden cambiar, para personalizar el instalador, el problema es que el instalador aumenta su tamaño consideramente.

Otra opción que nos permite dicho insalador, es que nos permite tener varios idiomas del instalador.

Microsoft Windows Installer [3]

Este es el instalador de microsoft. Aquellos que programéis sobre VisualStudio, cuando se crea un paquete de instalación desde el VisualStudio estáis utilizando este fabuloso instalador.

Yo no he realizado muchos instaladores con este instalador, solo para hacer pruebas y aprender cómo se utiliza el empaquetador del VisualStudio.

InstallShield [4]

Qué decir de éste magnífico instalador. Posiblemente uno de los más utilizados por los grandes fabricantes de software, debido a la gran cantidad de opciones que posee. Yo lo usé en los tiempos que trabajaba en Neoinnova S.L., puesto que los primeros Widget de Beon S.L. Una de las mejores cosas que tiene este instalador es la posibilidad de hacer instaladores parametrizando por scripts, lo que nos permitía poder tener programas muy similares y hacer los instaladores en cuestión de segundos. La mayor pega que tiene este instalador es que es de pago y ocupa mucho espacio en disco, pero es completamente visual.

GkWare [5]

Este instalador lo he conocido haciendo preparando este post. No lo he podido probar a fondo, pero por lo que he visto, te permite hacer entradas en el registro y ejecutar programas después de la instalación o antes de la desinstalación, muy útiles cuando tu aplicación tienen algún tipo de servicio. La verdad es que no tiene mala pinta, lo único malo que le veo es que es un instalador de esos que se ejecutan en una ventana a tamaño maximizado con el fondo azul, muy retro, como los instaladores de Windows 3.1 ó Windows 95/98.

Conclusión:

Desde mi punto de vista el mejor, es el NSIS, con la ayuda del HM NIS EDIT, y quizás es algo un poco rudo para gente que nunca haya realizado instaladores antes. Para aprender está muy bien bajarse la trial del InstallShield, puesto que con él se va a prendiendo las cosas que van haciendo falta para un programa, como son la licencia, los iconos, … La lastima es su precio ($654.88 la versión express), lo que te obliga a vender mucho para sacar rendimientos. Desde mi punto de vista, lo más importante del NSIS es la gran cantidad de scrips que podéis encontrar en el Wiki, la verdad es que se puden hacer muchas cosas con este instalador, lo único es que casi que hay que aprender otro lenguaje más de programación.

Hay muchos más instaladores en el mercado, pero yo solo he hablado de los que conozco un poquito, con esto si no te gustan ninguno ponte a investigar del tema.

Enlaces:

[1] http://nsis.sourceforge.net

[2] http://hmne.sourceforge.net/

[3] http://www.microsoft.com/downloads/details.aspx?displaylang=es&FamilyID=889482fc-5f56-4a38-b838-de776fd4138c

[4] http://www.acresso.com/products/is/installshield-overview.htm

[5] http://www.gkware.com/gksetup/index.htm

Publicado en Escritorio, Instalación, programación, Windows | Etiquetado , | Deja un comentario

CMS de tiendas on line

En el mercado actual existen multitud de tiendas on-line para poder realizar venta on-line de nuestros productos.

La mayoría están escritas en PHP y utilizan MySQL como motor de base de datos. En este artículo veremos una breve comparación de las distintas que he visto.

osCommerce

La tienda on-line por excelencia, está disponible en casi toda la totalidad de los servidores compartidos para la autoinstalación, por su gran aceptación en el mercado de las tiendas on-line. Llevan varios años estancados en la versión 2.2, una pena, puesto que prometían que en la versión 3.0 iban a poner xhtml, temas y url amigables. Está un poco anticuada, pero la cantidad de plugins desarrollados nos permiten no saber programar y tener nuevas opcines, como pasarelas de pago de bancos, módulos para la gestión de la logística por compañías como UPS o FEDEC.

Personalmente a mi no me gusta mucho, he realizado ya varias tiendas on-line de forma privada y, por lo menos a mí, me parece muy complicado todo. Para tanta versatilidad como nos ofrece hay que dedicar mucho tiempo para insertar los productos de nuestra empresa. Programar sobre ella es muy tedioso, puesto que no hay chuletas, como las hay en otros CMS opensource, y hay que leer mucho código para hacer cualquier cosa.

osCMax

Esta en realialidad no es más que una extensión del osCommerce, de manera que nos permite hacer cosas que el osCommerce original no hace.

ZenCart

Bonita alternativa libre del osCommerce. Trae opciones que el osCommerce no posee, como temas montados sobre XHTML y url amigables (SEO URLs). Por lo que he leído es muy sencilla de montar. La lá¡stima es que no soporte plugins de terceros, o al menos como no la he trasteado bastante no los he encontrado.

PrestaShop

Esta nunca la había oído hasta que no me puse ha hacer este artículo, la verdad es que me ha sorprendido muchísimo. La demo se ve que es mucho más evolucionada que osCommerce, y que está muy trabajada en cuanto a usabilidad y diseño. Para aquellos que no sabéis programar es una gran opción, puesto que para que funcione vuestra tienda solo deberéis modificar un tema visual. Permite el uso de permalinks y urls amigables. Trae instalado un módulo para conectar directamente con google analitics, lo que nos permite tener un control de las búsquedas que se realizan sobre tu tienda y en qué lugar estás en dichas búsquedas, muy útil si quieres invertir en AdSense (se invierte en donde no estás arriba). La verdad es que si tengo tiempo hablaré en alguna otra ocasión de este CMS de venta on-line.

Magneto

Esta es una plataforma de venta on-line que nos permite poner varias tiendas en nuestro servidor. Por lo que he leí­do ha de estar instalada en un servidor dedicado, desconozco el por qué. Si entramos en la administración de la tienda de pruebas, podemos ver que además de tienda on-line trae su propio CMS que nos permite tener la web de nuestra empresa, sin tener que combinar productos como WordPress, Drupal o Joomla. Se ve muy usable, pero me hecha para atrás eso de que haya que instalarlo en un servidor dedicado y que no permita los plugins de terceros.

osCommerce osCMax ZenCart PrestaShop Magneto
Multi-idiomas
Multi-monedas
Diseño de la tienda Ficheros php temas temas temas temas
URLs amigables No
Control de Stock
Envío de correos a los clientes
Envíos masivos a los clientes para campañas de publicidad
Personalización de productos
Personalización de productos: Varias imágenes No
Personalización de productos: Inserción de Links No - -
Poder instalar un certificado de Seguridad SSL
Soporte de Plugins de terceros No No
Instalación en servidor compartido No

Enlaces:

osCommerce: http://ww.oscommerce.com

ZenCart: http://www.zencart.com

osCMax: http://www.oscdox.com

PrestaShop: http://www.prestashop.com

Magneto: http://www.magentocommerce.com

Publicado en Comercio electrónico, Sin categorí­a | Etiquetado , , , | Deja un comentario