sábado, 31 de octubre de 2015

Como instalar Android Studio en Windows

Android Studio es la nueva IDE desarrollada por Google para que los desarrolladores puedan crear sus aplicaciones de una forma más sencilla. Fue presentada en el pasado Google IO y ya se encuentra disponible para descargar pese a estar en fase beta.

El uso de este IDE es idéntico en cualquier sistema operativo. En este artículo os vamos a enseñar a configurar Windows y a instalar Android Studio en vuestro sistema.

Preparar Windows para utilizar Android Studio

En primer lugar, al igual que los demás sistemas operativos, debemos descargarnos e instalar el JDK de Java.

Para ello accedemos a la página de Oracle.
  
Una vez allí seleccionaremos la plataforma JDK 8u65 (o la que sea más actual). Nos aparecerá una lista con las descargas disponibles para el sistema. Seleccionaremos el archivo de Windows correspondiente a la arquitectura de nuestro PC (32 o 64 bits).
  
Una vez descargado instalaremos el JDK en nuestro sistema. Ejecutamos el archivo que hemos descargado y comenzará la instalación.

Una vez finalizada la instalación ya tenemos nuestro equipo listo para ejecutar Android Studio.
Descargar Android Studio


Debemos hacer clic sobre “download Android Studio” y comenzará la descarga de un archivo ejecutable. Esperamos a que finalice la descarga y ya tendremos el IDE en nuestro equipo.

Instalación y ejecución.

En primer lugar debemos instalar el archivo descargado anteriormente en nuestro equipo. Para ello haremos doble clic sobre él y se abrirá un asistente de instalación.

Se instala como una aplicación normal, no tiene ninguna dificultad. Una vez finalizada la instalación ya tenemos Android Studio preparado para funcionar.

Interfaz de Usuario Android.

La interfaz de usuario se define en los archivos XML del directorio res/layout. Cada pantalla tendrá un código XML diferente.

Diseñar una pantalla usando Java puede resultar complejo y poco eficiente, sin embargo, Android soporta XML para diseñar pantallas y define elementos personalizados, cada uno representando a un "subclase" especifica de view. Se pueden crear pantallas de la misma manera que se diseñan ficheros HTML.

Cada fichero describe un layout (una pantalla) y cada layout a su vez puede contener otros elementos. Para gestionar la interfaz de usuario, Android introduce las siguientes terminologías:

 * View: Una view es un objeto cuya clase es android.view.View. Es una estructura de datos cuyas propiedades contienen los datos de la capa, la información específica del área rectangular de la pantalla y permite establecer el layout. Una view tiene: layout, drawing, focus change, scrolling, etc...

La clase view es útil como clase base para los widgets, que son unas subclases ya implementadas que dibujan los elementos en la pantalla. Los widgets contienen sus propias medidas, pero puedes usarlas para construir tu interfaz más rápidamente. 
La lista de widgets que puedes utilizar incluye Text, EditText, InputMethod, MovementMethod, Button, RadioButton, CheckBox, y ScrollView.

 * Viewgroups: Un viewgroup es un objeto de la clase android.view.Viewgroup, como su propio nombre indica, un viewgroup es un objeto especial de view cuya function es contener y controlar la lista de views y de otros viewgroups. Los viewgroups te permiten añadir estructuras a la interfaz y acumular complejos elementos en la pantalla que son diseccionados por una sola entidad.

La clase viewgroup es útil como base de la clase layouts, que son subclases implementadas que proveen los tipos más comunes de los layouts de pantalla. Los layouts proporcionan una manera de construir una estructura para una lista de views.

  * Árbol estructurado de la interfaz UI: En la plataforma Android tú defines una Activity del UI usando un árbol de nodos view y viewgroups, como vemos en la imagen de abajo. El árbol puede ser tan simple o complejo como necesites hacerlo, y se puede desarrollar usando los widgets y layouts que Android proporciona o creando tus propios views.




    
