miércoles, 16 de noviembre de 2011

domingo, 13 de noviembre de 2011

E3 - Creando una app en 1 hora


Hola a tod@s!
Este ejemplo esta pensado para las personas que ya tienen nociones basicas, es una aplicación que hace uso de elementos básicos en Android y está pensado para un curso de Android de menos de 4 horas en el que después de tomar la introducción a la plataforma pueden hacer esta app en 1 hora, esta será la aplicación que se presente en el Encuentro de Sistemas Computacionales 2011.

Cabe destacar que la mitad de ese tiempo es empleado en los elementos visuales, mas que en la programación, quizá debería llamarse Una aplicación Android en 15 minutos, pero siempre es importante que se vea bien, así que hay que dedicarle tiempo al diseño también.

Pensé en hacer una adaptación a otras versiones que he dado del curso, pero dado que sucedió no hace mucho que ayudé a un amigo a presentar una tarea a través de una app en Android, quedó justo a la medida del tiempo disponible, asi que decidí explicar en el curso cómo hacer dicha aplicación.


¿Qué es lo que se puede hacer en 1 hora cuando ya conoces Android?

1. Un menu inicio que lleva a
Dos vistas compuesta que usa un webview y reutilizan un mismo layout.
2. Una opcíon que envía un mensaje para visualizar un video (uso de Intents para solicitar otras aplicaciones)
3. Diseño de 3 layouts vistoso y agradables:
  • Menu inicio
  • Vista + webView
  • Layout para un mensaje Toast
4. Diseño de 5 íconos para darle vida usando Gimp

DESCARGA DE PROYECTO EN ZIP AQUI

Requisitos para este proyecto

  1. Una AVD con al menos Android 2.2 o bien un celular con minimo Android 2.2 con opción de debug usb y orígenes desconocidos activados.
  2. Conexión a internet
Oportunidades de mejora

  1. Crear una clase unica para controlar a la vista con WebView y enviarle la url a desplegar por medio del Intent que la invoca.
  2. Agregar ejemplo para compartir los datos de la app mediante un Intent hacia todas las redes sociales y medios disponibles





Arquitectura de la aplicación


Algunas capturas de pantalla


















E1- Primer programa para aprender Android

Esta entrada es para compartirles la estructura del primer ejercicio que imparto en mi curso de Inicio en la programación de Android, este curso se da cada fin o principio de semestre en la Facultad de Ingeniería en UNAM MOBILE.

El objetivo de dicho curso es proveer un marco de referencia general sobre Android, desde los conceptos historicos que llevaron a su creación, pasando por una breve explicación de su arquitectura y los componentes necesarios para comenzar a programar, hasta el uso de algunas de sus características mas divertidas.

Los temas, entrando en materia de desarrollo, que abarca el curso son:

  1. Arquitectura de un proyecto de Android
  2. Uso de layouts para generar diseños originales
  3. Uso de estilos para generar diseños atractivos
  4. Uso de widgets para facilitar y enriquecer las interfaces
  5. Arquitectura basica de un programa y el patron MVC
  6. Uso del sistema de comunicación entre Actividades (Intents)
  7. Uso de algunos recursos de HW
A la par que se desarrollan estos temas se van construyendo los elementos para tener al final una aplicación funcionando. En este caso el ejemplo E1 consiste en un juego de Piedra Papel o Tijera y su construcción esta pensada para un curso de 20 Horas.

No olviden seguir a @unam_mobile y buscarnos en Facebook para enterarse de todos los cursos que se imparten.

Arquitectura  de la aplicación



Capturas de pantalla







domingo, 2 de octubre de 2011

Administración de proyectos móviles

Desde que trabajo no había tenido tiempo de publicar una entrada, han pasado muchas cosas desde entonces, lo cual es muy grato, y poco a poco lo iré contanto, por ahora quiero hacer una entrada para mencionar mi proyecto de tesis que no es si no un proceso de gestión para proyectos de desarrollo movil guiado por un proceso automatizado en la aplicación ProcessMaker.

sábado, 30 de abril de 2011

Netbeans + Android SDK + Debugging Androidx86 VM

