Sobre Android

Algunos aportes sobre Android y como inicie sobre esta nueva etapa.

Ampliar Conocimientos en Android, JavaScript y HTML

Hola Coleg@s.

Les comparto para los que no conocen a NextU, este es un sitio de elearning para ampliar los conocimientos en Android, JavaScript y HTML, y lo más interesante es que al final del curso recibes un certificado, yo personalmente me inscribí en el curso de Android, el curso inicia con un marco conceptual bastante bueno de JAVA, muy comprensible para los que no estan muy familiarizados con la programación, para lo que ya estan inmersos en este campo, pues refrescar conceptos no cae nada mal.

Otra aspecto interesante es que es brindando en lenguaje latino, por lo que puedes comprender y captar algunos aspectos con mayor claridad de los temas que el profesor brinda.

Les adjunto el link http://www.nextuniversity.com/ y  si  tienes las posibilidades económicas de aquirirlo, ni lo pienses!; Pues en este tipo de temas un certificado que le respalde es de suma importancia para su hoja de vida profesional.

Buena Suerte.

Sobre BlueStacks app Player

Hace algunos días tenia la tarea de revisar el funcionamiento de una aplicación “en desarrollo” en Android, la revisión era sencilla pues era una revisión de inspección, tambien le podriamos llamar una “prueba de caja negra” para ver el comportamiento de la aplicación y si cumplía con algunos requerimientos establecidos.

El app contaba con ciertas características puntuales, entre ellas probar el funcionamiento del Push Notification. Cuando lo probaba con mi emulador AVD ( Android Virtual Device) el push no funcionaba, el detalle para este tipo de ejercicios o pruebas es que los emuladores no tienen id-unico de dispositivo, o conocido como “ANDROID_ID”, y tampoco contaba con un teléfono a mano para instalar el .apk para probarlo. Luego a los días el desarrollador que estaba a cargo de la aplicación me comunico que podía probar el app con BlueStacks app Player, que viene siendo un emulador de android para tu PC, lo descargue, lo instale, e incluso reconoció algunos .apk que tenia en mi máquina y también los pude probar.

Muy buena Herramienta para este tipo de cosas, Ah! y tambien puedes jugar tus juegos de Android en tu PC. :)

Android ListView con filtro de búsqueda

En mi tiempo de ocio y como parte de mi proceso de aprendizaje en Android me di la tarea de como crear un listview con un filtro de búsqueda, luego al darle click al Item, me mostrara en un mensaje Toast el item seleccionado de la lista.

Aquí les dejo el código por si lo llegan a necesitar.

Creamos dos layouts el principal y el de la lista items.

lista_tokens.xml (layout principal)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

 <!-- Editext para busqueda  -->
    <EditText android:id="@+id/inputSearch"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:hint="Código Proyecto.."
        android:inputType="textVisiblePassword"/>    

     <!-- List View de elementos  -->
    <ListView
        android:id="@+id/list_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

list_item.xml ( Layout que sera utilizado para cargar cada item del arreglo o vector )

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    
    
 <!-- Codigo de Proyecto  -->
    <TextView android:id="@+id/codigo_token"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="10dip"
        android:textSize="16dip"
        android:textStyle="bold"/> 
</LinearLayout>

Mi actividad principal se llama: lista_proyectos.java ( recordar que esto tiene que estar en el AndroidManifest.xml)

lista_proyectos.java

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class lista_proyectos extends Activity {
    
    private ListView lv;
    
    ArrayAdapter<String> adapter;
    
    EditText inputSearch;
    

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.lista_tokens);
        
        
        // Arreglo de codigos de proyecto.
        String tokens[] = {"ABCD","BCD","EDFT","JGUR","AJHE","IKQ2","LKWW","W4T6","EMA1"};

        lv = (ListView) findViewById(R.id.list_view);
        lv.setTextFilterEnabled(true);
        inputSearch = (EditText) findViewById(R.id.inputSearch);
    
        adapter = new ArrayAdapter<String>(this,R.layout.list_item, R.id.codigo_token,tokens);
        
        lv.setAdapter(adapter);
        
        
        // Evento para cuando doy click en algun elemento de la lista ( ListView )
        lv.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long id) {
                // Mensaje Toast del elemento seleccionado.
                Toast.makeText(getApplicationContext(), adapter.getItem(position), Toast.LENGTH_SHORT).show();
                
            }
            
        });
        
        
        /* Activando el filtro de busqueda */
        inputSearch.addTextChangedListener(new TextWatcher() {
            
            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
                // TODO Auto-generated method stub
                
                lista_proyectos.this.adapter.getFilter().filter(arg0);
            }
            
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                    int arg3) {
                // TODO Auto-generated method stub
                
            }
            
            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
                
            }
        });
        
   }

}    