Los views y viewgroups deben estar contenidos en los layouts, los cuales contienen otros elementos presentes en una vista. Dentro de cada layout podemos poner todos los elementos necesarios, incluidos otros layouts. Así conseguiremos estructurar la pantalla de la manera deseada. Existen una gran variedad de layouts, en función de su posicionamiento en la pantalla y se describen a continuación algunos de ellos:

* LinearLayout: Se les conoce como contenedores y sirven para reorganizar los elementos de nuestra aplicación. Sus hijos son los views, viewgroup u otros layouts. Nos permitirán alinear sus hijos en una única dirección, ya sea horizontal o vertical como se muestra en las siguientes imágenes. La orientación predeterminada es horizontal.
  
             

     
  
 * RelativeLayout: En este caso todos los elementos van colocados en una posición relativa a otro. Aquí podemos jugar con las distancias entre elementos en la pantalla, la cual se expresa en pixeles. A continuación se muestra un ejemplo:

  
* Absolute layout: Coloca los elementos en posiciones absolutas en la pantalla, teniendo en cuenta que la posición (0,0) es el extremo superior izquierdo de la pantalla. A continuación se puede ver un ejemplo para entender mejor la explicación anterior. El absolute layout especifica la ubicación exacta de sus hijos.

 * TableLayout: permite colocar los elementos en forma de tabla. Se utiliza el elemento para designar a una fila de la tabla. Cada fila puede tener uno o más puntos de vista. Cada vista se coloca dentro de una fila en forma de celda.  

 * FrameLayout: Es un marcador de posición que puede usarse para mostrar una única vista. Se pueden agregar múltiples puntos de vista a un FrameLayout pero cada uno se acumulará en la parte superior izquierda de la anterior. A continuación mostramos un ejemplo ilustrativo: 






  * ScrollView: Es un tipo especial de FrameLayout ya que permite a los usuarios desplazarse por una serie de puntos de vista que ocupan más espacio que el despliegue físico. El scrollView solo puede contener un viewGroup y suele ser LinearLayout.

Anatomía de una Aplicación Android.

Toda aplicación Android esta constituida por 4 bloques, no necesariamente deben estar todos en la misma. Estos bloques son:
  • -       Actividad (Activity).
  • -       Receptor de Intenciones (IntentReceiver).
  • -       Servicios (Services).
  • -       Proveedores de contenido (ContentProvider).

Como no son obligatorios, los que usemos deben estar definidos en un archivo llamado AndroidManifest.xml. Este es un archivo XML en el que declaras los componentes de tu aplicación, sus capacidades y sus requerimientos.

Actividad (Activity).

Una actividad es el bloque más usado en las aplicaciones Android. Generalmente, una actividad es una pantalla individual en la aplicación. Cada actividad se implementa como una clase que hereda de Activity, lo que hará que tu clase despliegue una UI compuesta de Views y responda a eventos. Lo común es que una aplicación consista de múltiples pantallas. Por ejemplo, una aplicación de mensajería podría usar una pantalla para mostrar el listado de contactos y en una segunda pantalla para escribir el mensaje al contacto seleccionado; y otras pantallas para ver cambiar la configuración. Cada una de estas pantallas debe ser implementada como una Activity. La navegación entre las pantallas se hace iniciando una nueva Activity. En algunos casos, una Activity podría devolver un valor a la Activity anterior, por ejemplo la Actividad#1 podría permitir seleccionar una foto y esta foto sería devuelta a la Activity que hizo el llamado a Actividad#1.

Cuando una pantalla es abierta, la previa es puesta en pausa y agregada al History Stack. Posteriormente, el usuario puede navegar hacia previas pantallas invocando las pantallas almacenadas en el History Stack. Las pantallas también pueden ser removidas del History Stack cuando resulta inapropiado su almacenamiento. Android mantiene un History Stack por cada una de las aplicaciones que son activadas desde la Home Screen.

Receptor de Intenciones (IntentReceiver).

Antes de poder explicar que es el receptor de intenciones o IntentReceiver debemos conocer que son intenciones.

