0% encontró este documento útil (0 votos)
181 vistas32 páginas

Teoria

El documento describe la evolución de la telefonía móvil a través de las diferentes generaciones, desde la telefonía analógica de la 1G hasta la actual 4G y la emergente 5G. También discute la evolución de los smartphones, desde los primeros dispositivos hasta la actual omnipresencia de smartphones y tabletas, que se han convertido en parte indispensable de la vida cotidiana de muchas personas. Además, explica que los dispositivos móviles implementan funcionalidad a través de tres capas: hardware, sistema operativo y aplicaciones.

Cargado por

San Maria Hostal
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
181 vistas32 páginas

Teoria

El documento describe la evolución de la telefonía móvil a través de las diferentes generaciones, desde la telefonía analógica de la 1G hasta la actual 4G y la emergente 5G. También discute la evolución de los smartphones, desde los primeros dispositivos hasta la actual omnipresencia de smartphones y tabletas, que se han convertido en parte indispensable de la vida cotidiana de muchas personas. Además, explica que los dispositivos móviles implementan funcionalidad a través de tres capas: hardware, sistema operativo y aplicaciones.

Cargado por

San Maria Hostal
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

CURSO DE DESARROLLO DE APPS MÓVILES

Generaciones de la telefonía móvil

¡Hola! Bienvenidos al curso Apps para dispositivos móviles. Soy Rubén Fuentes,
profesor de la Universidad Complutense de Madrid.

El camino hasta la telefonía móvil que conocemos hoy en día ha sido


relativamente corto pero plagado de cambios vertiginosos. En esta unidad, vamos
a aprender un poco más sobre ellos. Empezaremos viendo las generaciones de
telefonía móvil.

La evolución de telefonía móvil se divide en una serie de generaciones


caracterizadas por una serie de circunstancias tecnológicas y de mercado. Estas
generaciones tienen que ver sobre todo con la infraestructura disponible para las
comunicaciones, aunque han ido acompañadas de cambios en los terminales. En
la actualidad nos encontramos en la 4G y estamos creando la 5G.

La primera generación es la 0G y es telefonía basada en radio. Aparece a finales


del siglo XIX y está solo disponible en establecimientos específicos, por ejemplo,
para navegación marítima y fines militares. A mediados de siglo XX, AT&T lanza
los primeros servicios comerciales en Estados Unidos sobre sistemas Bell. El
equipo del usuario pesaba 36 kilogramos (en muchos casos se montaban en
vehículos).

La generación 1G surge a finales de los años 1980. Se trata de telefonía analógica


destinada fundamentalmente al entorno empresarial. En esta generación aparecen
los principales actores en cuanto a operadores y suministradores. Motorola
desarrolla el primer dispositivo experimental en competencia con Bell Labs. Martin
Cooper hizo la primera llamada. La japonesa NTT encabeza la implantación
comercial en 1979, seguida de los países nórdicos con el estándar NMT en 1981.
Precisamente este estándar incorpora por primera vez la posibilidad de itinerancia
internacional: el roaming.
La generación 2G surge en los años 1990, el cambio tecnológico clave es el paso
a la telefonía digital basada en conmutación de circuitos, es decir, se establece un
canal de comunicación extremo a extremo mientras dura esta. El estándar más
utilizado es el GSM que incorpora, entre otros, itinerancia internacional,
implementación eficiente de SMS, los mensajes de texto de hasta 160 caracteres,
MMS para mensajes multimedia y WAP para acceso a internet. En esta
generación también suceden algunos hitos comerciales importantes. Aparecen los
primeros tonos descargables (lanzados por Radiolinja en Finlandia en 1998), los
primeros sistemas de pago por móvil (en Finlandia y Suecia en 1998, y en
Noruega y Filipinas en 1999) y el primer servicio de acceso a Internet vía móvil
(lanzado por NTT DoCoMo en Japón en 1999).

Con la generación 3G llega la banda ancha móvil. Se adapta la conmutación


basada en paquetes para la transmisión de datos. Aparecen estándares como
UMTS con mayor capacidad de transmisión de datos. En cuanto a los hitos
comerciales de esta generación, se lanza en Japón en 2001 el primer servicio
comercial. También surgen los primeros servicios de streaming de radio y vídeo
demostrados por empresas como Nokia en 2005, RealNetworks y Disney.

La generación 4G usa solo conmutación de paquetes. En ella desaparece el uso


de la conmutación de circuitos para voz. Se extienden las aplicaciones con
consumo intensivo de ancho de banda, por lo que se necesitan mayores tasas de
transmisión. Algunos protocolos nuevos son WiMAX, LTE y LTEA. TeliaSonera
lanza el primer servicio comercial basado en LTE en Noruega y Suecia en 2009.

En la actualidad la alianza industrial NGMN, próxima generación de redes móviles,


está trabajando ya en las redes 5G, algunos de los requisitos de estas redes son:

 Mayores tasas de transferencia de datos, del orden de decenas de


megabits por segundo para decenas de miles de usuarios en un área.
 Cientos de miles de conexiones simultáneas de dispositivos para grandes
redes de sensores y actuadores.
 Mayor eficiencia en el uso del espectro de señal.
 Uso de soluciones abiertas accesibles a toda la industria.
 Escalabilidad futura.

La telefonía móvil ha estado en continua evolución desde sus inicios. Desde los
años 1980 hasta la actualidad hemos asistido a su popularización y su mayor
penetración en todos los aspectos de nuestra vida diaria. El futuro previsible incide
en esta mayor penetración del mundo interconectado en nuestra vida.

LA EVOLUCIÓN DE LOS SMARTPHONES

En los últimos años los dispositivos móviles se han convertido en parte


indispensables de nuestra vida. En esta unidad vamos a ver algunos datos que
nos darán una perspectiva global sobre las características de usuarios, sus
hábitos, la infraestructura, los dispositivos y las aplicaciones.

Empecemos por ver la penetración de las líneas móviles y de los dispositivos.

Un primer indicador de la penetración de la tecnología móvil es el número de


líneas de teléfono contratadas. Según datos de Eurostad, al comparar 2003 con
2013 se observa que a nivel mundial aumenta el número de líneas móviles
contratadas, hasta el punto de que, en muchos lugares, hay más líneas
contratadas que habitantes. Por ejemplo, la Unión Europea tiene 131 líneas
móviles por cada 100 habitantes; Brasil, 135; y China, 89 (aunque en 2003 solo
tenía 20, es decir, un crecimiento del 400% en 10 años).

Estas líneas móviles acceden en buena medida desde terminales de altas


prestaciones como tabletas y smartphones. Las cifras de diversos estudios
muestran que en el año 2015 muchos países superan tasas de penetración del
70%. Por ejemplo, en España el 71% de la población ya tiene un smartphone, en
Estados Unidos el 72%, en China el 55% y en Rusia el 45%. Además, si
comparamos las cifras con las de dos años antes, en 2013 vemos que en países
como Estado Unidos e India el aumento ha sido superior al 20%.
Las proyecciones al futuro próximo muestran que esta tendencia se mantiene. Un
estudio de 2015 prevé más de 2.500 millones de usuarios de smartphone en 2019.

El uso de estas líneas móviles no está relacionado solo con los servicios de voz
tradicionales, sino que cada vez más gente utiliza dispositivos móviles para otros
usos. Por ejemplo, los usamos para acceder a Internet. Según Eurostad, 67 de
cada 100 españoles entre 17 y 74 años usan en 2015 sus móviles para conectarse
a Internet.

La evolución no ha sido solo en el número de usuarios, los terminales también han