Ejemplo de su aplicación en funcionamiento:

listview

Mi primera lección Sobre Android

Bueno!, como les comente anteriormente y después de haber instalado todo lo necesario para empezar a programar después de muchísimos años de programar sobre PHP, MySQL, Jquery y todo lo que tenga que ver con Web bajo tecnología LAMP, entre al mundo del Android.

Aquí les dejo  mi primer script con algunas instrucciones.

Descripción del app (funcionalidad): Crear un aplicación con una imagen, con un botón y un texto, cuando damos click en el botón debe cambiar el contenido de ese texto por otro texto; Simple! vamos a la obra:

package app.cyberfuel.clase_1_ejercicio;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class PantallaInicial extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pantalla_inicial);
        // 
        Button b1 = (Button) findViewById(R.id.btn_principal);
        b1.setOnClickListener(new View.OnClickListener() {

			public void onClick(View v) {

			   int duracion = Toast.LENGTH_SHORT;
		       Toast toast = Toast.makeText(getApplication(),"Dió Click en el botón", duracion);
		       toast.show();

		       TextView tv = (TextView) findViewById(R.id.mensaje_principal);
		       tv.setText("Ohh! Me diste Click");   				

			}//public void onClick(View v) {
        });// b1.setOnClickListener(new OnClickListener() {        

    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.pantalla_inicial, menu);
        return true;
    }		

}

El resultado de tu aplicación debería ser algo así:

Pantalla 1 en la AVD ( Android Virtual Device):


Pantalla 2 ( Android Virtual Device):

De momento eso seria mi primera lección de Android, posiblemente complicaremos mas las cosas en las próximas lecciones que estaré recibiendo.

Gracias Profe! Julio Marín!

Como crear un Proyecto en Android

Lo que debes tener claro antes de crear un proyecto en Android, debes tener instalado el IDE (Explipse IDE for Java Developers) lo puedes descargar de la siguiente URL:

http://developer.android.com/sdk/index.html

Nos vamos nuestro programa ejecutable que tenemos en nuestro escritorio o menu, levantado el IDE, nos vamos a crear el proyecto:

Luego, nos aparece una ventana donde debemos llenar los datos del proyecto, es importante que sepas detalles como que el “Application Name” puede contener espacios, mientras que el “Project Name” no lo permite “estricto”, el package name estará asociado a un identificador único de tu aplicación, por otro lado debes seleccionar adecuadamente el SDK que vas a utilizar, pues si tu aplicación requiere de ciertos “comportamientos” o usos del dispositivo, algunas versiones “antiguas” del SDK no lo podría soportar.

A la ventana siguiente le damos unicamente click al botón de “Next”, a menos que desees cambiar la ubicación física de los archivos del proyecto, esto es el Workspace.

En esta ventana puedes adjuntar el icono de tu aplicación, colores de fondo de tu aplicacion, si lleva una imagen de background,  para efectos de este ejemplo vamos a darle next.

En esta ventana nos permite seleccionar el tipo de vista “el como se ve” que tendría la aplicación en mi dispositivo. Puedes seleccionar la otras opciones para que veas como muestra el preview, pero para efectos de nuestro ejemplo, seleccionaremos “Blank Activity” y “Next”

Por último y “MUY IMPORTANTE“, es dar un nombre correcto al nombre de tu actividad y muy relacionado al nombre de tu aplicación, se recomienda definir “un estandard” o “nomenclatura” porque cuando desarrollas apps para android y eres “vago” dando nombre incorrectos, resulta que tu aplicación o aplicaciones cuando son ejecutadas o relacionadas con los famosos “INTENTS” y las actividades al llamarse igual; tu teléfono te puede preguntar “Cual aplicación levanto” y te muestra varias, un comportamiento similar cuando quieres compartir/enviar un archivo que tu teléfono pregunta enviar por: mensaje, correo, twitter, facebook, algo como esto:

No! utilices: MainActivity

Le damos “Finish” y el resultado de tu proyecto debe ser similar a lo siguiente: