You are on page 1of 4

Vistas

Una vista es un objeto cuya clase base es "android.view.View". Es una estructura de datos
cuyas propiedades almacenan el esquema y contenido para una determinada área rectangular
de la pantalla. Un objeto "View" manipula el dimensionamiento y esquema, realiza el pintado,
controla los cambios de foco, desplazamiento de áreas y teclado/gestos para el área de la
pantalla que representa.

La clase "View" sirve de base para los "widgets", que son un conjunto de subclases
implementadas completamente que dibujan elementos interactivos en la pantalla. Los "widgets"
manipulan sus propios dimensionamientos y pintado, de tal forma que tú puedes usarlos para
construir tus propias UI mucho más rápido. La lista de "widgets" disponibles incluye: "Text",
"EditText", "InputMethod", "MovementMethod", "Button", "RadioButton", "Checkbox" y
"ScrollView".

Grupos de vistas

Un "ViewGroup" es un objeto de la clase "android.view.Viewgroup". Como su nombre lo indica,


un grupo de vistas es un tipo especial de objeto "View", cuya función es contener y administrar
un conjunto subordinado de "View" y otros "ViewGroup". Los "ViewGroup" nos permiten agregar
una estructura a nuestras "UI" y así construir elementos de pantalla mucho más complejos que
puedan ser manipulados como un único elemento.

La clase "ViewGroup" sirve de clase base para crear esquemas, los cuales son un conjunto de
subclases implementadas completamente que provee de los tipos más comunes de elementos
de pantalla. Los esquemas nos entregan una forma de construir una estructura para un conjunto
de "View".

Un árbol jerárquico de UI

En la plataforma Android, tú puedes definir una "Activity" con UI usando un árbol de "View" y
nodos de "ViewGroup", tal como lo muestra el diagrama que está a continuación. El árbol puede
ser simple o complejo según tus necesidades, y puede ser construido usando un conjunto
predefinido de "widgets" y elementos de Android o tipos de "View" con características especiales
que tú hayas creado.

Para enlazar el árbol a la pantalla y así efectuar su visualización, nuestra actividad "Activity"
llama a sus método "setContentView()" y pasa la referencia una referencia al objeto del nodo
raíz. Una vez que el sistema Android tiene una referencia al objeto del nodo raíz, éste puede
trabajar directamente con el nodo para invalidar, medirlo y dibujar el árbol. Cuando tú "Activity"
se activa y recibe el foco, el sistema notifica a tu "Activity" y le solicita al nodo raíz que mida y
dibuje el árbol. Entonces, el nodo raíz le solicita a sus nodos hijos que se dibujen así mismo, a
su vez cada nodo de grupo de vistas del árbol es responsable de dibujar sus nodos hijos
directos.

Como se mencionó previamente, cada "ViewGroup" tiene la responsabilidad de medir su


espacio disponible, posicionar sus hijos dentro del esquema y llamar al método "Draw()" por
cada uno de sus hijos para que se dibujen a sí mismos. Los hijos podrían solicitar una ubicación
y tamaño específico al padre, pero es el objeto padre quien tiene la última decisión con respecto
a qué tan grande cada hijo puede ser.
LayoutParams: ¿Cómo especificar la posición y tamaño de un hijo?

Cada "ViewGroup" usa una clase anidada que hereda de "ViewGroup.LayoutParams". Esta
subclase contiene tipos de propiedades que definen el tamaño y posición de un hijo en
propiedades que son apropiadas para esa clase de "ViewGroup".

Cada subclase de "LayoutParams" tiene su propia sintaxis para asignar sus valores. Cada
elemento hijo debe definir un "LayoutParams" que sea apropiado para su padre, aunque éste
último podría definir un "LayoutParams" diferente para sus hijos.

Todos los incluyen ancho y alto. Muchos incluso tienen márgenes y contorno. Tú puedes indicar
un ancho y alto determinados, pero probablemente no lo harás de manera frecuente. Lo más
probable es que dejarás que tu vista se auto dimensione al tamaño de sus contenidos o tan
grande como el objeto que lo contiene lo permita.

3.- Identificar la jerarquía de clases en relación al tema específico de cada estudiante. Explique
la jerarquía de clases y su relación con el código de su aplicación

Para la creación de la Interfaz de Usuario con Pestañas, vamos a crear y utilizar los siguientes
componentes Android:
● CoordinatorLayout
● AbbBar
● ToolBar
● TabLayout
● ViewPager
● Fragments
● FragmentsPagerAdapter

Un Contenedor principal un CoordinatorLayout es un tipo de layout que nos va a facilitar la tarea


de coordinar los componentes que pongamos en su interior, sobre todo en las tareas de
animación.

Entonces lo siguiente que haremos será implementar la Appbar. Recordaros que la Appbar es
básicamente un contenedor vertical (un LinearLayout) donde implementaremos a su vez dentro
de ella, la barra de herramientas (Toolbar) y, debajo de esta, las pestañas o Tabs mediante el
componente TabLayout.

Debajo del bloque de la Appbar, lo que haremos será poner un ViewPager. Este componente
será el encargado de gestionar el cambio de secciones cuando hagamos el deslizamiento
horizontal (Swipe) en la pantalla.

El ViewPager va a necesitar la ayuda de un adaptador, que será el encargado de proporcionar al


ViewPager la página que tenga que mostrar. Un ViewPager funciona mayormente con
Fragments para facilitar la gestión del ciclo de vida (LifeCycle) de cada página.

4.- Referencias en relación a la aplicación de estándares de desarrollo de aplicaciones de


software

El estándar que se usó en el desarrollo de está aplicación fueron usados basada en Native RMA
(Native Resident Mobile Application) O Aplicación Móvil Residente Nativa. Se trata de las
aplicaciones que se instalan en el dispositivo que se se han desarrollado de forma específica
para una determinada plataforma conforme al SDK (Software Development Kit) correspondiente.

Este tipo de aplicaciones se caracterizan por:


● Tener un desarrollo para la plataforma destino
● Disponer de un lenguaje de programación específico para cada plataforma
● Tener un conjunto de herramientas de desarrollo recomendadas por el fabricante
● Explotar las capacidades nativas del dispositivo

Desde un punto de vista de los costes de desarrollo está opción es un desarrollo completo y
recursos específicos por plataforma destino donde se publicara la aplicación.

Referencias
Anon, (2017). [online] Available at: http://luis.izqui.org/resources/ProgOrientadaObjetos.pdf
[Accessed 18 Jul. 2017].

Anon, (2017). Documento de los Estándares. [online] Available at:


http://www.euskadi.eus/contenidos/informacion/guia_estandares_tecnologicos/es_687
6/adjuntos/Guia%20tecnica%20-%20Desarrollo%20soluciones%20moviles.pdf
[Accessed 18 Jul. 2017].

Developer.android.com. (2017). Object | Android Developers. [online] Available at:


https://developer.android.com/reference/java/lang/Object.html [Accessed 18 Jul. 2017].
Developer.android.com. (2017). TabLayout | Android Developers. [online] Available at:
https://developer.android.com/reference/android/support/design/widget/TabLayout.html
[Accessed 18 Jul. 2017].

GitHub. (2017). codepath/android_guides. [online] Available at:


https://github.com/codepath/android_guides/wiki/Google-Play-Style-Tabs-using-
TabLayout [Accessed 18 Jul. 2017].

You might also like