cambiado. Todos tenemos recuerdos de los diferentes dispositivos móviles que
hemos utilizado a lo largo del tiempo. Cuando hablamos de dispositivos móviles,
hablamos de una categoría difusa, en la cual entran muchos dispositivos a veces
solo por razones comerciales. Todos pensamos en los más populares
(smartphones y tabletas), pero cada vez más hablamos de relojes inteligentes,
gafas de realidad aumentada, dispositivos en la ropa e incluso algunos tipos de
portátiles.

Encuestas recientes indican que los dispositivos móviles más populares,


smartphones y tabletas, cuentan ya con una enorme implantación, especialmente
entre los más jóvenes. En Estado Unidos, en 2015, más del 50% de los
estudiantes en los niveles preuniversitarios eran usuarios tanto de tabletas como
de smartphones. Además, esta es una tendencia en aumento.

Podemos decir que un dispositivo móvil es, en general, un recurso computacional,


es decir, un dispositivo con capacidad de ejecutar algún tipo de programa, que el
usuario puede transportar con facilidad, que es de tamaño reducido (es decir, no
es un ordenador portátil común), interactivo, que suele tener capacidad de
comunicación con protocolos propios de telefonía (además de que puede usar las
típicas redes por cable o wifi de los ordenadores) y que integra múltiples sensores
y actuadores, como cámaras, micrófonos o localizadores GPS.
Estas características son muy variables y heterogéneas entre dispositivos. La
velocidad de los procesadores, la memoria y la capacidad de almacenamiento no
dejan de crecer, sus pantallas han aumentado en prestaciones y cambian
frecuentemente de tamaño, cuentan con una enorme variedad de sensores y
pueden soportar distintos protocolos de comunicaciones. Lo que sí podemos
destacar es que han transformado en pequeños ordenadores de bolsillo, cuentan
con su propio sistema operativo y son capaces de ejecutar programas arbitrarios
instalados por sus usuarios (las apps).

Podemos encontrar numerosas revisiones de la evolución de los móviles en la


web. La mayoría de ellas se centran en las características físicas externas de los
dispositivos. Por ejemplo, las dos primeras se centran en los terminales que
marcaron una época por su explotación de ciertas características. La de GSM
Arena analiza los cambios en distintas facetas de los móviles y la de Masa se
hace a través de las apariciones de móviles en películas.

Pasemos ahora a ver cómo se implementa funcionalidad para el usuario utilizando


este hardware. En general, nuestro dispositivo móvil puede implementar
funcionalidad de tres maneras diferentes, es lo que llamamos tres capas o niveles.

La funcionalidad básica está implementada por el fabricante del dispositivo


directamente en su hardware. Por ejemplo, captar la señal de las antenas de
telefonía se suele implementar en esta capa.

La capa del sistema operativo, al igual que ocurre en los ordenadores, construye
nuevas funciones sobre las que presta el hardware, por ejemplo, es la capa que
convierte la señal de unos circuitos en un dato numérico. Aquí están sistemas
operativos como Android y el iOS de los iPhone. El sistema operativo también lo
instala el fabricante.

Por último, la capa de aplicaciones proporciona funcionalidad adicional sobre el


sistema operativo. Por ejemplo, las funciones que visualizan el dato numérico de
intensidad de señal con un diagrama de barras. Aquí el usuario decide qué
aplicaciones instalar.

Cada capa construye nueva funcionalidad usando la que le proporciona la capa


anterior. El terminal y el sistema operativo ofrecen una funcionalidad limitada. En
general, no es apta para su utilización por los usuarios, por eso construimos
aplicaciones orientadas a los usuarios finales de los dispositivos. Estas
aplicaciones son las apps.

Igual que tenemos múltiples dispositivos móviles, tenemos diferentes sistemas


operativos. Los dos más populares hoy en día son Android, con cerca del 80% del
mercado, e iOS, con casi el 20% del mercado. El resto se reparte con porcentajes
muy pequeños entre otros sistemas operativos. Decidir en qué sistema operativo
podrá ejecutarse nuestra app es una decisión importante, no solo hay
consideraciones técnicas, sino también del tipo de usuarios que suelen utilizarlos.

Una app se puede desarrollar como una aplicación nativa o multiplataforma. Las
aplicaciones nativas solo se pueden ejecutar en un sistema operativo, suelen
ofrecer una mejor experiencia de usuario y son necesarias para utilizar servicios
avanzados del terminal. Las aplicaciones multiplataforma se pueden ejecutar casi
sin cambios en varios sistemas operativos, en muchos casos se basan en
tecnologías web y suelen ofrecer una peor experiencia de usuario, pero son más
baratas de desarrollar. En la tabla puedes ver algunos ejemplos de plataformas de
desarrollo, tanto nativas como multiplataforma, con sus diferentes características.
Como puedes ver, las opciones son muy numerosas y, en general, están
respaldadas por amplias comunidades que proporcionan infraestructura de
desarrollo, manuales y ejemplos.

Actualmente podemos decir que los móviles y sus apps ya están presentes en
todo el mundo, tanto a nivel geográfico como de población. El panorama no deja
de evolucionar en todos los aspectos en cuanto a los dispositivos y sus
prestaciones, sus sistemas operativos y las plataformas de desarrollo de apps.
Existe una gran fragmentación en todos estos aspectos, que se plasma en la
existencia de una gran cantidad de alternativas con diferentes características.
Conocerlas y analizarlas en función de nuestros objetivos es fundamental para
que nuestras apps tengan éxito.

EL MERCADO DE LAS APPS

El éxito de una app no depende solo de sus características técnicas. También


depende de que sea capaz de identificar un grupo significativo de usuarios, una
necesidad de los mismos y atenderla de una manera apropiada. Para ello, es
necesario que conozcamos las características de los usuarios y del mercado de
las apps. Cómo se usan los dispositivos móviles nos da ya algunas indicaciones.

Usamos los dispositivos móviles integrados en nuestras vidas cotidianas por eso
queremos respuestas inmediatas, más que en los ordenadores. Solo estamos
dispuestos a esperar en situaciones donde sabemos que los retrasos son
comunes, por ejemplo, cuando carga una página web, pero incluso en estos
casos, necesitamos ver información que sugiera progreso en la operación.
Además, solemos dedicar al dispositivo móvil periodos de tiempos separados y
relativamente cortos. Por estas razones manipulamos las apps con una velocidad
que nos produce incertidumbre inmediata sobre el resultado. Al tocar con nuestros
dedos en pequeñas pantallas táctiles con muchos elementos de interfaz, no
estamos seguros de hacerlo bien. Esto, a su vez, nos hace más impacientes con
los tiempos de respuesta de las apps.

Nuestro tiempo siempre es escaso, sea en el trabajo o descansando. Usar una


app supone dedicarle parte de ese valioso tiempo, así que somos muy exigentes
con los que nos aportan. Queremos que satisfagan alguna de nuestras
necesidades, que sean fáciles e intuitivas de usar, a ser posible incluso divertidas
y que su utilidad sea frecuente.
¿Cómo están abordando las apps estos requisitos y cómo está afectando al
mercado?

La evolución de nuestro uso de apps indica que encontramos lo que buscamos. El


teléfono ha dejado de ser un dispositivo de comunicación para convertirse en un
centro integrado de servicios. Dedicamos el 89% de nuestro tiempo con el
Smartphone a usar apps. En los jóvenes de 18 a 24 años eso supone 37 horas al
mes. Además, cada vez encontramos más uso a las apps: de 2014 a 2015 les
hemos dedicado un 21% más de tiempo. Las apps están desplazando a otros
tipos de aplicaciones en muchas actividades. Por ejemplo, el 52% del consumo de
medios digitales ya se hace con apps. Este crecimiento del uso de apps, ha dado
lugar, a su vez, a un imparable aumento en su desarrollo.

