jueves, 18 de agosto de 2011

Uso de controles y eventos en Android

Al crear un nuevo proyecto de Android en Eclipse o MotoDev Studio, que se llame HolaMundo, nos genera una aplicación tipica con una pantalla y una leyenda en la parte superior.

Tomando como base esta plantilla, nos dirigimos a ella en la carpeta /res/layout/ y abrimos el archivo main.xml que corresponde a la ventana principal de nuestra aplicación.



En la parte izquierda veremos los controles o widgets que tenemos para construir nuestra interfaz gráfica, aquí seleccionaremos el EditText y lo arrastramos a la ventana,bajo la leyenda HolaMundo; luego seleccionamos el control Button y lo arrastramos también a la ventana.

martes, 16 de agosto de 2011

Estructura de una aplicación Android


Cuando recién creamos un nuevo proyecto en eclipse con el plugin de Android, o en Motorola Dev Studio for Android, podremos ver la siguiente estructura:

/src - Código fuente,clases en java

En esta carpeta podemos encontrar el archivo principal de java, desde donde inicia nuestra aplicación,y aquí mismo podemos crear mas clases o interfaces.

/gen - Código generado,clases creadas automáticamente

Cuando se compila o ejecuta nuestra aplicación, se genera código complementario automáticamente como el objeto R que vincula a nuestra interfaz definida en xml, con nuestro código java

/Android 2.2 - Librerias,empacados jar de android y otros

Cuando al principio seleccionamos una versión de Android para nuestra aplicación, se incluye la librería correspondiente y nuestro proyecto hace referencia desde esta carpeta.

/assets - Otros archivos, carpeta para almacenar archivos auxiliares

Si necesitamos incluir otros archivos de recursos, propios de nuestra aplicación o incluir otros medios,podremos copiarlos a esta carpeta.

/res - Archivos de recursos,documentos xml e imágenes

/res/drawable-hdpi /res/drawable-ldpi
/res/drawable-mdpi

Contiene las imagenes de múltiples resoluciones,que se utiizarán dependiendo del tamaño de la pantalla del dispositivo

/res/layout

Contiene los archivos de descripción de interfaz gráfica o layouts, que representarán a nuestras "ventanas" o "formularios" como se le diría en el idioma de las aplicaciones de escritorio. Y que contienen los componentes y su ubicación en pantalla como botones y cajas de texto.

/res/values

Contiene archivos que almacenan las cadenas de texto de nuestra aplicación, para permitir traducirla mas fácilmente

/AndroidManifest.xml Archivo de configuración

Nos indica entre otras cosas,la versión de nuestra aplicación, la lista de activities o ventanas, permisos para acceder a la información del usuario o al teléfono, la mínima versión de android donde correra nuestro programa,etc.

/default.properties Configuración de la versión del sdk

Versión de librería de Android, con la que se compilará la aplicación


Happy Hacking!

viernes, 15 de julio de 2011

av2t app envío de tweets reconociendo voz



Con la inquietud de un amigo de twitter (alias @pelaxix) que desea regresar a su extasiado estado de twitear mientras maneja y ya que la nueva ley de tránsito de nuestro estado lo impide, surgió la idea de crear una aplicación de Android que permita twitear sin necesidad de escribir texto, y usando manos libres.

Logrando acceder a la api de Android para usar el reconocimiento de voz nativo del sistema, la funcionalidad de síntesis de voz para emitir texto hablado y notificar; para finalmente enviar por twitter el mensaje que dijo de viva voz el usuario.

Tenemos la pre-alpha versión de la aplicación av2t , compilada para froyo (versión 2.2) o superior. Que requiere acceso a internet para realizar el reconocimiento de voz y el envío del tweet.

Aqui la descarga del .apk

Happy Hacking!

domingo, 29 de mayo de 2011

Instalación del ambiente de desarrollo para Android

   Se realizó el taller de Android en las intalaciones del Centro de Cómputo de la Facultad de Matemáticas de la UADY, con la colaboración de la Bliblioteca de Ciencias exactas e Ingenierías.

   A continuación un breve resumen de los pasos realizados para llevar a cabo el objetivo del taller, que fue el de instalar las aplicaciones y herramientas necesarias para crear una sencilla aplicación Android, subirla y ejecutarla en un teléfono inteligente para concluir el ciclo de desarrollo.