Android usa una clase especial llamada Intent para moverse de una pantalla a otra. Un Intent describe lo que una aplicación desea hacer. Las dos partes más importantes de la estructura de datos de un Intent son la acción y los datos sobre los cuales se actuará. Los valores típicos para la acción son MAIN, VIEW, PICK, EDIT, etc. Los datos son expresados como una URI. Por ejemplo, para ver la información de contacto de una persona podría ser necesario crear un Intent con la acción VIEW y los datos definidos como una URI que representa a esa persona.

Una clase relacionada con Intent es IntentFilter. Si bien un Intent es una solicitud para realizar algo, un IntentFilter es una descripción de lo que intenta hacer una Activity (o de lo que intenta recibir). Una Activity que es capaz de desplegar la información de contacto de una persona podría declarar que sabe cómo tratar la acción VIEW cuando es aplicada a los datos que representan a la persona. Una Activity declara sus IntentFilter’s en el archivo "AndroidManifest.xml".

La navegación de pantalla a pantalla es ejecutada a través de la resolución de intentos. Para navegar hacia adelante, una Activity llama startActivity(myIntent). Entonces, el sistema examina todos los IntentFilter’s que existen para las aplicaciones instaladas y toma aquellas Activity cuyos IntentFilter mejor se acercan a myIntent. La nueva Activity es informada del Intent, lo que causa que sea activada. El proceso de resolución de Intent ocurre en tiempo de ejecución cuando startActivity es llamado, lo cual tiene dos beneficios claves:

-       Una Activity puede reutilizar funcionalidades de otras componentes con sólo hacer un una solicitud en la forma de Intent.
-       Una Activity puede ser reemplazada en cualquier momento por una nueva Activity que tenga un IntentFilter equivalente.

Por lo tanto, tú puedes utilizar un IntentReceiver cuando quieras programar tu aplicación para que se ejecute como respuesta a un evento. Por ejemplo, cuando recibes una llamada, cuando la red de datos está disponible o cuando es media noche. Los IntentReceiver’s no despliegan UI, sin embargo ellos podrían utilizar el NotificationManager para avisar al usuario que algo interesante está pasando. Los IntentReceiver’s son registrados en el archivo "AndroidManifest.xml", pero también pueden ser registrados programáticamente con el uso de Context.registerReceiver(). Tu aplicación no requiere estar corriendo para que sus IntentReceiver’s puedan ser llamados. Si tu aplicación no estuviera corriendo, el sistema la puede activar cuando uno de sus IntentReceiver’s sea disparado. Las aplicaciones también pueden transmitir sus propios Intents a otras aplicaciones a través de Context.broadcastIntent().

Servicios (Services).

Un Service es una aplicación que se mantiene activada por un largo tiempo y no despliega una UI. Un ejemplo es un programa que reproduce archivos mp3 desde una lista de música, mientras el usuario realiza otras actividades. En este caso, el programa podría iniciar un servicio con Context.startService() y de esa forma reproducir la música sin necesidad de usar la pantalla. El sistema mantendrá el servicio de reproducción de música corriendo hasta que finalice. Si quieres aprender más sobre la prioridad que es dada a los servicios por el sistema, lee "Ciclo de vida de una aplicación Android". Es posible conectarse a un Service (y activarlo si no estuviera corriendo) haciendo uso del método Context.bindService(). Una vez que la aplicación está conectada al servicio, la comunicación entre tu aplicación y el servicio se realiza a través de la interfaz que el servicio expone. Para nuestro ejemplo del reproductor mp3, está interfaz podría permitir hacer pausa o saltar a una nueva canción.

Proveedores de contenido (ContentProvider).


Las aplicaciones puedes almacenar sus datos en archivos, una base de datos SQLite o cualquier otro mecanismo. Sin embargo, un ContentProvider es de utilidad cuando los datos de tu aplicación deben ser compartidos con otras aplicaciones. Un ContentProvider es una clase que implementa un conjunto estándar de métodos para que otras aplicaciones almacenen o recuperen el tipo de datos que el ContentProvider manipula.

Arquitectura de Aplicaciones Android

Toda aplicación Android debe o puede contener uno de estos servicios:
-       Vistas (Views).
  • -       Proveedores de contenido (Content Providers).
  • -       Administrador de recursos (Resource Manager).
  • -       Administrador de notificaciones (notification Manager).
  • -       Administrador de actividades (Activity Manager).

1.    Las vistas (views) o widgets es todo aquello que representan controles gráficos, como listas, grillas, botones, web browser, mapas, etc.
2.    Los proveedores de contenido (content providers) sirven para acceder a los datos o contenidos de otras aplicaciones, ejemplo:
a.    Contactos.
b.    Mapas.
c.    Imágenes.
d.    Videos.
3.    El administrador de recursos (resource manager) proporciona accesos a recursos que no son código. Como strings, imágenes, archivo de interfaz gráfica.
4.    El administrador de notificaciones (notification manager), nos permite emitir alertar o notificaciones a la barra de estado o notificaciones de Android.

5.    El administrador de actividades (activity manager) servirá para proporcionar la navegación por la aplicación y como control del ciclo de vida de la misma.

jueves, 20 de mayo de 2010

Géneros ortográficos, nunca es tarde para revisar el aprendizaje!

Géneros ortográficos 
En español, el plural en masculino implica ambos géneros. Así que al dirigirse al público NO es necesario ni correcto decir "mexicanos y mexicanas", "chiquillos y chiquillas", "niños y niñas", etc., como el ignorante del Ex Presidente Fox puso de moda y hoy en día otros ignorantes (políticos y comunicadores) a nivel nacional por TV continúan con el error, inclusive el Presidente Calderón.

Decir ambos géneros es correcto, SÓLO cuando el masculino y el femenino son palabras diferentes, por ejemplo: "mujeres y hombres", "toros y vacas", "damas y caballeros", etc.

Ahora viene lo bueno: Detallito lingüístico ¿Presidente o presidenta?  
Aprendamos bien el español y de una vez por todas: 
NO ESTOY EN  CONTRA DEL GÉNERO FEMENINO, SINO DEL MAL USO DEL LENGUAJE. POR FAVOR, DÉJENSE YA DE INCULTURA, DESCONOCIMIENTO U OCURRENCIA: ¿Presidente o presidenta? 

En español existen los participios activos como derivados verbales: Como por ejemplo, el participio activo del verbo atacar, es atacante; el de sufrir, es sufriente; el de cantar, es cantante; el de existir, existente; etc.

¿Cuál es el participio activo del verbo ser?: El participio activo del verbo ser, es "ente". El que es, es el ente. Tiene entidad. Por esta razón, cuando queremos nombrar a la persona que denota capacidad de ejercer la acción que expresa el verbo, se le agrega la terminación 'ente'.
 

Por lo tanto, la persona que preside, se le dice presidente, no presidenta, independientemente de su género.

Se dice capilla ardiente, no ardienta. Se dice estudiante, no estudianta. Se dice adolescente, no adolescenta. Se dice paciente, no pacienta. Se dice comerciante, no comercianta...

La Sra. Cristina Fernández de Kirchner, para aquellos que andan atrasados de noticias, es la actual presidente de Argentina... y su esposo no sólo hace un mal uso del lenguaje por motivos ideológicos, sino por ignorancia de la gramática de la lengua española. Y ahora en Venezuela, con el decadente socialismo, también la bestia de presidente que tienen, hace uso de estas barbaridades.

Un mal ejemplo sería: La pacienta era una estudianta adolescenta sufrienta, representanta e integranta independienta de las cantantas y también atacanta, y la velaron en la capilla ardienta ahí existenta.
Qué mal suena ahora Presidenta, ¿no? Es siempre bueno aprender de qué y cómo estamos hablando. 

Caso contrario en Chile, donde lo aplican bien: la Sra. Bachelet es Presidente. 


Pasemos el mensaje a todos nuestros conocidos latinoamericanos, con la esperanza de que llegue a la Casa Rosada y a Miraflores, para que esos ignorantes e iletrados hagan buen uso de nuestro hermoso idioma. 


Atentamente,

W. Molina
Licenciado en Castellano y Literatura
(y no en Castellana y Literaturo)

Una buena lección que nos viene de HISPANOAMÉRICA (yo no sé donde queda Latinoamérica) 


Fuente: EMail que me enviaron.