Si consideramos los dos sistemas operativos mayoritarios, iOS de Apple y


Android, y sus tiendas de apps oficiales, podemos ver esta tenencia. Google Play,
la tienda de Android, alcanzó los 2 millones de apps en febrero de 2016. En la
tienda de Apple, en junio de 2015, había un millón y medio de apps disponibles. La
distribución de estas apps no es homogénea. Cuáles son las categorías favoritas y
las características de las apps que se desarrollan para ellas dependen de diversos
factores, hay diferencias por sistema operativo: Android contra iOS, edad, sexo,
nivel socioeconómico e incluso país. A nivel de sistemas operativos, existen
ligeras diferencia en las preferencias de los usuarios. Por ejemplo, en el caso de
los usuarios de Android, casi el 100% tiene instalada alguna app de utilidades,
generalmente, personalización o gestión del dispositivo y de comunicaciones, por
ejemplo, de mensajería. Los juegos están presentes en más del 80% de los
dispositivos. Las aplicaciones de educación en cerca de un 30% y las de salud en
un 23% de los dispositivos. Si atendemos a las tiendas de aplicaciones y el
número de apps en cada categoría, vemos que en el caso del Google Play de
Android la categoría más popular es educación, seguida de estilo de vida y
entretenimiento, donde podemos encontrar aplicaciones de juegos, estilo de vida y
consumo de medios.
Un análisis similar en el caso del Apple App Store nos muestra que la categoría
más popular es juegos, seguida de negocios. Educación aparece en tercer lugar,
estilo de vida es la cuarta y entretenimiento la quinta. Como podemos ver, las
categorías más populares con similares, aunque el orden de preferencia cambia
entre las dos plataformas.

Si consideramos la distribución de tiempos por tipo de app, vemos que nos


dedicamos fundamentalmente a participar en las redes sociales, con aplicaciones
como Facebook e Instagram, y a los juegos. Observa también que dedicamos a
apps de otros tipos casi el 35% del nuestro tiempo. Un análisis a nivel de apps
individuales más populares en marzo de 2016 muestra diferencias menores entre
el Apple App Store y Google Play. Si consideramos la distribución geográfica,
podemos ver que existen también diferencias, veamos los casos de Estados
Unidos, Brasil y Francia a mediados de 2015. En Estados Unidos las aplicaciones
más populares son, por orden, una red social (Facebook), una de consumo de
contenidos (YouTube) y una de mensajería (Facebook Messenger). Destaca la
aparición de múltiples apps de redes sociales, mensajería y consumo de
multimedia. Varias de las apps más populares corresponden a contenidos de
pago, por ejemplo, Netflix. En el caso de Brasil, destaca la presencia de varias
apps de Google entre las más populares. En el caso francés hay una destacada
presencia de medios de comunicación que no aparecen en los otros dos países.

Respecto al género no hay conclusiones definitivas acerca de si afecta al


comportamiento con los dispositivos móviles. Algunos estudios han sugerido que
es así, por ejemplo, que los hombres juegan más a juegos Arcade y las mujeres a
juegos casuales. Sin embargo, las últimas estadísticas parecen sugerir que hay
una convergencia en cuanto a hábitos.

Por ejemplo, la distribución por categorías populares en el Reino Unido en 2013 es


muy parecida entre hombre y mujeres. Las diferencias por categorías no superan
en general el 3%. Las mayores aparecen en las categorías de salud y
meteorología con un 6%.
El último aspecto de este tema tiene que ver con la obtención de beneficios
económicos de las apps. Es a lo que frecuentemente nos referimos como
monetización.

Los potenciales modelos son muy variados. Los más conocidos son el pago por
descarga, generalmente a través de una tienda, y la inclusión de publicidad. Sin
embargo, otras alternativas son posibles. Por ejemplo, la app puede incluir
sistemas de venta de mercancías (en el caso de los juegos es frecuente introducir
este modelo para permitir a los jugadores adquirir ventajas mediante pago). Por
tanto, la elección del modelo de monetización depende, en buena medida, del tipo
de app que proponemos. Por ejemplo, observa la variabilidad en los beneficios
obtenidos por categoría de app en el Apple App Store. Sin embargo, el tipo de app
no es el único factor a tener en cuenta. La elección del modelo depende también
mucho de nuestro público objetivo, atendiendo a los factores que diferencian a la
población y que hemos tratado anteriormente. Por ejemplo, es conocida la
importante diferencia en gasto entre los usuarios de dispositivos Apple y los de
Android, casi 4 veces más a favor de los primeros. Conocer bien nuestro público,
sus necesidades, cómo abordarlas y cómo obtener beneficios son aspectos que
cobran una importancia clave con las apps más que con las aplicaciones
tradicionales. La tasa de retención del usuario de app es muy baja, apenas un
35% de las apps serán usadas más de 10 veces y más de un 20% solo lo serán
una vez.

El mercado de las apps ofrece numerosas oportunidades a aquellos que quieran


desarrollar una idea, es un mercado con un enorme crecimiento. Al tiempo, es
también un mercado que puede ser difícil, los usuarios son muy heterogéneos y
puede ser difícil identificar al público objetivo, también es un mercado muy
competitivo. Por ello es fundamental realizar un buen análisis previo y causar una
buena primera impresión con nuestra app. Es la base del éxito de tu proyecto.
MODULO 02

DISEÑO Y CREACIÓN DE APPS

 1.- DESCUBRIR NECESIDADES Y PROBLEMAS DEL MERCADO

Gonzalo Méndez, profesor de la Universidad Complutense de Madrid

A lo largo de esta unidad vamos a ver cómo planificar el desarrollo de nuestras


aplicaciones móviles. En primer lugar, veremos cómo descubrir oportunidades para
el desarrollo; después, estudiaremos algunos factores que hay que tener en
cuenta; y finalmente veremos cómo planificar la construcción de nuestras
aplicaciones.

Lo primero que tenemos que preguntarnos es por qué alguien debería querer
comprar nuestra aplicación. Si echamos un vistazo a las aplicaciones que tenemos
instaladas en nuestros móviles, veremos que las hay de tres tipos: unas que
sustituyen aplicaciones que antes utilizábamos en equipos de escritorio, otras que
sustituyen a elementos de la vida cotidiana como pueden ser las listas de la compra
y otras que proporcionan funcionalidades nuevas. Lo que siempre tenemos que
tener claro es que una aplicación móvil satisface alguna necesidad.

Existen dos tipos de aplicaciones móviles. Unas son las que tenemos porque nos
han hablado bien de ellas, nos las hemos descargado, las hemos probado y las
utilizamos de vez en cuando, pero hay otras que son las que constituyen la razón
por las que tenemos un Smartphone. Aquellas aplicaciones que nos sirven para
gestionar el correo, para entrar en redes sociales o aplicaciones de mensajería.

Resulta complicado desarrollar aplicaciones que utilice todo el mundo, sin


embargo, no tiene por qué ser ese nuestro objetivo. Es suficiente con encontrar un
grupo de usuarios lo suficientemente grande y con una necesidad que no esté
cubierta por aplicaciones de la competencia. En ese caso es mucho más fácil
encontrar un objetivo y una necesidad que cubrir. Además, siempre debemos tener
en cuenta la manera en que los usuarios van a utilizar nuestra aplicación. De esa
manera podremos encontrar una forma efectiva y eficiente de llegar hasta ellos,
darles a conocer nuestra aplicación, que se la descarguen y que la utilicen.
Una necesidad puede ser cualquier característica de la que carezcan aplicaciones
que tenemos instaladas, una nueva forma de utilizar alguna aplicación que ya
tenemos o incluso nuevas aplicaciones con nuevas funcionalidades. Además,
también podemos fijarnos en nuestro hobbies y ver si con las aplicaciones que
tenemos en nuestro móvil podemos satisfacerlos o no. Si con esto no es suficiente,
podemos preguntar a nuestros allegados qué aplicaciones tienen instaladas, qué
les gusta, qué no les gusta, qué les falta y qué les gustaría tener. Finalmente, si esto
no es suficiente siempre podemos recurrir a Internet, eso sí, teniendo cuidado de
no apropiarnos de ideas ajenas.