Paso 1.-Instalación de los kits de desarrollo.

   -JAVA JDK 1.6 de Sun (http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u25-download-346242.html)
   -Eclipse Helios for Java Develop (http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/heliossr2)
   -Android SDK (http://developer.android.com/sdk/index.html)

Paso 2.-Configuración de Eclipse para instalar el plugin de desarrollo para Android.

  En el menú Help/Install New Software agregar las siguientes direcciones de descarga:

https://dl-ssl.google.com/android/eclipse/
(Plugin de Android SDK para usar con eclipse)

   seleccionar la fuente del plugin de android, e instalar el Developer Tools

 

Paso 3.- Instalación de la versión de Android que trabajaremos.

   Ejecutamos la aplicación de configuración del SDK de Android, por ejemplo si lo instalamos en c: , estará en  : c:\android-sdk-windows\SDK Manager.exe o en el caso de linux, en \home\(usuario)\android-sdk-linux\tools\android 

   La primera vez puede sugerirnos descargar todos los sdks disponibles, pero le decimos cancelar, solo necesitamos uno.

   Seleccionamos  Available Packages para instalar la plataforma sobre la cual trabajaremos, esto es si nuestro telefono usa Eclair, elegiremos plataforma Android 2.1 , si no contamos con telefono, un buen punto de partida es Froyo Android 2.2

   Seleccionamos entonces SDK Plataform Android 2.2,API 8,revision 2 y lo instalamos.Tal vez nos pida una actualización del Android tools, la aceptamos y continuamos.

Paso 4.- Configuramos nuestro Virtual Device para poder ejecutar el emulador de Android que viene con el SDK.

   En el Android Manager, seleccionamos la pantalla de virtual devices, y creamos uno nuevo.

   Activamos la característica de snapshot, escribimos la cantidad de momoria para la SD card virtual, y agregamos más carácterísticas como el touch screen y el  acelerómetro.

   Probamos el emulador, presionando el botón [start] sobre nuestro dispositivo virtual seleccionado.

 Paso 5.- Configuramos la ruta de instalación del SDK de Android, en  el menú Window/Preference opción Android de Eclipse.

 y con esto podremos lanzar la configuración del SDK de Android desde el menú Window/Android ADT SDK en Eclipse. Y también lanzar el emulador directamente al ejecutar nuestro programa desde eclipse.

 Paso 6.- Hola mundo Android.

   Creamos un nuevo proyecto desde el menú File/New/Other y seleccionamos Android seguido de Android Project. Llenamos la ventana de información del proyecto con el nombre,versión de la plataforma, nombre de paquete java,Activity que es como la ventana pricipal de nuestra aplicación, y la versión mínima donde correrá.



Y al darle finalizar, crea un nuevo proyecto tipo Android y nos genera la estructura básica de la aplicación incluyendo directorios de recursos y configuración.

En la estructura de proyecto creada, en Hola/res/layout/main.xml lo abrimos y veremos la ventana principal y una barra de componentes para utilizar como cajas de texto, botones, listas,cajas de imagen, videos etc.

 Arrastramos un botón de la barra de componentes y lo sotamos sobre la ventana, grabamos el proyecto, sobre la ventana de proyectos seleccionamos el proyecto hola, luego precionamos el botón [Ejecutar] aplicación o desde el menú Run seleccionamos Run As... y Android Application.

Veremos como se lanza el emulador con nuestra aplicación ya instalada, si el emulador tarda en cargar y falla al instalar y ejecutar nuestra aplicación, esperamos a que el emulador cargue por completo y volvemos a ejecutar el proyecto con Run As... Android Application

    Pueden ejecutar los ejemplos que vienen con el SDK de Android y

Happy Hacking Android!!

 P.D. Para instalar nuestro programa en un smartphone con Android solo copiamos el archivo hola.apk en el directorio del proyecto de eclipse subdirectorio /bin , al SD Card (via cable usb,bluetooth,etc).

   Luego usamos alguna app para explorar archivos y entrar al SD Card para ejecutar hola.apk, el movil nos dirá que debemos habilitar la función que permita instalar aplicaciones fuera del Android Market, continuamos activamos la opción y reintentamos nuevamente.

   Listo, ya tenemos nuestra aplicación corriendo en el smarthphone !!

miércoles, 11 de mayo de 2011

Nueva página para desarrollar en Android



Y comenzamos una nueva aventura, al lanzar una página para aprender a desarrollar en Android.

Junto con el hashtag #AndroidDes en twitter, pueden consultar y participar en la información, en
esta página desde la dirección:

http://androiddes.gusly.org

Con la novedad que junto a las página, se iniciará un curso de Android para poner a punto un ambiente de desarrollo. La información completa se encuentra en la portada de la página.

Tampoco olviden el Super Happy Dev House 5 de la ciudad de mérida, a realizarse el 21 de mayo

http://www.shdhmerida.org/

Saludos y happy hacking.

martes, 1 de marzo de 2011

Curso básico de base de datos SQL

Curso básico de bases de datos SQL y normalización

Comenzamos con las formas normales, que son reglas a utilizar para organizar la estructura de nuestra base de datos, y no terminar con una enorme tabla con 50 campos.
Si ya contamos con nuestra lista de tablas y campos,debemos verificar que se cumplan al menos 4 formas normales y con ello evitar duplicidad y redundancia de la información. Así como contar con relaciones confiables entre nuestras tablas.
Para realizar nuestras prácticas y ejecutar comandos,podremos descargar una imagen de CDRom con el servidor sql ya instalado,configurado, y listo para practicar, haciendo click en este enlace.
FORMAS NORMALES

Primera forma normal (1NF). La primera forma normal (1NF) otorga reglas muy básicas para la organización de una base de datos:
  • Eliminar columnas duplicadas de la misma tabla.
  • Crear tablas separadas para cada grupo de datos relacionados e identificar cada fila con una columna o conjunto de columnas únicas (La llave primaria).
Segunda forma normal (2NF). La segunda forma normal (2NF) nos trae el concepto de remover datos duplicados:

  • Realice todos los requisitos de la primera forma normal
  • Elimine los subconjuntos de datos que se aplican a multiples filas de una tabla y ubiquelas en tablas separadas.
  • Establezca relaciones entre esas nuevas tablas y sus predecesores a través del uso de llaves foráneas.
Tercera forma normal (3NF). La tercera forma normal (3NF) es un gran paso donde:
  • Se encuentran todos los requisitos de la segunda forma normal.
  • Se eliminan columnas que no dependen directamente de la llave primaria.
Cuarta forma normal (4NF). Finalmente, la cuarta forma normal (4NF) tiene un requisito adicional:
  • Cumplir con todos los requisitos de la tercera forma normal.
  • Una relación esta en 4NF si no tiene dependencias de varios valores
Recuerde,estas guías de normalización son acumuladas.Para que una base de datos este en 2NF, debe primero cumplir todos los criterios de una base de datos en 1NF.


Para la práctica de los comandos sql,utilizaremos el CDRom de arranque de GuslyLive. Donde tendremos preinstalado el servidor SQL Firebird, que es un motor robusto,gratuito y open source disponible para las plataformas Linux,Windows,OSX y Solaris.
Solo encendemos la computadora e introducimos el disco,seleccionando el modo de arranque desde el cdrom.Al ver la pantalla de inicio presionamos enter sobre la primera opción "Live",para entrar al sistema:


         Al ingresar al sistema, lo preparamos haciendo doble click sobre el ícono "Bienvenida".

         Que nos mostrará un diálogo donde presionamos el botón del centro con la leyenda "configurar",nos abrirá una ventana que nos pregunta si deseamos iniciar el servidor de base de datos, le decimos "yes" moviendo el cursor presionando la flecha izquierda, y presionando la tecla enter. También nos preguntará por la contraseña del servidor, le escribimos "masterkey" y presionamos la tecla enter:

Base de datos SQL: Firebird versión 2.1 
usuario: sysdba 
contraseña: masterkey

         Luego entramos a la aplicación "FlameRobin" ubicada en el menú principal,grupo "programming"


         Aquí desplegamos la lista "LocalHost" (click en la flecha a la izquierda de Localhost) y hacemos doble click sobre el menú "empleados",para abrir la base de datos. Si obtenemos un error en este punto, repetimos la configuración y nos aseguramos de iniciar el servidor firebird, y escribir en minúsculas la contraseña "masterkey".

         Finalmente,presionamos el botón derecho sobre la lista "empleados" y presionamos la opción "Run a Query",nos abrirá la ventana para ejecutar comandos SQL sobre nuestra base de datos de ejemplo. 

         Para aplicar los cambios ejecute primero el comando con el boton "Execute statement" y luego aplique la transacción en el botón de "commit transaction".


Lenguaje DDL (Lenguaje de definición de datos)

sintaxis:

<tipo> =
  {SMALLINT | INTEGER | FLOAT | DOUBLE PRECISION}
  | {(DATE | TIME | TIMESTAMP}
  | {DECIMAL | NUMERIC} [(precision [, scale])]
  | {CHAR | CHARACTER | CHARACTER VARYING | VARCHAR} [(int)]
  | {NCHAR | NATIONAL CHARACTER | NATIONAL CHAR} [VARYING] [(int)]

<columna>= <nombre><tipo>[not null][primary key];


Crear una tabla


CREATE TABLE <tabla> (<columna>[, <columna> ]);



ej. create table clientes (id_clie integer not null primary key, nombre varchar(120),appat varchar(60),apmat varchar(60))


Modificar la estructura de una tabla existente


ALTER TABLE <tabla> <operacion> [, <operacion> ...];

<operacion> = {ADD <columna>
  | ALTER [COLUMN] column_name <cambios>
  | DROP columna}

<cambios> = {TO nuevo_nombre
  | TYPE nuevo_tipo}



ej. alter table clientes add curp varchar(20);
alter table clientes alter nombre type varchar(200);


Eliminar una tabla


DROP TABLE tabla;



ej. drop table alumnos;


Lenguaje DML (Lenguaje de manipulación de datos)


Insertar registros a una tabla


INSERT  INTO <tabla> [(columna [, columna ...])]
  {VALUES (<valor> [, <valor> ...]) | <expresion select>};



ej. insert into clientes (id_clie, nombre ,appat ) values (1,'mickey','mouse');
insert into clientes (id_clie, nombre ,appat ) select id,nombre,apellido from alumnos;


Actualizar registros en una tabla


UPDATE  tabla SET columna = <valor> [, columna = <valor> ...] [WHERE <filtro> ];



ej. update clientes set curp='xxxxxxxxxxx' where id_clie=1;


Eliminar registros


DELETE FROM tabla    {[WHERE <search_condition>] };



ej. delete from clientes;
delete from clientes where id_clie=1;


Solicitar un conjunto de registros


SELECT [DISTINCT] {<lista_columnas> | *} FROM <lista_tablas>
[WHERE <filtro>]

<filtro>=[not] <campo> <operador><valor>
<operador>= =|>|<|<>|s null|is not null|between
<valor>=<campo>|<constante>|<constante> and <constante>

ej. select * from clientes;
select id_clie,nombre from clientes where id_clie between 1 and 10;

martes, 15 de febrero de 2011

Comentarios del SHDHMID 4

Super Happy Dev House Mérida edición 4
 #SHDHMID

   En lo particular, mi objetivo en este evento era publicar un wiki donde las personas interesadas en desarrollar aplicaciones para móviles bajo el nuevo sistema Android, tengan un punto de partida y un concentrador de experiencias de otras personas con intereses similares.

   Un segundo objetivo era terminar durante el evento el desarrollo de una pequeña aplicación de prueba con el ciclo completo, esto es, instalarlo en mi celular HTC Desire A, con Android 2.1.

   Gracias a la sinergia del evento, un compañero dono espacio para alojar la página web del wiki, y otro compañero también interesado en el desarrollo para Android, donó a los participantes material en video que había obtenido de desarrolladores españoles, donde el mercado es aún mas grande para las aplicaciones móviles, que en yucatán.

   Puedo concluir que mis objetivos personales, se cumplieron durante el evento y aprendí de mis compañeros.

   Fue un buen evento, el cuarto en Mérida, donde tuvimos la oportunidad de conocer a desarrolladores de ciudad del carmen que nos visitaron y trabajaron sobre sus propios proyectos. También un programador del conalep que aunque sin proyecto, llego a observar sobre las nuevas herramientas que se utilizan actualmente, para reincorporarse a esta ola tecnológica que se esta desarrollando en la ciudad de Mérida gracias a este evento y otros similares. 

   Un proyecto muy prometedor y con meses de desarrollo se presentó, www.pikhub.com que es justo la organización de equipos de trabajo, a la que se pretende llegar.


martes, 8 de febrero de 2011

Ingresar como usuario Root en HTC Desire A

Saludos:

   Recién jugando con un celular HTC Desire A como se le llama en México (en EEUU es HTC Wildfire) que trae Android Eclair 2.1, veo que en el Market existen aplicaciones útiles que necesitan que el teléfono este "rooteado".

   Y pues nos dimos a la tarea de conseguir el acceso al usuario root, en el sistema linux de Android, para esto hay muchas aplicaciones y tutoriales, lo que incluiré en las siguientes líneas serán los que utilicé para mi modelo y versión de android en particular y observaciones.

  Encontramos un tutorial muy bueno en http://www.thedroiddemos.com/forum/viewtopic.php?f=45&t=22

  Incluye un video de los pasos a seguir, el camino que tome fue a través de windows, instalando los drivers del HBOOT USB con el sistema android de fabrica 2.1, ya que comentan que aún no hay un rooteo efectivo si previamente actualizamos a android 2.2 y luego intentamos rootear.


     El método se aplica para otros modelos de terminales htc android,pero la recomendación es que si no se encuentra en la lista, mejor elijan otro método que si se haya probado en él, ya que las variantes son muchas y puede desconfigurar el equipo.

   Y si algunos se animan, y tiene un HTC Desire A, les puedo comentar que me funcionó bien, y si se detienen en algún paso, pueden enviarme un tweet a @roboxito.

  Así que, Happy hacking!!