Preguntas de clase

¿A que se llama programacion mobil?
Programación Movil es desarrollar aplicaciones para aparatos como celulares, smartphones, PDA's, PocketPC's y dispositivos con recursos limitados. Hay que ser claros con la diferencia entre Programación Movil y Programación Embebida, que son cosas parecidas (recursos limitados) pero distintas en esencia. 
Sistemas Operativos para moviles están Symbian, Palm OS y Windows Mobile; así como una versión de Linux. 
 
¿ Cuales son las caracteristicas que se requieren para hacer una aplicacion mobil?
#1 Tener una buena idea
Si ya tienes una idea para tu aplicación, puedes saltarte este punto. Si no es así, lo que realmente necesitas es buscar un problema o necesidad al que darle solución, y estos están por todas partes. 

Los empresarios que han tenido éxito en el desarrollo de Apps móviles han sido capaces de resolver problemas de una manera simple. Cuando miras a tu alrededor, cada producto y servicio que utilizas fueron creados para resolver un problema o cubriur una necesidad. Así que trata de buscar problemas o necesidades en tu vida diaria y realiza una lista. Una vez que tengas una lista exhaustiva, ya puedes empezar a pensar en cómo puedes resolverlos.
 
#2 Definir el objetivo de la aplicación
Tener una gran idea o encontrar un punto del mercado al que no esté dando un producto o servicio es el punto de partida en cada nuevo proyecto. Antes de ir directamente a detallar embargo, debe definir claramente el propósito y la misión de la aplicación móvil:
 
¿Qué va a hacer la aplicación?
¿Cuál es su atractivo principal? Fidelización, uso recurrente (es decir que hay contenido dinámico por ejemplo) o uso único (imagina una app que sólo vale para hacer una felicitación de navidad, pues lo normal es que después de navidad el usuario la desinstale). Este punto nos va a marcar el análisis a posteriori que tengamos que hacer para saber si es normal las tasas de desinstalación, recurrencia de acciones...etc
¿Qué problema concreto va a resolver? ¿Qué necesidad va a cubrir?
Nota: Definir un objetivo claro para la aplicación también va a ayudar a que su desarrollo sea más barato y rápido.
 
Comprobar la demanda
#3 Investigar la posible demanda de la aplicación
º
 
Realizar una investigación en el mercado objetivo demostrará que existe una demanda para la aplicación y que no eres el único que lo considera necesario. Una de las posibles maneras para validar tu idea es utilizar la herramienta Google Keyword Planner, analizando el número de usuarios que buscan solución a ese problema. También puedes crear una landing page que detalle la idea de la aplicación y dar la opción de ampliar la información a los usuarios que lo soliciten por correo electrónico.
 
Otra posibilidad es analizar las tiendas de aplicaciones. Analiza qué aplicaciones tienen éxito y qué tipo de problemas resuelven. Muchas veces podemos encontrar aplicaciones que dan solución a un problema pero no de la mejor manera, y sin embargo tienen éxito por ser la única o de las pocas existentes. En ese caso debes plantearte si la aplicación a desarrollar es capaz de mejorar la ya existente y abarcar ese mercado.
 
Ejemplo: Un ejemplo de esto es Emoji. Se realizó un análisis de las aplicaciones de emoticonos existentes que tenían éxito y se comprobó que había una falta de variedad y funcionalidad en todas ellas, lo que le daba un amplio margen de mejora. En sólo dos semanas desarrollaron una aplicación con más emoticonos que podía ser utilizada en SMS, correo electrónico, Facebook, etc.. y se situó en apenas 6 días en el primer puesto de su categoría y puesto 12 en la clasificación general, con una recaudación de $500/día a través de un sistema Freemium.
 
Otra opción es el gran mercado para los diseñadores llamado Dribbble. Los diseñadores utilizan Dribbble para mostrar su trabajo a los demás, recibir retroalimentación y para conseguir la inspiración de otros artistas. Es un lugar muy recomendable para buscar ideas sobre diseños e implementaciónes.
 
Desarrollo de la aplicación
#4 Registrarse como desarrollador o busca uno
Una vez que tengas una idea clara y que sabes que hay demanda para la aplicación móvil, es necesario registrarse como desarrollador en aquella plataforma en la que quieras desarrollar tu app, ya sea Android, iOS o Windows Phone. No te dejes intimidar por la palabra "desarrollador", no significa que tengas que ser el programador, es simplemente el nombre que se utiliza para la persona encarga de publicar las aplicaciones.
 
Dependiendo del objetivo de la App va a ser mejor desarrollarla en Apple iOS o Google Android (en una de las dos), ya que vas a estar en tiendas de aplicaciones con mucha demanda (también mucha competencia, que no se te olvide). Por ejemplo, los usuarios de iOS son más propensos a hacer compras en apps o pagar por descargarse una aplicación. Además depende del mercado dónde lo queramos posicionar tendrá más sentido crearla en Android o en IOS (hay que analizar el volumen de dispositivos por sistema operativo).
 
Nota: Apple establece una normativa muy severa para todas las aplicaciones que, de no ser cumplida tu aplicación, tu app será rechazada.
 
La contratación del desarrollador puede ser un proceso largo, pero es un tiempo bien empleado ya que de él va a depender en gran parte el éxito del proyecto. Hacer una buena elección te evitará retrasos innecesarios, costes innecesarios y frustración en el futuro. Analiza sus anteriores trabajos para ver sus habilidades a la hora de plasmar las ideas en una aplicación. Comprueba que comprende bien tu idea y que es capaz de desarrollarla en su totalidad. También puedes acudir a empresas especializadas que cuentan con varios desarrolladores y una amplia experiencia para asegurarte unos mejores resultados.
 