Cualquier idea que se te ocurra estará en mayor o menor medida cubierta por
aplicaciones de la competencia. Por eso resulta una buena idea descargártelas,
instalártelas, usarlas, analizarlas, ver qué es lo que tienen, de qué carecen, cuál es
su coste y así es posible que puedes identificar también alguna necesidad a cubrir.

Existen distintas formas de analizar las aplicaciones de la competencia. Quizá la


más inmediata sea entrar en las tiendas de aplicaciones, ver qué aplicaciones hay
que sean similares a la que quieres construir, descargártelas, instalarlas y ver cuáles
son sus puntos fuertes y sus puntos débiles. Si esto no es suficiente, además te
puedes fijar en sus puntuaciones y comentarios. Debes tener en cuenta que los
usuarios más propensos a dejar puntuaciones y comentarios son aquellos que
están insatisfechos con la aplicación, con lo cual, el sesgo de estos comentarios
suele ser negativo. Y si esto no es suficiente, como ya dijimos anteriormente,
podemos recurrir a nuestros allegados para preguntarles qué es lo que tienen y
qué es lo que necesitan.

Si has tenido éxito identificando alguna necesidad, debes pensar que


probablemente alguien más haya tenido una idea similar, por lo tanto, debes darte
prisa en desarrollar tu aplicación y lanzarla al mercado. Ten cuidado con los
detalles porque solo tienes una oportunidad para causar una buena primera
impresión.
2.- NECESIDADES ESPECÍFICAS PARA EL DESARROLLO EN DISPOSITIVOS MÓVILES

Cuando desarrollamos aplicaciones para dispositivos móviles, debemos tener en


cuenta que sus características no son las mismas que las de los PCs o las consolas
de videojuegos. Aspectos tales como la capacidad de procesamiento, la memoria o
la duración de batería deben ser tenidas en cuenta. También debemos pensar a
largo plazo y considerar cuál va a ser la evolución de la aplicación, su escalabilidad
o las características de pago.

La primera cuestión que debemos a tener en cuenta es si vamos a desarrollar para


única plataforma o si soportaremos distintas plataformas, distintos tipos de
dispositivos y distintas versiones del sistema operativo.

En el primer caso tendremos la ventaja de que podemos centrar todos nuestros


esfuerzos en un objetivo específico. Por el contrario, la desventaja es que
disminuiremos el volumen del mercado. Si decidimos soportar distintas
plataformas y versiones del sistema operativo, tendremos que multiplicar
esfuerzos desarrollando recursos y adaptándonos a las particularidades de cada
una de ellas. Además, deberemos pensar si queremos mantener un aspecto
homogéneo de la aplicación en todas las plataformas o si, por el contrario,
queremos adaptarnos a las características específicas de cada sistema. En el primer
caso deberemos desarrollar nuestras propias librerías, mientras que en el segundo
podremos aprovechar las que vienen con el sistema operativo.

En segundo lugar, debemos decidir qué tipos de dispositivos vamos a soportar,


bien sean Smartphone, Tablet o ambos. De ello dependerá que tengamos que
desarrollar interfaces gráficas para distintos tamaños de pantalla o recursos
gráficos para distintas resoluciones. Si vamos a dotar a nuestras aplicaciones de
formas de interacción novedosas o si su funcionalidad depende de ello, deberemos
analizar cuidadosamente cuáles de los sensores que nos ofrecen las distintas
plataformas vamos a utilizar, así como lo que haremos en caso de que alguna de las
plataformas no disponga de alguno de los sensores elegidos. En el mejor de los
casos solo supondrá eliminar funcionalidades menores de la aplicación, mientras
que en otros casos puede suponer rediseñar completamente la interacción.
Otra de las características de los dispositivos móviles es que son más limitados que
sus homólogos de escritorio. Por ejemplo, su capacidad de procesamiento es
menor, de manera que el resultado será menos eficiente que en los PCs.

Por otro lado, si nuestra aplicación consume mucha memoria, tendremos que
tener en cuenta que los usuarios que no dispongan de dispositivos de última
generación probablemente no puedan utilizarla. Finalmente hay que tener en
cuenta la capacidad de almacenamiento del dispositivo. Aunque en muchos casos
ésta se puede extender a través del uso de tarjetas de memoria, no siempre es así
y, si nuestra aplicación necesita residir en la memoria interna del teléfono, lo que
puede suceder es que los usuarios tengan que elegir entre nuestra aplicación y las
de nuestros competidores.

Existen otras características que condicionan el desarrollo de nuestras aplicaciones.


Una de ellas es, por ejemplo, la duración de la batería. Nadie va a estar dispuesto a
utilizar nuestra aplicación si se reduce drásticamente la duración de la batería. Este
constituye uno de los principales motivos de queja en las tiendas de aplicaciones.

También debemos diseñar cuidadosamente el comportamiento de nuestra


aplicación cuando no estamos conectados a la red, bien sea porque la ha
deshabilitado el usuario o porque estamos en alguna zona sin cobertura.
Igualmente debemos tener cuidado con el consumo de datos. Muchos usuarios
disponen de tarifas de datos con limitaciones y no están dispuestos a ampliarlas
únicamente para utilizar nuestra aplicación. Otra característica a tener en cuenta es
la velocidad de la red, ya que, si estamos trabajando con aplicaciones que
requieran comunicaciones en tiempo real, se pueden producir retrasos indeseados.
Finalmente, también debemos tener en cuenta posibles problemas en las
características de posicionamiento. Si estamos usando aplicaciones que requieran
la utilización del GPS, podemos encontramos con zonas de sombra que no nos
permitan hacer el posicionamiento adecuadamente.

A la hora de desarrollar nuestra aplicación, debemos pensar si lo haremos sobre


dispositivos reales o sobre un emulador.

En el primer caso tenemos la ventaja de que disponemos de todos los elementos


que necesitará nuestra aplicación y de un entorno de ejecución real. La desventaja
es que puede resultar más caro si estamos desarrollando aplicaciones para
distintos dispositivos. Si decidimos desarrollar utilizando un emulador, contamos
con la ventaja de que este desarrollo va a ser mucho más versátil. Por el contrario,
tendremos como desventaja que las ejecuciones serán un poco más lentas, que
podemos no contar con algunos de los elementos que necesitemos a la hora de
ejecutar la aplicación, como los sensores, y que determinadas pruebas
necesitaremos hacerlas sobre los dispositivos físicos o en entornos reales.

Aunque nuestra aplicación comience a utilizarla un grupo reducido de usuarios, es


de esperar que esto cambie. A medida que más gente vaya utilizando nuestra
aplicación, irán haciendo acto de presencia fallos ocultos.

Igualmente, cada vez deberemos ir dotando a nuestra aplicación de mayor


funcionalidad. Esto, en primer lugar, fidelizará a los usuarios actuales y, en segundo
lugar, atraerá nuevos usuarios. Por lo tanto, deberemos planificar cuidadosamente
las actualizaciones de nuestra aplicación para que la experiencia de los usuarios
siga siendo satisfactoria. El crecimiento en el número de usuarios de nuestra
aplicación pondrá a prueba su escalabilidad y la de la infraestructura que la rodea,
ya que no es igual soportar mil usuarios que varios millones de ellos. Además este
crecimiento en el número de usuarios se producirá con público de otros países, con
lo que habrá que planificar también como dotar a nuestra aplicación de mayor
número de idiomas.

