lunes, 12 de mayo de 2014

Acerca de las Interfaces de usuario (Views, ViewGroup y Layout)

Las interfaces gráficas para las aplicaciones en Android, se construyen en base a jerarquías de View y ViewGroup

View (vista): Esta clase representa el bloque de construcción básico para los componentes de la interfaz de usuario. Una vista ocupa un área rectangular en la pantalla, y es responsable por el dibujo y manejo de eventos. Vista es la clase base para los widgets, que se utilizan para crear los componentes de interfaz de usuario interactivos (botones, campos de texto, etc.) La subclase ViewGroup es la clase base para los diseños, que son contenedores invisibles que tienen otras vistas (u otros ViewGroups) y definen sus propiedades de diseño.

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 función 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.

 En la plataforma Android tú defines una Activity del UI usando un árbol de nodos view y viewgroups, como vemos en la imágen 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 imagenes. La orientación predeterminada es horizontal.

Horizontal

Vertical

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 <TableRow> 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 multiples 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.




jueves, 15 de noviembre de 2012

Introducción a Android

Que es Android?

Es un sistema operativo basado en Linux, con interfaces de programación Java. Para los que conocen Java existe el JDK (Java Development Kit), entonces para android es lo mismo el SDK (Software Development Kit) , el cual contiene todo lo necesario para desarrollar aplicaciones para este s.o. (sistema operativo). Esto incluye un compilador, debugueador y un dispositivo para emular. Android tiene su propia máquina virtual.

Android está desarrollado principalmente por google.
Android permite el procesamiento background, provee librerías de interfaces de usuario, soporta gráficos 2D y 3D utilizando librerías OpenGL, acceso a archivos de sistema y proporciona una base de datos SQLite incrustada.

Las aplicaciones en Android se basan en componentes, así estos pueden ser reusados para otras aplicaciones totalmente nuevas o de ámbito distinto.

Google Play (Android Marcket)


también llamada Play Store.
Google ofrece el servicio de Google Play en el que los programadores pueden ofrecer sus aplicaciones Android para los usuarios. Para los celulares de tipo smartphone (son telefonos que soportan un s.o.), Google Play viene incluido para que las personas puedan bajar aplicaciones. Google Play tambíen ofrece a los programadores el servicio de actualización que consiste en que si desarrollador sube una nueva versión de su aplicación, Google Play notificará a todas las personas que tienen instalada dicha aplicación de que existe una nueva versión y que esta lista para ser descargada.


Seguridad y Permisos

Durante la instalación de una aplicación en un sistema Android, el s.o. crea un único usuario y grupo para cada aplicación que se instala, esto es para que cada aplicación sea dueña de sus propios archivos y así una aplicación no puede accesar a otros archivos de sistema.

Cada aplicación al momento de ejecutarse crea su propio proceso, por lo que funciona aisladamente de las otras aplicaciones. Si se necesita compartir información entre una o más aplicaciones (Apps de ahora en adelante, viene de Aplications), se debe hacer explicitamente (por Service o ContentProvider).


Además Android contiene un sistema de permisos y permite predefinir estos permisos para determinadas tareas, pero también cada aplicación puede definir permisos adicionales. Para declarar los permisos necesarios se hace en su archivo de configuración AndroidManifest.xml. Por ejemplo, una aplicación puede declarar que requiere el acceso a la Internet.

Permisos de tener diferentes niveles. Algunos permisos se conceden automáticamente por el sistema Android, algunos son automáticamente rechazadas.

En la mayoría de los casos, los permisos solicitados serán presentados al usuario antes de la instalación de la aplicación. El usuario tiene que decidir si estos permisos se otorgan a la aplicación o no.

Si el usuario rechaza el permiso requerido por la aplicación, esta aplicación no se puede instalar. La comprobación de la autorización sólo se realiza durante la instalación, los permisos no se puede negar ni conceder después de la instalación.

No todos los usuarios prestan atención a los permisos requeridos durante la instalación. Sin embargo, algunos usuarios lo hacen y escriben comentarios negativos de Google Play.