#5 Crear bocetos de la aplicación
Desarrollando bocetos sentarás las bases para la futura interfaz. En este paso tienes que conceptualizar visualmente las principales características, el trazado aproximado y la estructura de la aplicación. Tener un primer esbozo de la aplicación ayudará a todo el equipo a comprender el objetivo de la app, ya que se van a utilizar como referencia para las próximas fases del proyecto.
 
Ya sea con papel y lápiz o utilizando medios digitales como Photoshop, lo importante es dar forma a lo que tienes en la cabeza de manera que un programador pueda empezar a entender lo que tratas de crear.

 Para este paso resulta de utilidad fijarse en otras aplicaciones ya existentes que sirvan como inspiración y modelo del que podamos extraer ideas. De esta manera facilitaremos la comunicación con el programador.
 
#6 Crear el Wireframe y el Storyboard
En esta fase las ideas y las características principales de la app se van viendo mucho más claras. Wireframing es el proceso de crear una maqueta o prototipo de la aplicación. Existen muchas herramientas online para crear de prototipos de apps. Las más populares son Balsamiq, Moqups, y HotGloo, que te permiten colocar y estructurar todos los datos y gráficos representativos en su lugar, además de añadir funcionalidad con la colocación de botones, de modo que puedes navegar a través de tu aplicación.
 
Mientras que estás trabajando en los wireframes también tienes que empezar a crear el storyboard o guión gráfico de la aplicación. La idea es construir una hoja de ruta que te ayudará a entender la conexión entre cada pantalla y cómo el usuario navegará a través de la aplicación.
 
#7 Definir el back end
Los wireframes y storyboard ahora se convierten en la base de la estructura del back end. Dibuja un boceto de los servidores, APIs y diagramas de datos. Esta será una referencia muy útil para el desarrollador, y a medida que más personas se unan al proyecto tendrás un diagrama que explica toda la aplicación, para que no tengas que hacerlo tu desde el principio.
 
Nota: Crea tus wireframes y storyboard de acuerdo con las limitaciones técnicas, si los hay.
 
Testeo de la aplicación
#8 Crear un prototipo
Usa tus wireframes para pedir opinión sobre la aplicación a amigos, familiares, colegas y expertos para crear un primer prototipo. Si es posible, invítales a tu estudio y haz que prueban el prototipo en frente de ti y del desarrollador jefe. Dales acceso al wireframe y deja que prueben la app a fondo. No dejes que se vayan sin que te den una opinión honesta, que te ayudará e identificar fallos o enlaces sin salida. Monitoriza cómo utilizan la aplicación, tomando nota de sus acciones y adaptando la interfaz de usuario UI/UX a ellos.
 
Nota: El objetivo es concretar el concepto de la aplicación móvil antes de que entre en el proceso de diseño. Una vez que comiences el diseño es mucho más difícil hacer cambios, por lo que cuanto más partido saques al prototipo, mejor.
 
#9 Construir el back end
Ahora que ya has definido definitivamente la aplicación, es el momento de empezar a trabajar en el back end del sistema. El desarrollador tendrá que configurar servidores, bases de datos, APIs y soluciones de almacenamiento.
 
Nota: Otra cosa muy importante en esta paso es registrar cuentas de desarrollador en las tiendas de aplicaciones para las que estés desarrollando tu app
 
Proceso creativo de la aplicación
#10 Diseño de las "Skins" de la App
"Skins" son lo que los diseñadores/desarrolladores llaman a las pantallas necesarias para la aplicación. El trabajo del diseñador será crear versiones de alta resolución de lo que antes eran wireframes. En definitva convertir bocetos y notas de papel (incluidos post-it) en archivos digitales que se puedan ver en alta definición.
 