Debemos tener en cuenta desde el principio dónde vamos a querer publicar


nuestra aplicación, ya que las distintas tiendas de aplicaciones imponen diferentes
requisitos para poder publicarlas. Si tenemos en cuenta desde el principio estos
requisitos, cuando llegue el momento de lanzar la aplicación, será mucho más fácil
que podamos pasar los filtros impuestos por estas tiendas.

Otra de las cuestiones que deberemos pensar en son las distintas posibilidades de
monetizar nuestra aplicación, ya que de ellas dependerá, por un lado, la
distribución de la mismas y, por otro lado, los beneficios que obtengamos. Dada la
gran cantidad de aplicaciones gratuitas que existen en las tiendas de aplicaciones,
un usuario que pague por nuestra aplican demandará una serie de características
que pueden parecer a priori irreales. Por ello una de las opciones consiste en el
llamado In-App Billing. Esto consiste en distribuir nuestra aplicación de manera
gratuita para posteriormente vender características avanzadas dentro de la misma.
Finalmente, debemos tener en cuenta que la distribución de aplicaciones para
dispositivos móviles se hace de manera distinta a la del software tradicional. Por
ello debemos buscar maneras efectivas y eficientes para llegar a nuestro público
objetivo. Si el coste de las campañas de marketing es superior a los beneficios
esperados, entonces tenemos que buscar maneras distintas de distribuir nuestra
aplicación.

3.- PLANIFICACIÓN DEL DESARROLLO DE APPS

Una de las cuestiones que nos quedan pendientes es ver cómo gestionar nuestro
proyecto de desarrollo. A lo largo de este vídeo veremos cómo organizar el
equipo, cómo gestionar las actividades a realizar y cómo planificar el trabajo de
desarrollo.

El desarrollo de aplicaciones para dispositivos móviles, especialmente los de


última generación, constituye un terreno novedoso en el que está todo por
explorar. Existen pocas reglas y las que hay difícilmente duran mucho tiempo. Por
eso hay muchas posibilidades de descubrir nuevos caminos, pero también existen
enormes posibilidades de fracaso. Todas las aplicaciones para dispositivos
móviles tienen algo de innovador y eso dificulta bastante el desarrollo. En
cualquier caso, no todo son malas noticias y podemos aprovecharnos de la
experiencia existente en el desarrollo de software tradicional.

Aunque puede existir variación dependiendo del tipo de aplicación que queramos
desarrollar, los roles del equipo de desarrollo suelen ser casi siempre los mismos.

En primer lugar, tenemos al productor, que es quien dirige el impulso del


desarrollo y quien se encarga de mitigar los riesgos. Tenemos también a los
diseñadores, que son quienes se encargan de refinar el concepto de la aplicación,
refinar el diseño funcional y probar los prototipos que se vayan realizando. Los
programadores serán, a ser posible, personas que cuenten ya con experiencia en
el desarrollo de aplicaciones del mismo estilo, con ello tenemos garantías de
poder cumplir la planificación. También necesitaremos tener diseñadores gráficos:
deberemos desarrollar interfaces gráficas, botones, imágenes, etc. Es necesario
desarrollar nuestras aplicaciones con un concepto consistente que mantenga el
aspecto general de toda la aplicación. Si queremos desarrollar para distintos
dispositivos móviles, distintos tamaños de pantalla y distinta resolución de
pantalla, el trabajo de elaborar recursos gráficos será notable. Aunque es un factor
que no interviene en algunos tipos de aplicaciones, el manejo de audio,
especialmente en el desarrollo de videojuegos, puede constituir un factor que haga
que tu aplicación destaque sobre la de la competencia. También necesitaremos
tener un buen equipo de calidad que pruebe nuestros productos en el mayor tipo
de dispositivos posible. Debemos garantizar que nuestra aplicación no falle en
situaciones comunes para que la experiencia del usuario siempre sea buena.

Si queremos que nuestra aplicación tenga una amplia difusión, será deseable que
la tengamos desarrollada en distintos idiomas. Para ello necesitaremos tener un
equipo de localización que realice la traducción de nuestra aplicación. Es habitual
que esta labor se subcontrate. Finalmente, necesitaremos contar con un buen
equipo de marketing que nos ayude a posicionar nuestra aplicación en el mercado,
para que consigamos tener un buen comienzo y que nuestra aplicación tenga la
mayor difusión posible.

Aunque el desarrollo de aplicaciones para distintos móviles se puede hacer de


distintas maneras, lo más habitual es utilizar un proceso de desarrollo ágil. Para
ello pasaremos por las fases de concepto, preproducción, producción, testeo,
lanzamiento y soporte.

El objetivo de esta fase será elaborar un documento no muy largo donde


describamos las características principales de la aplicación para así no perderlas
de vista a lo largo del desarrollo de la misma. Idealmente, para que no resulte un
documento demasiado denso, debe tener una extensión de entre una y tres
páginas en las que incluiremos capturas de pantalla, maquetas y listas de
características que queremos incluir en nuestra aplicación. Si además hemos
elaborado un documento de estudio de mercado, también será conveniente
incluirlo a continuación para no perder de vista las características que debe tener
nuestra aplicación para diferenciarse de las de la competencia.

En la fase de preproducción o diseño es donde comienzan los trabajos de


construcción de nuestra aplicación. Resulta fundamental mantener una integridad
conceptual en el diseño de la aplicación para que ésta mantenga un aspecto y un
funcionamiento homogéneos de principio a fin. Además, en la fase de diseño
debemos generar suficientes diagramas, maquetas y tablas como para que los
programadores sepan claramente el trabajo que deben realizar. Finalmente, todo
el material generado en la fase de diseño nos servirá para realizar una
planificación clara del desarrollo de la aplicación.

En la fase de producción es donde los programadores, siguiendo las


especificaciones que se han realizado en la fase de diseño, terminan de construir
la aplicación y la hacen funcionar correctamente. Durante la producción resulta
conveniente marcar hitos claros para los cuales, al principio, desarrollaremos
características básicas de la aplicación. Para cada uno de los hitos que
marquemos resulta conveniente definir claramente el concepto, realizar una
planificación y hacer una producción correcta.

Después de finalizar el desarrollo de la aplicación debemos realizar un testeo a


fondo para asegurarnos de que no se produce ningún tipo de fallo. Cuestiones
tales como el aspecto gráfico, funcionamiento, optimización en el uso de los
recursos, eficiencia, tiempos de ejecución, etc., son fundamentales para que el
usuario tenga una buena experiencia en el uso de nuestra aplicación. Por tanto,
conviene dedicar hasta un tercio del tiempo de desarrollo para probar el
funcionamiento de la aplicación y comprobar que no se producen fallos.

Es posible que por las necesidades de lanzamiento nuestra aplicación no esté


libre de fallos. Si estos fallos son menores, podremos incluirlos en la descripción
de características de nuestra aplicación y las consecuencias no serán muy graves.
Si los fallos que se producen son más grandes, entonces será conveniente
eliminar características para que nuestra aplicación funcione correctamente. En
cualquier caso, cuando se produzca el lanzamiento lo que no puede suceder es
que la aplicación se rompa.

Antes incluso de terminar con el desarrollo de la aplicación debemos pensar cómo


vamos a realizar el mantenimiento y las actualizaciones de la misma. Esto, por un
lado, transmite a los usuarios que existe un interés en continuar con el desarrollo
de la aplicación y serán más proclives a descargarla y utilizarla. Por otro lado, si
los usuarios han pagado por utilizar la aplicación, generaremos multitud de
usuarios insatisfechos si no continuamos manteniéndola. Mejoras en lo gráficos,
compatibilidad con nuevos dispositivos o con nuevas versiones del sistema
operativo o soporte para distintos idiomas serán mejoras que habitualmente
tendremos que hacer en nuestras aplicaciones. Para planificar el desarrollo de
nuestra aplicación puede ser útil aplicar la llamada regla de los tercios, que
consiste en dividir el tiempo de desarrollo en tres partes. La primera parte la
dedicaremos a hacer la planificación y el diseño. La segunda parte la dedicaremos
a desarrollar la interfaz gráfica, los elementos gráficos y el código de la aplicación.
Finalmente, la tercera parte la dedicaremos a hacer el testeo de la aplicación.

Para estimar el tiempo que tendremos que dedicar a desarrollar la aplicación


podremos utilizar una ecuación clásica en el desarrollo de software que consiste
en sumar el tiempo mejor, el tiempo peor y cuatro veces el tiempo de desarrollo
más probable, y dividir el resultado entre seis. Existe una variación de esta fórmula
que proviene del desarrollo de videojuegos, que suelen ser proyectos que se
retrasan en el tiempo. En este caso se hace una estimación un poco más
pesimista, que consiste en sumar el tiempo mejor, tres veces el tiempo peor y dos
veces el tiempo de desarrollo más probable, y dividir este resultado entre seis.

Finalmente, como hemos dicho al principio, debemos tener en cuenta que el


desarrollo de aplicaciones para dispositivos móviles constituye un terreno
novedoso que no está exento de riesgos. Debemos tener en cuenta que estos
riesgos pueden llegar a materializarse. Por lo tanto, cuando estemos planificando
el desarrollo de nuestra aplicación debemos tener en cuenta estos riesgos y
considerar que pueden dar lugar a retrasos.

Aspectos clave
Objetivos:

 Conocer las características generales del proceso de desarrollo de apps.


 Conocer los perfiles profesionales que suelen ser necesarios en los
proyectos de desarrollo de apps.
 Conocer las etapas principales del proceso de desarrollo de una app.
 Planificar las etapas principales del proceso de desarrollo de una app.

Comprueba tus conocimientos

Inés ha configurado su equipo de trabajo para ayudarle en el desarrollo de su


aplicación de prevención de riesgos para niños en parques infantiles. En este
momento se encuentra con el equipo organizando las tareas y las diferentes fases
a tener en cuenta en la planificación del desarrollo de la app. Tiene el concepto y
el diseño.

Ayuda a Inés ordenando correctamente en el siguiente listado las restantes fases.


LECCIÓN COMPLETA

¡Enhorabuena, has completado la actividad!


Después de producir siempre hay que testear centrándose en el funcionamiento y
la eficiencia en los tiempos de ejecución, orientados a ofrecer la mejor experiencia
de usuario. Si después del lanzamiento no damos soporte de forma continuada y
no atendemos las deficiencias o posibles mejoras perderemos la confianza de
nuestros consumidores. No debemos olvidar que debe haber un respaldo
documental de la parte conceptual que englobe las características principales de
la aplicación. En la fase de diseño se redefinen tanto el concepto (dotándole de
integridad) como las funcionalidades deseadas.

MODULO 03

PLATAFORMAS DE DESARROLLO - ANDROID

1. ANDROID: INTRODUCCIÓN

Hoy te vamos a presentar Android, la plataforma más popular de aplicaciones para


dispositivos móviles, apoyada entre otros por Google.

Android es la plataforma más popular para aplicaciones de dispositivos móviles. A


finales de 2015 se estima que más del 80% de los dispositivos móviles en el
mundo ejecutará Android. Este enorme mercado hace que exista un gran interés
por parte de todos los actores en trabajar con Android, de los fabricantes en crear
dispositivos para él y de los desolladores en crear aplicaciones. Este enorme y
variado mercado, junto con la calidad del entorno, es el mejor reclamo para los
usuarios.

Para los emprendedores, Android es la plataforma donde millones de usuarios


ejecutan sus apps, pero es también una plataforma donde cristalizar sus ideas.
Google ha creado Google Play, la mayor tienda de apps del mundo, con
facilidades para la distribución y comercialización de apps.

Las distintas empresas que apoyan la creación de apps con Android han
desarrollado, además, una completa infraestructura para facilitar este desarrollo
que incluye herramientas software, tutoriales, ejemplos, dispositivos... Y casi todo
es gratuito o de muy bajo coste, por lo que empezar a desarrollar apps con
Android requiere una baja inversión inicial.

Desde el punto de vista más técnico, en Android distinguimos entre un sistema


operativo, un entorno de ejecución y la plataforma de desarrollo. El sistema
operativo se basa en el núcleo de Linux, lo que llamamos kernel. Es exactamente
el mismo que el del sistema operativo Linux en los ordenadores tradicionales o el
del sistema operativo iOS en los dispositivos móviles de Apple. Sobre el núcleo,
Android proporciona un entorno de ejecución, lo que llamamos una máquina
virtual. Es lo mismo que hace el lenguaje de programación Java en los programas
tradicionales. De hecho, la sintaxis de Android es la misma que la de Java, aunque
Android también puede incluir fragmentos de programa en los lenguajes de
programación C y C++. El entorno de ejecución también incluye una serie de
librerías, que son fragmentos reusables de programas que podemos utilizar desde
nuestras apps.

Android también proporciona un completo entorno de desarrollo conocido como


Android Studio. Android Studio incluye el kit estándar de desarrollo, conocido
como SDK, y el entorno de desarrollo, conocido como IDE.

Hagamos un poco de historia de Android. A mediados de la década de los 2000 la


industria estaba investigando fuertemente en nuevas formas de utilizar los
dispositivos móviles. Aunque hay diferentes opiniones acerca de cuál es primer
Smartphone, todos coinciden en que el hito clave es la aparición del iPhone 2G en
2007 con su revolucionario diseño. Marca el momento de despegue de los
Smartphone y las tabletas. El cambio no es meramente estético, sino que también
afecta al diseño de los dispositivos y sus aplicaciones. El foco deja de estar en el
rendimiento primero, para pasar a ser la batería primero. Precisamente este
recurso es el más crítico en los dispositivos móviles. Este cambio afecta a todos
los aspectos. Por ejemplo, se diseñan procesadores específicos para los
dispositivos móviles. Estos dispositivos suelen tener menores prestaciones que los
tradicionales ordenadores, aunque esta distancia se va acortando. En los
dispositivos móviles suele ser más necesario ahorrar recursos como memoria o
tiempo de ejecución en el procesador. Además, los dispositivos móviles manejan
información sensible del usuario, tal como su agenda o su localización. Es preciso
garantizar, en la medida de lo posible, que ninguna aplicación con fallos o
malintencionada pueda comprometer estos datos.

El desarrollo de Android comienza en 2003 de la mano de la compañía llamada


Android Inc. Una compañía participada mayoritariamente por Google. Su objetivo
era el desarrollo de sistemas operativos para cámaras de fotografía digitales. En el
año 2005 y con la industria investigando en nuevas formas de utilizar los
dispositivos móviles, Google decide absorber completamente a Android Inc. El
desarrollo de Android da un giro hacia los dispositivos móviles de comunicaciones.

El 5 de noviembre de 2007 se anuncia la creación de un gran consorcio industrial


liderado por Google para crear soluciones abiertas, estándares y herramientas
destinados a los dispositivos de comunicación móviles. Ese mismo día el
consorcio anuncia su primer producto: la plataforma Android.

La evolución de Android ha sido muy rápida. En estos años se han sucedido las
versiones del sistema operativo con plazos, en ocasiones, inferiores a los 6
meses. Aunque hubo versiones preliminares, el lanzamiento efectivo se hace con
la versión 1.0. La actual es la 6.0. Todas ellas reciben un nombre clave
relacionado con algún dulce. Cada versión de Android proporciona un nuevo nivel
de la API. La API determina las versiones de los servicios de la plataforma que
usaran las apps y es un dato técnico fundamental.

El sitio web para los desarrolladores de Android hace públicas las estadísticas de
distribución por versiones de Android en los dispositivos móviles en uso. El paso a
las versiones más modernas de un sistema operativo siempre tiene una cierta
demora. Aunque la versión 6.0 es la más reciente, las más populares son la 4.4 y
la 5. Aquí aparece el problema conocido como fragmentación del panorama
Android. Los dispositivos Android presentan una enorme variedad, como el de los
terminales y sus características, la versión de Android que instalan en ellos los
fabricantes y el software específico que instalan sobre Android. Todo ello hace que
a veces no sea sencillo garantizar que una app funcionará perfectamente en todas
las configuraciones existentes.

Android es la plataforma líder del mercado para apps de dispositivos móviles. Ello
supone que existe una enorme base de proveedores y usuarios, pero también que
los dispositivos son muy variados y heterogéneos en cuanto a sus características.
Android adopta una arquitectura de capas, donde los proveedores de dispositivos
trabajan a nivel de hardware, el consorcio liderado por Google a nivel del sistema
operativo y nosotros trabajamos a nivel de las apps.

Las licencias con las cuales se hace el desarrollo de Android garantizan que
podemos conocer y modificar todas las partes software de la plataforma.

Aspectos clave
Objetivos:

 Conocer las características básicas de Android como entorno de desarrollo


y ejecución de apps.
 Conocer el origen y la evolución histórica de Android.
 Identificar las principales versiones de Android.
 Comprender el problema de la fragmentación en el mercado de los
dispositivos Android.

LECCIÓN COMPLETA
¡Enhorabuena, has completado la actividad!
Siguiente lección

El sistema operativo se basa en el núcleo de Linux (Kernel) y sobre este Android


proporciona un entorno de ejecución. Además de programación en Java también
se pueden introducir fragmentos de programa en C y C++. En la plataforma de
desarrollo encontramos el kit Android Studio (SDK) y el entorno de desarrollo
denominado ID.

2. ANDROID: RECURSOS

Crear apps es una tarea compleja que normalmente se realiza en el marco de


equipos de desarrollo. Estos crean diferentes partes de la aplicación y los integran
con fragmentos previamente existentes. Realizar estas tareas de forma eficiente
requiere de la existencia de ciertos recursos e infraestructura.

En el caso de Android tenemos una amplia oferta de estos recursos. Android


Studio es el entorno de desarrollo. En la web oficial de Android Developers
podemos encontrar tutoriales, ejemplos, guías de buenas prácticas... Además, la
comunidad de creadores entorno Android mantiene múltiples foros de discusión.
Veamos con más detalle estos recursos.

Android proporciona a través de Android Studio un completo entorno de desarrollo.


Podemos descárgalo gratuitamente del sitio web oficial de Android Developers.
Android Studio tiene dos componentes principales: el kit estándar de desarrollo (o
SDK) y el entorno de programación o IDE.

El SDK integra el entorno de ejecución, las librerías del código, ejemplos de


código fuente y los emuladores. Normalmente instalamos Android Studio
completo, pero es posible instalar solo el SDK. Esto lo hacemos cuando queremos
utilizar un IDE diferente del proporcionado por defecto. Android Studio no
incorpora el kit nativo de desarrollo conocido como NDK. El NDK es necesario
para trabajar con fragmentos de código escritos en los lenguajes de programación
C y C++. El NDK se instala por separado. El SDK incorpora además otros
componentes. El SDK Manager es la herramienta que utilizamos para gestionar
los componentes instalados con el SDK. Un componente es un conjunto de
librerías de código de una cierta versión. El SDK Manager es la herramienta que
utilizamos, por ejemplo, para instalar una determinada versión de la plataforma de
Android o las librerías adicionales necesarias para acceder a los servicios de
Google Play. El SDK también incorpora las herramientas necesarias para la
gestión de los emuladores. Los emuladores es lo que llamamos dispositivos
virtuales Android o AVD. Un AVD se define a partir de un dispositivo real. El SDK
incorpora un catálogo de estos dispositivos reales, smartphones, tabletas,
televisores o wearables con una descripción de sus características, principalmente
las relativas a la pantalla. El AVD se define seleccionando uno de esto dispositivos
reales como base, después podemos modificar alguna de sus características,
hardware o software. Entre la características hardware que podemos modificar
están si el dispositivo virtual tendrá o no cámara y el tamaño de la memoria
instalada. La principal característica software que podemos determinar es la
versión de la plataforma Android instalada en el dispositivo virtual. También si
existen librerías adicionales instaladas, por ejemplo las necesarias para acceder a
Google Play.

La mayor parte de las pruebas de nuestras apps las realizaremos con esto
dispositivos virtuales. Solo las pruebas finales las realizaremos con los dispositivos
físicos.

Entre la funcionalidad que nos proporcionan estos dispositivos virtuales está la


posibilidad de simular llamadas, envío y recepción de mensajes de texto cortos,
SMS, diferentes ubicaciones del dispositivo, cambiar el estado de la batería,
diferentes posibilidades de conectividad, por ejemplo, diferentes protocolos de
telefonía y tiempos de retardo. También podemos desplegar simultáneamente
múltiples dispositivos virtuales para simular que interactúan, por ejemplo, en base
al paso y recepción de mensajes de texto corto.
El entorno de programación es el IDE. Proporciona diferente funcionalidad para
crear las apps en Android. La principal es un editor de código especializado para
Android, un editor visual para las interfaces gráficas de usuario. En este editor
visual podemos diseñar las interfaces gráficas sin más que arrastrar componentes
visuales sobre un lienzo de dibujo.

El IDE también nos permite desplegar nuestras aplicaciones en dispositivos


virtuales o reales. Una vez desplegadas podemos ejecutarlas y analizar el estado
interno de la aplicación o su consumo de recursos como memoria y tiempo de
procesador. El entorno facilita estas tareas a través de la ayuda contextual y
asistentes automatizados integrados que guían al usuario en estas tareas.

Otro recurso necesario para la creación de apps es una documentación apropiada.


Necesitamos conocer las posibilidades disponibles, cómo utilizarlas y las guías de
mejores prácticas desarrolladas por la comunidad de creadores. En el caso de
Android, la principal fuente de esta documentación es el sitio web oficial de
Android Developers, gestionado principalmente por Google.

Este sitio web está organizado en base a tres perfiles que aparecen
frecuentemente en la creación de apps. Por un lado, tenemos Distribute, que está
orientado a los gestores que se ocupan sobre todo de la difusión y
comercialización de apps, y están interesados en estadísticas acerca del
comportamiento de los usuarios. En Design nos centramos en la parte de los
diseñadores gráficos que se ocupan del aspecto visual de las apps. Finalmente,
Develop está centrada en los técnicos que crean el código de las apps.

El material disponible para estos perfiles es muy variado. Además de las


herramientas de desarrollo citadas anteriormente, tenemos tutoriales sobre todos
los aspectos de creación de las apps, incluyendo la utilización de las librerías de
código, importar texturas desarrolladas en herramientas de diseño o cómo publicar
una aplicación en Google Play. También encontramos ejemplos, guías de mejores
prácticas (por ejemplo, acerca de cómo fidelizar a los usuarios de una app o cómo
obtener estadísticas significativas de su uso) e historias reales de creadores de
apps y de los elementos de Android que han utilizado. También existe una amplia
comunidad de creadores entorno Android. Esta comunidad mantiene una serie de
foros de discusión, que son el mejor lugar para resolver problemas y dudas más
allá de la documentación.