Since my netbook resources aren't enough to support virtual devices from SDK, it's easier to set up a vm using VirtualBox, and configure adb server to point to this machine IP.

I also have Netbeans installed, so this was a great opportunity to test the Netbeans Android development plugin. This is something experimental, Eclipse works fine enough. But's let's give it a try.

First Steps
The way to try this configuration is based on resources from the following wiki's:



Coments: since you cant install all this resources werever you want, i'll use the following tags:

ANDROID_VM_IP = This is the virtual machine static ip given
HOST_IP_IN_VBOXNET= This is the host machine in the same network than virtual machine, eg vboxnet0
ANDROID_SDK_PATH= This is the path where the Android SDK is installed, ej: /usr/share/android/
PROJECT_PATH= This is the path were your Netbeans project is located, eg. /home/my_user/NetbeansProjects/MyProjectFolder

Adb settings

1. use adb

In the VirtualBox network configuration, it is simplest to configure it for Host-Only or Bridged.
boot up Android iso image on the VirtualBox.
setup ethernet (normally, it will do DHCP by default)
find the IP address of the android VM, by going to the console alt-f1 and then typing: netcfg
you can go back to the UI by pressing alt-f7
on you host machine, go to
cd ANDROID_SDK_PATH/platform-tools
./adb kill-server
./adb connect ANDROID_VM_IP:5555, after this command, you should see something like below
* daemon not running. starting it now *
* daemon started successfully *
ANDROID_VM_IP:5555
./adb logcat to dump the debug log
Now, about my settings:

  • Virtual machine is using host-only network, usually called as vboxnet0
Default segment is 192.168.56.0/24
vboxnet0 Link encap:Ethernet HWaddr 0a:00:27:00:00:00
inet addr: HOST_IP_IN_VBOXNET Bcast:192.168.56.255 Mask:
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:17 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2637 (2.5 KiB)

But this can be done using bridged network or NAT if Internet access is needed, the instructions are explained on link given from AndroidX86.
  • Android is using static IP from current the configured segment


  • Android OS is configured to accept applications from any sources:
Settings>Development>



Now everything should work as usually.

Netbeans IDE


Next step is test Netbeans. Create a new project once the plugin has been installed:




Set a name and activity class:



And that's all, a basic app project tree is created:




And changing the source code from the main activity:

package yesica.tests.helloworld;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class YesicaHelloWorld extends Activity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello, This is a Android x86 VM");
setContentView(tv);
}

}

Building the app:
Right click on the project name, and then in Build, option.
We must see something like this:

Creating output directories if needed...
Compiling aidl files into Java classes...
Compiling RenderScript files into Java classes and RenderScript bytecode...
Generating R.java / Manifest.java from the resources...
compile:
ANDROID_SDK_PATH/tools/ant/main_rules.xml:384: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
Compiling 2 source files to PROJECT_PATH/Android-helloworld/bin/classes
Converting compiled files and external libraries into PROJECT_PATH/Android-helloworld/bin/classes.dex...
Packaging resources
Creating full resource package...
Creating Android-helloworld-debug-unaligned.apk and signing it with a debug key...
debug:
Running zip align on final apk...
Debug Package: PROJECT_PATH/Android-helloworld/bin/Android-helloworld-debug.apk
And using adb to install it:

$ ./adb install PROJECT_PATH/Android-helloworld/bin/Android-helloworld-debug.apk
And there will be an output like this:
265 KB/s (13470 bytes in 0.049s)
pkg: /data/local/tmp/Android-helloworld-debug.apk
Success

Using Netbeans, click on the run button, and it will prompt to select a device, we should see our VM:



after selecting the device, the Output window will show:

Package Android-helloworld-debug.apk deployed
Starting activity yesica.tests.helloworld.MainActivity on device ANDROID_VM_IP:5555
ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=yesica.tests.helloworld/.MainActivity }


and we see on our VM:


Removing App

To remove the application, we use the Aplication manager/uninstaller from Settings>Applications

Final Comments

[working on the final review of this, with bugs and limitations found]

martes, 5 de abril de 2011

Bienvenida

Este es un nuevo proyecto aun esta en construcción.
Va ligado a mi tesis y a mis hobbies.