Nota: En este paso es crucial incluir y dejar muy claros los comentarios y opiniones de las pruebas del prototipo (del paso #8)
 
#11 Testeo de la aplicación
Una vez que el diseñador acabe de diseñar las skins o las pantallas, todo estará listo para otra ronda de pruebas. No pienses que todo está listo con los pasos que has dado hasta ahora. Por primera vez tienes ese concepto en formato real, con todos los gráficos y todo el texto insertados, lo que significa que puede empezar a testear la aplicación en su diseño previo a la publicación en la App Store. Solidify y Framer son buenas aplicaciones de pruebas para poder probar tu aplicación. Estas aplicaciones permiten importar el diseño de la aplicación y añadir enlaces donde sea necesario para probar el flujo de pantalla a pantalla.
 
Nota: No confundas este paso con la creación de wireframe del paso #6. Al principio se trataba de crear los aspectos básicos de la aplicación, ahora hay que implementar el diseño real, poner enlaces y hacerlo clickable.
 
#12 Revisar y mejorar la App
Una vez que has dado sometido a todas las pruebas posibles al diseño de tu app y has recogido más feedback de los futuros usuarios, debes utilizar estas nuevas ideas para pulir la idea, el uso y el objetivo de la aplicación. Todavía puede cambiar el diseño y pedir a tu desarrollador que haga cambios y mejores en el back end.
 
#13 Refinar cada detalle
A medida que siga el desarrollo tendrás que tener una mirada constante y crítica en tu nueva aplicación. En Android, por ejemplo, el archivo de la aplicación es fácil de instalar en un dispositivo para probar su funcionalidad en un entorno real. iOS, sin embargo, es diferente ya que requiere una plataforma como TestFlight para descargar y probar la aplicación a medida que avances en el desarrollo.
 
Nota: Este es el último paso en el proceso de desarrollo de la aplicación móvil
 
Optimización y publicación de la aplicación
#14 ASO o Optimización de la App
En las App Store existen millones de apps, por lo que para lograr tener éxito es necesario optimizar la aplicación. Para ello hay que tener en cuenta una serie de aspectos que pueden influir en las descargas logradas. Escoger ciertas palabras clave, usar ciertos iconos y descripciones, realizar promoción externa al mercado de aplicaciones o contratar publicidad son algunas de las técnicas que se pueden aplicar. Aquí te dejo todas las que tienes que tener en cuenta.
 
Título: para optimizar la app lo mejor es aprovechar el título para incluir las palabras claves que la definan. Procura que sea lo más corto posible para que de esta manera los buscadores de los distintos dispositivos lo puedan leer al completo.
Categoría:debes de escoger una sola categoría para la aplicación, pero aunque parezca sencillo no lo es tanto. Tienes que colocarte en la piel del usuario paradecidir dónde la buscarían en la app.
Descripción: se trata de captar la atención de los usuarios. Puedes aprovechar este espacio para añadir un CTA (Call to action) atractivo que despierte el interés yconvezca a los dudosos para que finalmente opten por la descarga de tu aplicación.
Utilizar palabras claves: el éxito o el fracaso de la estrategia de ASO dependerá básicamente de las palabras claves que vayas a utilizar. Por eso intenta escoger siempre las más adecuadas y que estén vinculadas con las principales funciones de la app.
Icono: a la hora de tomar decisiones nos dejamos llevar por la imagen, de ahí que sea importante escoger un icono llamativo y original que permita transmitir la filosofía de la aplicación. Siempre será mejor apostar por la sencillez antes que por algo complejo. Procura realizar un análisis con respecto a la competencia para detectar si tu aplicación tiene éxito o pasa desapercibida.
Capturas de pantalla: se trata de una forma muy visual de presentar la aplicación, que puede llegar a ser decisiva para que el usuario se la acabe descargando finalmente. Procura escoger aquellas que resulten atractivas visualmente y que además describan lo mejor posible las características de la aplicación.
También te puede interesar:
 
6 claves para optimizar las Apps de las tiendas de aplicaciones
#15 Publicar la aplicación en el App Store
Una vez probada la aplicación y realizados los cambios necesarios es el momento de publicar la aplicación en las App Store. Android, por ejemplo, no revisa las aplicaciones recién enviadas de inmediato. Ellos la comprobarán en algún momento para ver si funciona, pero la aplicación se publicará casi al instante en Google Play.
 
Al contrario, el tiempo que Apple se va a tomar para revisar y aprobar o rechazar tu aplicación dependerá de si vas a enviarlo como individuo o como una empresa. Si es un individuo, toma de tres a siete días. Si es una empresa, tendrás que esperar de siete a 10 días.
 
Para superar esta espera hay algo que puedes hacer: presentar la app en PreApps. PreApps es un mercado de aplicaciones que ofrece a los desarrolladores la oportunidad de llegar a "early adopters", que son usuarios a los que les gusta probar cualquier app nueva en primer los primeros. De esta manera empezarás a feedback muy valiosos que podrá decirte si va todo por buen camino o hay que empezar a trabajar en la siguiente versión.
 
Nota: Una vez que tu aplicación aparezca en el listado de apps de la tienda de aplicaciones que hayas elegido, es hora de promocionar tu aplicación y aumentar su visibilidad
 
¿Que diferencia tiene el protocolo wap con el protocolo IP?
El TCP y el IP o el Protocolo de Control de Transporte y el Protocolo de Internet son dos de los elementos de red más importantes y necesarios para trabajar con diferentes tipos de redes. Estas pueden ser LAN (Local Area Networks), WAN (Wide Area Networks) o redes de Internet.
 
TCP/IP permite que la información se remita a diferentes redes locales o globales. Sin estos protocolos Internet no funcionaría.
 
Qué es el modelo OSI
El modelo OSI, o interconexión de sistemas abiertos, es aquel de operación estándar con siete capas. Cada una de ellas es independiente de las demás. La capa superior es la aplicación, seguida por la presentación y, a continuación, vienen sesión, transporte, red, enlace de datos, y la capa física, o una en la parte inferior.
 
El propósito de las capas es establecer una secuencia de operaciones donde los datos se desmontan un paso a la vez hasta que están en formato de bits, que es 0 y 1. Esta es la única manera en que una computadora puede procesar la información. Cuando está en formato de bits se transmite a través de la red y se vuelve a montar en el otro extremo.
 
La razón de que se trate de un equipo/red estándar es que los dispositivos no tienen que preocuparse de cómo otros funcionan en otras capas. Ellos son independientes. Así que cada capa en el modelo OSI es independiente de las demás.
 
Aquí está un ejemplo de cómo el modelo OSI funciona con una llamada telefónica.
 
Levantar el auricular: capa uno. Obtener el tono de marcado: capa dos. Marcar un número: capa tres. El número de teléfono pasa a través de una red de circuitos para conectar el otro extremo: capa cuatro. Cuando la otra persona levanta el teléfono, una sesión se ha iniciado: capa cinco. Cuando las dos partes hablan, y hablan el mismo idioma, se trata de la presentación: capa seis. Cuando hay una conversación, esto es la capa siete.
 
Cada una de estas capas funcionan al unísono con las otras, pero son independientes. Si se produce un problema en la cuatro, las otras no se verán afectadas. La solución de problemas se produce en cuatro capas.
 
Qué es TCP
TCP o Protocolo de Control de Transporte se produce en cuatro capas del modelo OSI. Entre las tareas de gestión que controla están el tamaño del segmento, el control de flujo y la tasa de intercambio de datos. Aquí es donde ocurre la entrega de paquetes de información desde una ubicación a otra. En otras palabras, transporta los datos desde una ubicación, la fuente, y los envía a otro lugar, el destino.
 
Algunas otras características que tiene es el acceso remoto. Aquí es donde una parte se puede conectar a otro equipo para el mantenimiento o con el propósito de solucionar problemas.
 
La transferencia de archivos es otra característica. El intercambio de video, música, documentos o imágenes son parte de las operaciones que se llevan a cabo con el protocolo TCP.
 
El correo de la computadora es una parte de la operación de transferencia de archivos, pero en lugar de enviar archivos de gran tamaño, sólo son enviados pequeños mensajes a través de la red.
 
Qué es el Protocolo de Internet
El Protocolo de Internet, IP, cuenta con las direcciones que son necesarias en el envío de datos desde el origen al destino.
 
El esquema de numeración IP es complejo. Basta con decir que es un régimen de 32 bits que tiene una calidad de organización específica.
 
Consulta la analogía del teléfono: el número de IP es similar al número de teléfono. Esto hace que la conexión sea posible.
 
La parte más importante de esto es que la dirección IP tiene cuatro octetos; siendo cada uno de ellos equivalente a ocho bits. Una dirección IP podría tener este aspecto en el sistema binario: 10111110.10101010.00001111.11001100. La misma dirección IP se parece a esto, en DEC: 190.170.15.204.
 
Por último, sólo hay ciertos números permitidos en el régimen de propiedad intelectual, que van de 0 a 255.
 
Cuáles son algunas subcategorías de TCP/IP
TCP fue pensado originalmente para proporcionar un medio para transferir archivos de datos de equipos remotos. Desde mediados de los 90 TCP/IP se ha utilizado en diferentes capacidades.
 
Wireless (inalámbrico): con el aumento del uso de los equipos portátiles era necesario permitir conectarse de forma remota a las redes en diferentes lugares. TCP/IP se convirtió en el protocolo que se utilizó a lo largo de otros inalámbricos para realizar la conexión.
 
VoIP: voz sobre IP. Este es un sustituto para el intercambio de servicio telefónico estándar público. En lugar de utilizar el sistema estándar de telefonía analógica, este sistema utiliza direcciones IP para conectarse a sitios remotos a fin de completar una llamada telefónica. Se necesita un equipo especial para que esta operación se produzca.
 
Seguridad/Acceso a las listas: la seguridad es una gran preocupación en las redes, y si bien el TCP permite que ocurra la conexión y la conexión IP permite que se produzca en el lugar correcto, es importante evitar el acceso no autorizado al sistema. Una forma es crear listas de acceso o listas de direcciones IP que se permiten en la red o hacer una lista de aquellas a las que se impide ingresar en la red.
 
Cuál es el futuro de TCP/IP
El protocolo TCP/IP ha pasado desde una forma bastante estable y nivel de transferencia de información estático a un sistema muy dinámico. Estos protocolos han estado vigentes por más de 20 años. Han sido lo suficientemente robustos debido a que el esquema general, OSI, continúa produciendo las normas que las nuevas tecnologías han logrado poner en práctica.
 
Como se relaciona Java , Android en el celular
Han pasado más de dos semanas y 18000 kilómetros desde mi última aportación a esta casa de locos, pero como os echaba de menos (aunque sé que no es recíproco, vosotros estabais más a gusto sin mí...) tarde o temprano tendría que volver a escribiros algo. Y como El Androide Libre me quiere más de lo que pueda parecer, me ha propuesto un tema curioso y divertido, que espero poder desgranar un poco, resolver alguna duda y compartir opiniones con vosotros: ¿es JAVA malo para Android? ¿quizá un mal necesario? Espero que os resulte instructivo a los que no sabéis, voy a intentar explicarme de la forma menos técnica posible para facilitar la comprensión a todo el mundo.
 
DALVIK, una máquina virtual muy especial
Antes de empezar con el tema es muy importante entender la relación de JAVA con Android, para poder evaluarlo todo en un contexto adecuado.
 
En realidad JAVA en sí mismo tiene poco que ver con Android, aunque algo hay. El funcionamiento de las aplicaciones en Android, de cualquier tipo (fuera del propio sistema operativo), hace que estas corran sobre una máquina virtual llamada DALVIK. Esta máquina es la responsable de que no sea necesario diseñar las aplicaciones específicamente para cada teléfono (aunque haya que prestar algo de atención a elementos como la pantalla para que todo funcione un poco mejor), sino que solamente haya que diseñarlos para Android, y que sea ella quien se encargue de decirle a nuestro sistema qué dispositivos deben ser utilizados en cada momento.
 
Esta máquina, aunque es compatible con JAVA, no es esa misma plataforma estrictamente hablando, pero a la hora de desarrollar, es prácticamente lo mismo para muchas cosas e incluso existen múltiples herramientas para hacer conversiones de JAVA a Android.
 
¿Para qué es necesaria la máquina virtual?
Pues esa es la principal diferencia entre Android y otras plataformas y además la principal razón de que esté tan extendido.
 
La máquina virtual es un intermediario entre las aplicaciones y el sistema. Cuando aparece una nueva plataforma hardware, simplemente hay que adaptar DALVIK para que funcione en ella y automáticamente las aplicaciones que existían con anterioridad empiezan a funcionar en ella también. Es decir, esta arquitectura es la diferencia entre tener que preparar aplicaciones para todas las plataformas de hardware que soporta Android y simplemente desarrollar para Android. Es lo que permite que sea una plataforma altamente compatible y que se pueda aprender con rapidez, permitiendo además que las aplicaciones lleguen a una gran cantidad y variedad de dispositivos.
 
¿Y cual es el problema entonces?
Pues el problema es, como hemos mencionado en el anterior párrafo, que es un intermediario. Como en casi todo en esta vida, añadir intermediarios hace que las tareas que queremos resolver requieran de mayor cantidad de recursos para ello. En el caso de las máquinas virtuales (como JAVA o DALVIK), estas plataformas necesitan recursos hardware de nuestro sistema para funcionar, así como más recursos hardware para poder ejecutar las aplicaciones. Sin embargo, las soluciones nativas (como por ejemplo las de iOS) solamente requieren los recursos del propio sistema, permitiendo con ello que obtengamos unos resultados igual de buenos con un hardware menos potente, o mejores resultados con el mismo.
 
Si bien es cierto que las máquinas virtuales restan eficiencia a la resolución final de cada tarea, tienen una admirable ventaja sobre las tecnologías nativas, pues permiten trabajar sobre muchas y variadas arquitecturas. Y quizá hace unos años habría podido plantearse un cambio de filosofía para un ecosistema como Android, pero actualmente, debido precisamente al éxito que está teniendo, no hay una alternativa. Además, las mejoras en el propio hardware unidas a los avances en la propia máquina virtual hacen que, si bien se sigue notando la MV, cada vez afecte menos a la experiencia de usuario, por lo que o cambian mucho las cosas, o tenemos DALVIK para años.

1.- ¿A qué se llama programación móvil?

Programación móvil es desarrollar aplicaciones para aparatos como celulares, smartphones, PDA's, PocketPC's y dispositivos con recursos limitados. Hay que ser claros con la diferencia entre Programación Movil y Programación Embebida, que son cosas parecidas (recursos limitados) pero distintas en esencia. 

Sistemas Operativos para moviles están Symbian, Palm OS y Windows Mobile; así como una versión de Linux. 

2.- ¿Cuáles son las caracteristicas que se requieren para hacer una aplicacion móvil?

  1. Tener una buena idea: Si ya tienes una idea para tu aplicación, puedes saltarte este punto. Si no es así, lo que realmente necesitas es buscar un problema o necesidad al que darle solución, y estos están por todas partes. 

Los empresarios que han tenido éxito en el desarrollo de Apps móviles han sido capaces de resolver problemas de una manera simple. Cuando miras a tu alrededor, cada producto y servicio que utilizas fueron creados para resolver un problema o cubriur una necesidad. Así que trata de buscar problemas o necesidades en tu vida diaria y realiza una lista. Una vez que tengas una lista exhaustiva, ya puedes empezar a pensar en cómo puedes resolverlos.
  2. Definir el objetivo de la aplicación:Tener una gran idea o encontrar un punto del mercado al que no esté dando un producto o servicio es el punto de partida en cada nuevo proyecto. Antes de ir directamente a detallar embargo, debe definir claramente el propósito y la misión de la aplicación móvil.¿Qué va a hacer la aplicación? ¿Cuál es su atractivo principal? Fidelización, uso recurrente (es decir que hay contenido dinámico por ejemplo) o uso único (imagina una app que sólo vale para hacer una felicitación de navidad, pues lo normal es que después de navidad el usuario la desinstale). Este punto nos va a marcar el análisis a posteriori que tengamos que hacer para saber si es normal las tasas de desinstalación, recurrencia de acciones...etc ¿Qué problema concreto va a resolver? ¿Qué necesidad va a cubrir? Definir un objetivo claro para la aplicación también va a ayudar a que su desarrollo sea más barato y rápido.
  3. Comprobar la demanda: Realizar una investigación en el mercado objetivo demostrará que existe una demanda para la aplicación y que no eres el único que lo considera necesario. Una de las posibles maneras para validar tu idea es utilizar la herramienta Google Keyword Planner, analizando el número de usuarios que buscan solución a ese problema. También puedes crear una landing page que detalle la idea de la aplicación y dar la opción de ampliar la información a los usuarios que lo soliciten por correo electrónico. Otra posibilidad es analizar las tiendas de aplicaciones. Analiza qué aplicaciones tienen éxito y qué tipo de problemas resuelven. Muchas veces podemos encontrar aplicaciones que dan solución a un problema pero no de la mejor manera, y sin embargo tienen éxito por ser la única o de las pocas existentes. En ese caso debes plantearte si la aplicación a desarrollar es capaz de mejorar la ya existente y abarcar ese mercado.
  4. Registrarse como desarrollador o busca uno: Una vez que tengas una idea clara y que sabes que hay demanda para la aplicación móvil, es necesario registrarse como desarrollador en aquella plataforma en la que quieras desarrollar tu app, ya sea Android, iOS o Windows Phone. No te dejes intimidar por la palabra "desarrollador", no significa que tengas que ser el programador, es simplemente el nombre que se utiliza para la persona encarga de publicar las aplicaciones. Dependiendo del objetivo de la App va a ser mejor desarrollarla en Apple iOS o Google Android (en una de las dos), ya que vas a estar en tiendas de aplicaciones con mucha demanda (también mucha competencia, que no se te olvide). Por ejemplo, los usuarios de iOS son más propensos a hacer compras en apps o pagar por descargarse una aplicación. Además depende del mercado dónde lo queramos posicionar tendrá más sentido crearla en Android o en IOS (hay que analizar el volumen de dispositivos por sistema operativo)
  5. Crear bocetos de la aplicación: Desarrollando bocetos sentarás las bases para la futura interfaz. En este paso tienes que conceptualizar visualmente las principales características, el trazado aproximado y la estructura de la aplicación. Tener un primer esbozo de la aplicación ayudará a todo el equipo a comprender el objetivo de la app, ya que se van a utilizar como referencia para las próximas fases del proyecto. Ya sea con papel y lápiz o utilizando medios digitales como Photoshop, lo importante es dar forma a lo que tienes en la cabeza de manera que un programador pueda empezar a entender lo que tratas de crear. Para este paso resulta de utilidad fijarse en otras aplicaciones ya existentes que sirvan como inspiración y modelo del que podamos extraer ideas. De esta manera facilitaremos la comunicación con el programador.
  6. Crear el Wireframe y el Storyboard: En esta fase las ideas y las características principales de la app se van viendo mucho más claras. Wireframing es el proceso de crear una maqueta o prototipo de la aplicación. Existen muchas herramientas online para crear de prototipos de apps. Las más populares son Balsamiq, Moqups, y HotGloo, que te permiten colocar y estructurar todos los datos y gráficos representativos en su lugar, además de añadir funcionalidad con la colocación de botones, de modo que puedes navegar a través de tu aplicación. Mientras que estás trabajando en los wireframes también tienes que empezar a crear el storyboard o guión gráfico de la aplicación. La idea es construir una hoja de ruta que te ayudará a entender la conexión entre cada pantalla y cómo el usuario navegará a través de la aplicación.
  7. Definir el back end: Los wireframes y storyboard ahora se convierten en la base de la estructura del back end. Dibuja un boceto de los servidores, APIs y diagramas de datos. Esta será una referencia muy útil para el desarrollador, y a medida que más personas se unan al proyecto tendrás un diagrama que explica toda la aplicación, para que no tengas que hacerlo tu desde el principio.
  8. Crear un prototipo: Usa tus wireframes para pedir opinión sobre la aplicación a amigos, familiares, colegas y expertos para crear un primer prototipo. Si es posible, invítales a tu estudio y haz que prueban el prototipo en frente de ti y del desarrollador jefe. Dales acceso al wireframe y deja que prueben la app a fondo. No dejes que se vayan sin que te den una opinión honesta, que te ayudará e identificar fallos o enlaces sin salida. Monitoriza cómo utilizan la aplicación, tomando nota de sus acciones y adaptando la interfaz de usuario UI/UX a ellos.
  9. Construir el back end: Ahora que ya has definido definitivamente la aplicación, es el momento de empezar a trabajar en el back end del sistema. El desarrollador tendrá que configurar servidores, bases de datos, APIs y soluciones de almacenamiento.
  10. Diseño de las "Skins" de la App: "Skins" son lo que los diseñadores/desarrolladores llaman a las pantallas necesarias para la aplicación. El trabajo del diseñador será crear versiones de alta resolución de lo que antes eran wireframes. En definitva convertir bocetos y notas de papel (incluidos post-it) en archivos digitales que se puedan ver en alta definición.
  11. Testeo de la aplicación: Una vez que el diseñador acabe de diseñar las skins o las pantallas, todo estará listo para otra ronda de pruebas. No pienses que todo está listo con los pasos que has dado hasta ahora. Por primera vez tienes ese concepto en formato real, con todos los gráficos y todo el texto insertados, lo que significa que puede empezar a testear la aplicación en su diseño previo a la publicación en la App Store. Solidify y Framer son buenas aplicaciones de pruebas para poder probar tu aplicación. Estas aplicaciones permiten importar el diseño de la aplicación y añadir enlaces donde sea necesario para probar el flujo de pantalla a pantalla.
  12.  Revisar y mejorar la App: Una vez que has dado sometido a todas las pruebas posibles al diseño de tu app y has recogido más feedback de los futuros usuarios, debes utilizar estas nuevas ideas para pulir la idea, el uso y el objetivo de la aplicación. Todavía puede cambiar el diseño y pedir a tu desarrollador que haga cambios y mejores en el back end.
  13. Refinar cada detalle: A medida que siga el desarrollo tendrás que tener una mirada constante y crítica en tu nueva aplicación. En Android, por ejemplo, el archivo de la aplicación es fácil de instalar en un dispositivo para probar su funcionalidad en un entorno real. iOS, sin embargo, es diferente ya que requiere una plataforma como TestFlight para descargar y probar la aplicación a medida que avances en el desarrollo.
  14. ASO o Optimización de la App: En las App Store existen millones de apps, por lo que para lograr tener éxito es necesario optimizar la aplicación. Para ello hay que tener en cuenta una serie de aspectos que pueden influir en las descargas logradas. Escoger ciertas palabras clave, usar ciertos iconos y descripciones, realizar promoción externa al mercado de aplicaciones o contratar publicidad son algunas de las técnicas que se pueden aplicar. Aquí te dejo todas las que tienes que tener en cuenta.
  • Título: para optimizar la app lo mejor es aprovechar el título para incluir las palabras claves que la definan. Procura que sea lo más corto posible para que de esta manera los buscadores de los distintos dispositivos lo puedan leer al completo.
  • Categoría:debes de escoger una sola categoría para la aplicación, pero aunque parezca sencillo no lo es tanto. Tienes que colocarte en la piel del usuario paradecidir dónde la buscarían en la app.
  • Descripción: se trata de captar la atención de los usuarios. Puedes aprovechar este espacio para añadir un CTA (Call to action) atractivo que despierte el interés yconvezca a los dudosos para que finalmente opten por la descarga de tu aplicación.
  • Utilizar palabras claves: el éxito o el fracaso de la estrategia de ASO dependerá básicamente de las palabras claves que vayas a utilizar. Por eso intenta escoger siempre las más adecuadas y que estén vinculadas con las principales funciones de la app.
  • Icono: a la hora de tomar decisiones nos dejamos llevar por la imagen, de ahí que sea importante escoger un icono llamativo y original que permita transmitir la filosofía de la aplicación. Siempre será mejor apostar por la sencillez antes que por algo complejo. Procura realizar un análisis con respecto a la competencia para detectar si tu aplicación tiene éxito o pasa desapercibida.
  • Capturas de pantalla: se trata de una forma muy visual de presentar la aplicación, que puede llegar a ser decisiva para que el usuario se la acabe descargando finalmente. Procura escoger aquellas que resulten atractivas visualmente y que además describan lo mejor posible las características de la aplicación.

15.Publicar la aplicación en el App Store :Una vez probada la aplicación y realizados los cambios necesarios es el momento de publicar la aplicación en las App Store. Android, por ejemplo, no revisa las aplicaciones recién enviadas de inmediato. Ellos la comprobarán en algún momento para ver si funciona, pero la aplicación se publicará casi al instante en Google Play. Al contrario, el tiempo que Apple se va a tomar para revisar y aprobar o rechazar tu aplicación dependerá de si vas a enviarlo como individuo o como una empresa. Si es un individuo, toma de tres a siete días. Si es una empresa, tendrás que esperar de siete a 10 días.

Para superar esta espera hay algo que puedes hacer: presentar la app en PreApps. PreApps es un mercado de aplicaciones que ofrece a los desarrolladores la oportunidad de llegar a "early adopters", que son usuarios a los que les gusta probar cualquier app nueva en primer los primeros. De esta manera empezarás a feedback muy valiosos que podrá decirte si va todo por buen camino o hay que empezar a trabajar en la siguiente versión.

3.- ¿Qué diferencia tiene el protocolo wap con el protocolo IP?

El TCP y el IP o el Protocolo de Control de Transporte y el Protocolo de Internet son dos de los elementos de red más importantes y necesarios para trabajar con diferentes tipos de redes. Estas pueden ser LAN (Local Area Networks), WAN (Wide Area Networks) o redes de Internet.

TCP/IP permite que la información se remita a diferentes redes locales o globales. Sin estos protocolos Internet no funcionaría.

4.- ¿Qué es el modelo OSI?

El modelo OSI, o interconexión de sistemas abiertos, es aquel de operación estándar con siete capas. Cada una de ellas es independiente de las demás. La capa superior es la aplicación, seguida por la presentación y, a continuación, vienen sesión, transporte, red, enlace de datos, y la capa física, o una en la parte inferior.

El propósito de las capas es establecer una secuencia de operaciones donde los datos se desmontan un paso a la vez hasta que están en formato de bits, que es 0 y 1. Esta es la única manera en que una computadora puede procesar la información. Cuando está en formato de bits se transmite a través de la red y se vuelve a montar en el otro extremo.

La razón de que se trate de un equipo/red estándar es que los dispositivos no tienen que preocuparse de cómo otros funcionan en otras capas. Ellos son independientes. Así que cada capa en el modelo OSI es independiente de las demás.

Aquí está un ejemplo de cómo el modelo OSI funciona con una llamada telefónica.

Levantar el auricular: capa uno. Obtener el tono de marcado: capa dos. Marcar un número: capa tres. El número de teléfono pasa a través de una red de circuitos para conectar el otro extremo: capa cuatro. Cuando la otra persona levanta el teléfono, una sesión se ha iniciado: capa cinco. Cuando las dos partes hablan, y hablan el mismo idioma, se trata de la presentación: capa seis. Cuando hay una conversación, esto es la capa siete.

Cada una de estas capas funcionan al unísono con las otras, pero son independientes. Si se produce un problema en la cuatro, las otras no se verán afectadas. La solución de problemas se produce en cuatro capas.

5.- ¿Qué es TCP?

TCP o Protocolo de Control de Transporte se produce en cuatro capas del modelo OSI. Entre las tareas de gestión que controla están el tamaño del segmento, el control de flujo y la tasa de intercambio de datos. Aquí es donde ocurre la entrega de paquetes de información desde una ubicación a otra. En otras palabras, transporta los datos desde una ubicación, la fuente, y los envía a otro lugar, el destino.

Algunas otras características que tiene es el acceso remoto. Aquí es donde una parte se puede conectar a otro equipo para el mantenimiento o con el propósito de solucionar problemas.

La transferencia de archivos es otra característica. El intercambio de video, música, documentos o imágenes son parte de las operaciones que se llevan a cabo con el protocolo TCP.

El correo de la computadora es una parte de la operación de transferencia de archivos, pero en lugar de enviar archivos de gran tamaño, sólo son enviados pequeños mensajes a través de la red.

6.- ¿Qué es el Protocolo de Internet?

El Protocolo de Internet, IP, cuenta con las direcciones que son necesarias en el envío de datos desde el origen al destino.

El esquema de numeración IP es complejo. Basta con decir que es un régimen de 32 bits que tiene una calidad de organización específica.

Consulta la analogía del teléfono: el número de IP es similar al número de teléfono. Esto hace que la conexión sea posible.

La parte más importante de esto es que la dirección IP tiene cuatro octetos; siendo cada uno de ellos equivalente a ocho bits. Una dirección IP podría tener este aspecto en el sistema binario: 10111110.10101010.00001111.11001100. La misma dirección IP se parece a esto, en DEC: 190.170.15.204.

Por último, sólo hay ciertos números permitidos en el régimen de propiedad intelectual, que van de 0 a 255.

7.- ¿Cuáles son algunas subcategorías de TCP/IP?

TCP fue pensado originalmente para proporcionar un medio para transferir archivos de datos de equipos remotos. Desde mediados de los 90 TCP/IP se ha utilizado en diferentes capacidades.

Wireless (inalámbrico): con el aumento del uso de los equipos portátiles era necesario permitir conectarse de forma remota a las redes en diferentes lugares. TCP/IP se convirtió en el protocolo que se utilizó a lo largo de otros inalámbricos para realizar la conexión.

VoIP: voz sobre IP. Este es un sustituto para el intercambio de servicio telefónico estándar público. En lugar de utilizar el sistema estándar de telefonía analógica, este sistema utiliza direcciones IP para conectarse a sitios remotos a fin de completar una llamada telefónica. Se necesita un equipo especial para que esta operación se produzca.

Seguridad/Acceso a las listas: la seguridad es una gran preocupación en las redes, y si bien el TCP permite que ocurra la conexión y la conexión IP permite que se produzca en el lugar correcto, es importante evitar el acceso no autorizado al sistema. Una forma es crear listas de acceso o listas de direcciones IP que se permiten en la red o hacer una lista de aquellas a las que se impide ingresar en la red.

8.- ¿Cuál es el futuro de TCP/IP?

El protocolo TCP/IP ha pasado desde una forma bastante estable y nivel de transferencia de información estático a un sistema muy dinámico. Estos protocolos han estado vigentes por más de 20 años. Han sido lo suficientemente robustos debido a que el esquema general, OSI, continúa produciendo las normas que las nuevas tecnologías han logrado poner en práctica.

9.- ¿Como se relaciona Java , Android en el celular?

Han pasado más de dos semanas y 18000 kilómetros desde mi última aportación a esta casa de locos, pero como os echaba de menos (aunque sé que no es recíproco, vosotros estabais más a gusto sin mí...) tarde o temprano tendría que volver a escribiros algo. Y como El Androide Libre me quiere más de lo que pueda parecer, me ha propuesto un tema curioso y divertido, que espero poder desgranar un poco, resolver alguna duda y compartir opiniones con vosotros: ¿es JAVA malo para Android? ¿quizá un mal necesario? Espero que os resulte instructivo a los que no sabéis, voy a intentar explicarme de la forma menos técnica posible para facilitar la comprensión a todo el mundo.

DALVIK, una máquina virtual muy especial

Antes de empezar con el tema es muy importante entender la relación de JAVA con Android, para poder evaluarlo todo en un contexto adecuado.

En realidad JAVA en sí mismo tiene poco que ver con Android, aunque algo hay. El funcionamiento de las aplicaciones en Android, de cualquier tipo (fuera del propio sistema operativo), hace que estas corran sobre una máquina virtual llamada DALVIK. Esta máquina es la responsable de que no sea necesario diseñar las aplicaciones específicamente para cada teléfono (aunque haya que prestar algo de atención a elementos como la pantalla para que todo funcione un poco mejor), sino que solamente haya que diseñarlos para Android, y que sea ella quien se encargue de decirle a nuestro sistema qué dispositivos deben ser utilizados en cada momento.

Esta máquina, aunque es compatible con JAVA, no es esa misma plataforma estrictamente hablando, pero a la hora de desarrollar, es prácticamente lo mismo para muchas cosas e incluso existen múltiples herramientas para hacer conversiones de JAVA a Android.

10.- ¿Para qué es necesaria la máquina virtual?

Pues esa es la principal diferencia entre Android y otras plataformas y además la principal razón de que esté tan extendido.

La máquina virtual es un intermediario entre las aplicaciones y el sistema. Cuando aparece una nueva plataforma hardware, simplemente hay que adaptar DALVIK para que funcione en ella y automáticamente las aplicaciones que existían con anterioridad empiezan a funcionar en ella también. Es decir, esta arquitectura es la diferencia entre tener que preparar aplicaciones para todas las plataformas de hardware que soporta Android y simplemente desarrollar para Android. Es lo que permite que sea una plataforma altamente compatible y que se pueda aprender con rapidez, permitiendo además que las aplicaciones lleguen a una gran cantidad y variedad de dispositivos.

¿Y cual es el problema entonces?

Pues el problema es, como hemos mencionado en el anterior párrafo, que es un intermediario. Como en casi todo en esta vida, añadir intermediarios hace que las tareas que queremos resolver requieran de mayor cantidad de recursos para ello. En el caso de las máquinas virtuales (como JAVA o DALVIK), estas plataformas necesitan recursos hardware de nuestro sistema para funcionar, así como más recursos hardware para poder ejecutar las aplicaciones. Sin embargo, las soluciones nativas (como por ejemplo las de iOS) solamente requieren los recursos del propio sistema, permitiendo con ello que obtengamos unos resultados igual de buenos con un hardware menos potente, o mejores resultados con el mismo.

Si bien es cierto que las máquinas virtuales restan eficiencia a la resolución final de cada tarea, tienen una admirable ventaja sobre las tecnologías nativas, pues permiten trabajar sobre muchas y variadas arquitecturas. Y quizá hace unos años habría podido plantearse un cambio de filosofía para un ecosistema como Android, pero actualmente, debido precisamente al éxito que está teniendo, no hay una alternativa. Además, las mejoras en el propio hardware unidas a los avances en la propia máquina virtual hacen que, si bien se sigue notando la MV, cada vez afecte menos a la experiencia de usuario, por lo que o cambian mucho las cosas, o tenemos DALVIK para años.