Los foros son muy variados en cuanto a su temática. En Android Developers


podemos encontrar múltiples foros para los distintos perfiles que contempla el
sitio. Android Fórum y Android Central son fundamentalmente foros para
desarrolladores de apps. El tercero es también para desarrolladores, pero incluye
foros centrados en el desarrollo de la plataforma. En Making money with Android
los gestores tiene foros centrados en monetización.

Crear apps es una actividad compleja que se hace en el marco de equipos de


desarrollo donde participan profesionales con diferentes perfiles: gestores
centrados en aspectos de difusión y comercialización de las apps, diseñadores
que se ocupan el aspecto visual de las mismas y técnicos centrados en la creación
del código. Realizar estas tareas de una manera eficiente requiere de la existencia
de una serie de recursos, incluidos herramientas de desarrollo, tutoriales, guías de
mejores prácticas o ejemplos. Android y su comunidad han hecho un esfuerzo
muy importante para crear y mantener estos materiales. Además los han hecho
accesibles de una forma fácil a todos los interesados y son gratuitos en la mayor
parte de los casos. Por ello, podemos decir que Android es una plataforma móvil
donde es muy fácil empezar a crear apps.

Aspectos clave
Objetivos:

 Conocer los principales recursos necesarios para el desarrollo de apps.


 Conocer los principales recursos disponibles para el desarrollo de apps en
Android.
 Conocer las principales características de las herramientas de desarrollo
para Android.
 Diferenciar entre el SDK y el entorno de programación.
 Conocer las principales fuentes de documentación para Android.
 Conocer los principales foros de discusión de Android.

LECCIÓN COMPLETA

¡Enhorabuena, has completado la actividad!


Siguiente lección

Android SDK viene con un emulador en el que podemos probar la mayoría de


nuestras aplicaciones. Podemos simular GPS, llamadas entrantes, salientes, SMS,
entradas por la pantalla y el teclado, reproducción de audio y vídeo, y
comunicaciones por red. Todos los tipos de aplicaciones están soportadas:
widgets, servicios y actividades. Se pueden instalar y desinstalar como si de un
móvil real se tratara.

3. ANDROID: ELEMENTOS DE UNA APP

Una app de Android tiene una estructura parcialmente definida por la plataforma.
Esto nos permite construir nuestra app a partir de ciertos elementos preexistentes
en las librerías de código. Hoy vas a aprender cuál es la estructura principal de
una app de Android y sus principales componentes.

Una app de Android se compone de varios ficheros. Por una parte, tenemos una
serie de clases Java, parte de las cuales son componentes de la app, están
predefinidas en la plataforma. Tendremos actividades, servicios y receptores de
notificaciones. Las clases auxiliares son creadas desde cero, pueden usar
elementos de las librerías, pero no son modificaciones de ellos. Los recursos son
elementos estáticos, es decir, que no describen funcionalidad. Por ejemplo, el
diseño de un formulario o pantalla de la app, una imagen, un sonido o una
secuencia de palabras, lo que se llama un string. Los recursos se usan desde las
clases, un manifiesto que describe diferentes permisos y requisitos de la app. Por
ejemplo, en el manifiesto indicamos la versión mínima de la plataforma Android
que necesita nuestra app para funcionar correctamente o que nuestra app
necesita acceder a la agenda.

Los componentes de una app pueden ser actividades, servicios y receptores de


notificaciones. Las actividades tienen una interfaz de usuario, el entorno de
ejecución de Android necesita que estas interfaces siempre respondan al usuario
en poco tiempo. Por ello, impone límites al tiempo que la interfaz puede estar sin
responder a eventos en la pantalla. Las tareas de una actividad deben ser, por
tanto, cortas. Si necesitas hacer tareas largas, usa servicios (los servicios no
tienen interfaz de usuario). Los receptores de notificaciones se usan para tratar los
avisos globales del sistema. Ejemplos de estos avisos son los relativos a la batería
o a la cobertura de la red móvil. Tampoco tienen interfaz, pero pueden usar la
barra de notificaciones.

Los recursos son contenido estático, es decir, no definen funcionalidad, se utilizan


desde las clases. Tener los recursos como ficheros independientes, nos facilita,
entre otros aspectos, reutilizarlos en diferentes apps, utilizando formatos
estándares. Por ejemplo, podemos tener imágenes como mapas de bits. También
nos facilita lo que llamamos la internacionalización, es decir, adaptar
automáticamente nuestras apps a diferentes idiomas y países. Por ejemplo,
podemos cambiar el texto de una app dependiendo del país donde está el
dispositivo. También nos facilita la adaptación automática a diferentes
configuraciones de pantalla. Por ejemplo, tamaño, resoluciones u orientaciones.
Por ejemplo, podemos tener diferentes imágenes para la pantalla más pequeña de
un smartphone o la más grande de una tablet.

Android suministra una serie de recursos estándar que aparecen con la propia
plataforma de desarrollo, pero, además, cada una de las apps puede incorporar
sus propios recursos. Los recursos se usan en el entorno de desarrollo a través de
los correspondientes asistentes automatizados. Algunos de los tipos disponibles
son: descripciones de partes de la interfaz de las actividades, menús de las apps,
especificaciones de estilo de la interfaz. Por ejemplo, combinaciones de colores,
fuentes de letras, tamaños, especificaciones de colores, gráficos en distintos
formatos, animaciones, texto, datos como ficheros XML. Cada recurso puede tener
asistentes automáticos especializados para su uso en una app. Aquí puedes ver el
de diseño de interfaz. Cuenta con un área de dibujo sobre la que colocamos
diferentes componentes visuales, para ello solo tenemos que arrastrar y soltar
desde la paleta de componentes.

El último elemento que forma parte de cualquier app Android es el manifiesto. El


manifiesto define algunas características generales de nuestra app. Las más
importantes son el nombre completo de la app (no podemos tener dos apps con el
mismo nombre en un mismo dispositivo móvil), los componentes que forman parte
de la app (actividades, servicios, receptores de notificaciones), los permisos que
necesita nuestra app para funcionar o que necesitan otras apps para utilizarla (por
ejemplo, si necesitamos acceso a la agenda), las librerías de código y los niveles
mínimo y recomendado de la app y de Android que necesita nuestra app para
funcionar.
Aquí puedes ver el aspecto del fichero XML que contiene los datos del manifiesto.
Normalmente esta información se gestiona a través de la ayuda integrada en el
entorno de desarrollo mediante asistentes automatizados.

Una aplicación de Android se construye a partir de ciertos componentes


preexistentes en nuestra plataforma, los que hemos mencionado actividades,
servicios y receptores de notificaciones. La elección entre unos y otros depende,
por ejemplo, de que nuestra funcionalidad tenga o no interfaz de usuario y de que
las tareas sean más o menos cortas. Desde estos componentes de app,
utilizaremos ciertos recursos que son ficheros externos. El hecho de definirlos
como recursos favorece la reutilización y permite participar a expertos que no son
programadores. El último componente de toda app Android es el manifiesto, donde
definimos algunas de las características generales de nuestra aplicación. Por
ejemplo, su nombre completo, los permisos que necesita para funcionar o los
niveles de la app y de Android que requiere. Con esta información sobre Android
ya puedes empezar a pensar en tu primera app. ¡Esperamos verla muy pronto!

Aspectos clave
Objetivos:

 Conocer los principales componentes de una app Android.


 Conocer los tipos de recursos externos que puede utilizar una app de
Android.
 Reconocer la estructura de un proyecto de aplicación para Android.
 Reconocer los elementos fundamentales del código fuente de una
aplicación para Android.

También podría gustarte