Documente Academic
Documente Profesional
Documente Cultură
MATRÍCULA: 61456
GRUPO: CC11
[LanceTalent, 2015] menciona que el mercado de las aplicaciones móviles no para de crecer. Son
muchas las empresas que no quieren dejar pasar la oportunidad de unirse a este negocio y crear una
aplicación que de respuesta a sus necesidades. Sin embargo, la mayoría desconocen qué tipos de
aplicaciones móviles existen y cuál es la mejor para ellos. A continuación se describen los tipos de
aplicaciones móviles que hay.
1. App nativas
Una aplicación nativa es la que se desarrolla de forma específica para un determinado sistema
operativo, llamado Software Development Kit o SDK. Cada una de las plataformas, Adroid, iOS o
Windows Phone, tienen un sistema diferente, por lo que si quieres que tu app esté disponible en
todas las plataformas se deberán de crear varias apps con el lenguaje del sistema operativo
seleccionado. Por ejemplo:
Cuando hablamos de desarrollo móvil casi siempre nos estamos refiriendo a aplicaciones nativas. La
principal ventaja con respecto a los otros dos tipos, es la posibilidad de acceder a todas las
características del hardware del móvil: cámara, GPS, agenda, dispositivos de almacenamiento y otras
muchas. Esto hace que la experiencia del usuario sea mucho más positiva que con otro tipo de apps.
Además las aplicaciones nativas no necesitan conexión a internet para que funcionen.
La descarga e instalación de estas apps se realiza siempre a través de las tiendas de aplicaciones
(app store de los fabricantes). Esto facilita el proceso de marketing y promoción que es vital para dar
visibilidad a una app.
2. Web App
Una aplicación web o webapp es la desarrollada con lenguajes muy conocidos por los
programadores, como es el HTML, Javascript y CSS. La principal ventaja con respecto a la nativa es
la posibilidad de programar independiente del sistema operativo en el que se usará la aplicación. De
esta forma se pueden ejecutar en diferentes dispositivos sin tener que crear varias aplicaciones.
Las aplicaciones web se ejecutan dentro del propio navegador web del dispositivo a través de una
URL. Por ejemplo en Safari, si se trata de la plataforma iOS. El contenido se adapta a la pantalla
adquiriendo un aspecto de navegación APP.
¿Puede considerarse esto una APP? En realidad la gran diferencia con una aplicación nativa
(además de los inconvenientes que se muestran en la tabla) es que no necesita instalación por lo que
no pueden estar visibles en app store y la promoción y comercialización debe realizarse de forma
independiente. De todas formas se puede crear un acceso directo que sería como “instalar” la
aplicación en el dispositivo. Las apps web móviles son siempre una buena opción si nuestro objetivo
es adaptar la web a formato móvil.
PhoneGap es es uno de los frameworks más utilizados por los programadores para el desarrollo
multiplataforma de applicaciones híbridas. Otro ejemplo de herramienta para desarrollar apps híbridas
es Córdova.
Para seleccionar el tipo de app más adecuada en cada situación, se deben analizar las ventajas e
inconvenientes de cada una y responder a varias preguntas, por ejemplo:
¿Tienes previsto modificar las acciones de la aplicación móvil o incorporar más funciones en el
futuro?
JUSTIFICACIÓN DE LA APLICACIÓN
El desarrollo de la aplicación se justifica por la resolución de una necesidad real. Muchos son los
niños que tienen dificultades para entender los conceptos de “Mayor” y “Menor” tal cual se los
explican en su salón de clases. Así, la idea es proporcionar una herramienta que sirva de apoyo para
que el niño se apropie con mayor facilidad de dichos conceptos a través de un juego sencillo y
divertido, considerando además que a la edad de los niños de tercer grado de primaria disponen ya
de un smartphone con características necesarias para ejecutar una aplicación de esta naturaleza.
DESARROLLO
Con base en lo anterior, se da respuesta a las siguientes interrogantes, dentro de esta sección de
Desarrollo:
Plataforma de desarrollo
Nombre de la aplicación
Objetivo de la aplicación
Icono de la aplicación
Plataforma de desarrollo
La aplicación se desarrollará para Android por lo cual a continuación se describe dicha plataforma de
desarrollo [Android Tutoriales Perú, 2011].
¿Qué es ANDROID?
Android es un software para dispositivos móviles que incluye un sistema operativo, middleware y
aplicaciones clave. El SDK de Android proporciona las herramientas y APIs necesarios para
comenzar el desarrollo de aplicaciones en la plataforma Android usando el lenguaje de programación
Java.
Características:
Soportes de audio comunes, vídeos y formatos de imagen (MPEG4, H.264, MP3, AAC, AMR,
JPG, PNG, GIF).
Arquitectura De Android
El siguiente diagrama muestra los componentes principales del sistema operativo Android.
Aplicaciones
Android se vende con un conjunto de aplicaciones básicas que incluye un cliente de correo
electrónico, programa de SMS, calendario, mapas, navegador, contactos, y otros. Todas las
aplicaciones se escriben usando el lenguaje de programación Java.
Plataforma De Aplicaciones
Los desarrolladores tienen pleno acceso a la misma plataforma de APIs utilizado por las aplicaciones
principales. La arquitectura de la aplicación está diseñada para simplificar la reutilización de
componentes, y cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación
podrá entonces hacer uso de esas capacidades (sujeto a restricciones de seguridad impuestas por la
plataforma). Este mismo mecanismo permite que los componentes sean reemplazados por el usuario.
Un rico y extensible conjunto de Vistas que se pueden utilizar para construir una aplicación,
incluyendo listas,redes, cajas de texto, botones, y incluso un navegador web embebido.
Content Providers que permiten a las aplicaciones de acceso a datos de otras aplicaciones
(por ejemplo, Contactos), o para compartir sus propios datos.
Resource Manager facilitar el acceso a los recursos no son de código como cadenas
localizadas, gráficos y archivos de diseño.
Notification Manager que permite a todas las aplicaciones para mostrar alertas personalizadas
en la barra de estado.
Activity Manager que gestiona el ciclo de vida de las aplicaciones y proporciona una
navegación backstack común.
Bibliotecas
Android incluye un conjunto de bibliotecas C/C++ utilizado por diversos componentes del sistema
Android. Estas capacidades están expuestos a los desarrolladores a través de la estructura de
aplicaciones para Android . Algunas de sus bibliotecas de núcleo son las siguientes:
System C library: Una aplicación derivado de BSD de la biblioteca del sistema estándar de C
(libc), en sintonía para dispositivos embebidos basados en Linux.
LibWebCore: Un navegador web moderno que alimenta tanto el navegador de Android y una
vista wev integrable.
3D libraries: Una aplicación basada en OpenGL ES 1.0 API, las librerías usan o aceleración de
hardware 3D(si esta disponible) o el incluido, altamente optimizado el 3D Software
Rasterizador.
SQLite: Un motor de bases de datos relacionales de gran alcance y ligero disponible para
todas las aplicaciones.
Android incluye un conjunto de bibliotecas del núcleo que proporciona la mayor parte de la
funcionalidad disponible en las bibliotecas del núcleo del lenguaje de programación Java.
Cada aplicación Android se ejecuta en su propio proceso, con su propia instancia de la máquina
virtual Dalvik. Dalvik ha sido escrito para que un dispositivo pueda ejecutar múltiples máquinas
virtuales de manera eficiente. La máquina virtual Dalvik ejecuta archivos ejecutables en el Dalvik
(.dex), formato que está optimizado para consumo de memoria mínima. La máquina virtual está
basada en registros y corre clases compiladas por un compilador de lenguaje Java que se han
convertido en el formato de dex. incluido el "dx" herramienta.
La máquina virtual Dalvik se basa en el kernel de Linux para la funcionalidad subyacente como
enhebrar y administración de bajo nivel de memoria.
Kernel De Linux
Android se basa en la versión 2.6 de Linux para el sistema de servicios básicos, tales como la
seguridad, la gestión de memoria, gestión de procesos, pila de red, y el modelo del controlador. El
núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de
software.
Por otro lado, Wikipedia [Android Studio. 2015] proporciona esta descripción de Android Studio,
plataforma oficial de desarrollo de aplicaciones para Android: Android Studio es un entorno de
desarrollo integrado (IDE) para la plataforma Android. Fue anunciado por Ellie Powers el 16 de mayo
de 2013. Android Studio está disponible para desarrolladores para probarlo gratuitamente. Basado en
IntelliJ IDEA de JetBrains, está diseñado específicamente para desarrollar para Android. Está
disponible para descargar para Windows, Mac OS X y Linux.
Características
La aplicación a desarrollar correrá en todos los dispositivos que tengan Android como sistema
operativo, de la versión Lollipop en delante.
La aplicación tiene por nombre “Adivíname”, y está dirigida a niños de 3 ro de primaria. La aplicación
ayuda a estos niños a diferenciar a través del juego el concepto de mayor y menor, proponiéndoles
que adivinen un número que genera aleatoriamente entre 1 y 100. Conforme el niño escribe números
la App le da pistas para ayudarlo a adivinar el número que generó aleatoriamente y que está en la
memoria. Los estimula dándoles puntos cada vez que “descifran” el número en memoria y llevando
un registro del mejor juego (el número que ha sido adivinado con el menor número de intentos).
Objetivo de la aplicación
El objetivo de la aplicación es muy claro y sencillo: Ayudar a los niños de tercero de primaria a
diferenciar a través del juego el concepto de mayor y menor.
Icono de la aplicación
Se utiliza como icono de la aplicación la siguiente imagen, que hace alusión a un niño con duda:
Inicio
Los muestra
Genera número No Hay datos Sí y genera
aleatorio almacenados? número
aleatorio
Lee respuesta del usuario
Genera
No Sí número
Incrementa los intentos Adivinó el usuario?
aleatorio
Este es el xml de la actividad principal, ya que esta aplicación se compone de dos actividades:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:background="@mipmap/aleatorios4"
android:clickable="true"
android:onClick="acercade">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Puntaje:"
android:id="@+id/textView"
android:textColor="@android:color/holo_red_light"
android:gravity="center_horizontal"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="0000"
android:id="@+id/textView2"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textColor="@android:color/holo_orange_light"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/button"
android:layout_toRightOf="@+id/textView"
android:layout_toEndOf="@+id/textView" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:ems="10"
android:id="@+id/editText"
android:textStyle="bold|italic"
android:textColor="@android:color/holo_orange_light"
android:gravity="center_horizontal"
android:layout_below="@+id/button"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/button2"
android:layout_alignEnd="@+id/button2"
android:elegantTextHeight="true"
android:textSize="@dimen/abc_text_size_display_3_material" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Verificar"
android:id="@+id/button"
android:onClick="verificar"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/button2"
android:layout_toStartOf="@+id/button2" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Adivine un número entre 1 y 100"
android:id="@+id/textView3"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textColor="@android:color/holo_red_dark"
android:layout_below="@+id/editText"
android:layout_centerHorizontal="true" />
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Salir"
android:id="@+id/button2"
android:onClick="salir"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/tvMensaje"
android:gravity="center_horizontal"
android:textColor="@android:color/holo_red_light"
android:text="aquí estoy"
android:layout_below="@+id/textView3"
android:layout_centerHorizontal="true"
android:textStyle="bold" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Reiniciar puntaje"
android:id="@+id/button3"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:onClick="reiniciar" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Menor núm. de intentos:"
android:id="@+id/tvMejor"
android:layout_below="@+id/textView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:textColor="@android:color/holo_blue_bright" />
</RelativeLayout>
2. Android Studio es un IDE que permite el desarrollo de aplicaciones de una manera ágil, centrando
al desarrollador en lo verdaderamente importante. Lo demás lo hace el propio IDE de una manera
transparente para el desarrollador.
3. Fue una ventaja que el IDE seleccionado contara con un depurador integrado, porque ayudó
mucho a la detección de errores lógicos y de diseño.
5. El desarrollar para Android tiene mucha ventaja comercial, pues actualmente es el sistema
operativo más utilizado y la tendencia es a aumentar más el uso de este sistema.
BIBLIOGRAFÍA
Android Tutoriales Perú. 2011. Plataforma De Desarrollo ANDROID. Consultado el 2 de julio de
2015, desde http://android-latino.blogspot.mx/2010/12/que-es-android.html
Android Studio. 2015. Wikipedia, La enciclopedia libre. Consultdo el 2 de julio de 2015 desde
https://es.wikipedia.org/w/index.php?title=Android_Studio&oldid=83311058.