Categorías: Todo - iterativo - framework - software - espiral

por Fernando AC hace 2 años

349

Aplicaciones Móviles

Las metodologías de desarrollo de software abarcan diversos enfoques para gestionar y ejecutar proyectos tecnológicos. El modelo en espiral, introducido por Barry Boehm en 1986, organiza las actividades en ciclos iterativos, permitiendo revisiones y mejoras continuas a lo largo del desarrollo.

Aplicaciones Móviles

Aplicaciones Móviles

Type in the name of the book you have read.

Arquitectura SOA

La arquitectura orientada a servicios (SOA) es el nexo que une las metas de negocio con el sistema de software. Su papel es el de aportar flexibilidad, desde la automatización de las infraestructura y herramientas necesarias consiguiendo, al mismo tiempo, reducir los costes de integración. SOA se ocupa del diseño y desarrollo de sistemas distribuidos y es un potente aliado a la hora de llevar a cabo la gestión de grandes volúmenes de datos, datos en la nube y jerarquías de datos.
La arquitectura orientada a servicios y sus ventajas para el negocio SOA es un estilo arquitectónico para la construcción de aplicaciones de software en base a servicios disponibles. Entre sus principales características destacan:

Sus posibilidades, que optimizan el trabajo con datos y su coordinación.

Su versatilidad, que hace posible que los servicios puedan ser consumidos por los clientes en aplicaciones o procesos de negocio distintos.

Su flexibilidad, que permite la reutilización.

SOA sirve de apoyo a las organizaciones: * Ayudándolas a agilizar los procesos para que puedan hacer negocios de manera más eficiente. *Facilitando su adaptación al cambio. *Habilitando la posibilidad de implementar nuevas estrategias, acordes con el dinamismo de mercado
Sin embargo, pese a estar de actualidad, la arquitectura orientada a servicios no es un concepto nuevo, ya que proviene de la década de los 90. Hoy presenta su mejor cara, altamente eficiente, más abierta e interoperable.

Lenguajes

Python Java JavaScript C# PHP C/C++ R Objective-C Swift Matlab

Plataformas

Dojo
Verivo Software
Appelerator
JQuery Mobile
Sencha
Adobe
Kony
Antenna
Syclo
SAP
Subtopic

Red Movil

Una red de celdas o red celular es una red formada por celdas de radio cada una con su propio transmisor, conocidas como estación base. Estas celdas son usadas con el fin de cubrir diferentes áreas para proveer cobertura de radio sobre un área más grande que el de una celda
A saber, existen tres actualmente: GSM paras redes GPRS y EDGE, UMTS para las 3G, HSDPA y HSDPA+ y LTE para las 4G. La conexión a éstas variará dependiendo de la distancia a la que nos encontremos de la antena en cuestión, así como la velocidad de las mismas.

Red GPRS: el tipo de red más básico y lento, con solo 80 Kbps de velocidad teórica. Solo podremos realizar llamadas y enviar SMS a través de ésta, aunque permite la navegación por Internet a muy bajas velocidades y solo en contadas aplicaciones (WhatsApp, Telegram, Line etc.). Red EDGE: se muestra como la evolución de la red móvil anterior. Con una velocidad máxima de 236 Kbps, supuso una revolución en la época. Algunas aplicaciones más pesadas que las anteriores en cuestión de uso de red pueden ser usadas a través de este tipo de red. Red 3G: pasamos a los tipos de antena UMTS y con éstas, un nuevo tipo de red. La red 3G permite una velocidad teórica máxima de nada más y nada menos que 2 Mbps, destacable sobre todo si las comparamos con las anteriores. Red HSDPA: también llamada 3G+ o 3’5G. Permite una velocidad máxima de 14 Mbps, y hasta hace poco era la panacea para la mayoría de smartphones presentados al mercado. Red HSDPA+: el tipo de red más rapido con antenas UMTS. Sigue siendo veloz a día de hoy y permite velocidades de hasta 84 Mbps de bajada y 22 Mpbs de subida, muy próximas a las obtenidas por las redes 4G. Red 4G: con velocidades teóricas de hasta 150 Mbps de bajada y 50 de subida, se trata de la red móvil más rápida actualmente, a falta de la implantación oficial de las redes 5G en la mayoría de países. Red 5G: aún sigue en fase de pruebas, pero su implementación se espera para 2020. Promete velocidades hábiles de 1 Gbps, superando las obtenidas por la mayoría de lineas ADSL y fibra óptica.

Requerimientos

Type the main events of the book, classifying them in: events from the beginning, events from the middle, and events from the end of the book.

Describe the story visually. Add a representative picture for each of them.

Hazlo responsive
unque sea una aplicación para dispositivos móviles, no todos tienen la misma resolución o tamaño de pantalla, así que tendrás que hacer que se adapte a cada uno de ellos. No es lo mismo una tablet de 10 pulgadas que un móvil de 5. Cada uno requerirá unos tamaños o posiciones de menús, iconos, tipografía…
Ten en cuenta el código de colores
Tenemos asimilado que un elemento rojo hace referencia a un error, así como uno verde a un acierto o confirmación. Mal usados pueden generar reticencia o falta de entendimiento por parte de los usuarios. Los colores de fondo dependen del tipo de contenido de la app. Si tenemos un contenido más informativo y en el que hay que leer bastante, mejor usar un fondo claro y letras oscuras. En caso contrario, que nuestro contenido sea visual o fotográfico, el fondo oscuro destacará nuestros elementos visuales.
Cuida la tipografía
No ha de ser ni muy grande ni muy pequeña, fácilmente legible y con buena resolución. El contraste con el fondo y la distancia de interlineado son factores fundamentales para que sea fácil de leer. Solemos usar los dispositivos con iluminaciones muy diferentes, en exterior y con luz solar, lo que dificulta la lectura. Facilítaselo al usuario y te lo agradecerá.
Estate pendiente de las últimas tendencias
El diseño, como las modas, cambia continuamente, y cada día gusta una cosa. Tener una aplicación al día en cuanto a contenido no es muy difícil, pero en cuanto a diseño la cosa cambia. Uno de los errores habituales es tardar mucho en cambiar un diseño, y al cambiarlo, hacerlo de manera radical. Esto provocará que muchos usuarios desistalen la aplicación. El que le gustaba el diseño antiguo se irá, y el que ya no le gustaba y se ha ido antes, es difícil que vuelva. Ve haciendo leves cambios de manera gradual.
Utiliza bien los iconos
No hay que abusar de ellos, pero si queremos poner «Salir» quizás lo podamos sustituir por un simple aspa. Todos los iconos de la aplicación han de seguir una misma línea. Además, el tamaño importa, y tienen que ser suficientemente grandes para que se puedan tocar con facilidad.
Haz un buen icono de lanzamiento
Será lo primero que vean los usuarios en las tiendas para entrar a descargar. Haz un icono limpio, sin elementos demasiado pequeños, a ser posible sin textos, y que se vea con claridad. Hay iconos planos y con aparente relieve. Va en cuestión de gustos, pero no te pases de complejidad.
Crea un lenguaje visual
Cuanto menos texto tenga la aplicación, mejor. El usuario tiene que poder entender todo lo que le queremos transmitir con una sola imagen. un color más oscuro de fondo, o un degradado, podrá indicar que un elemento está por encima de otro o tiene más importancia.
No cambies de imagen
Si la aplicación es para tu empresa o proyecto, utiliza colores y formas similares. No quieras cambiar la imagen corporativa desde la aplicación. Hay que saber diferenciar cada una de las cosas, pero todo tiene que mantener una misma identidad.

Type the main events from the end.

Add a representative picture for each of them.

Requisitos de diseño imprescindibles para crear una APP
Simplifica
Muchas de las aplicaciones del mercado pecan de querer poner demasiadas cosas, hacer efectos espectaculares, llamar la atención,… Lo único que consiguen es estropearlo. Un diseño limpio y cuidado, con lo estrictamente necesario, hace que la experiencia de usuario sea mejor, y encuentre lo que busca en un solo golpe de vista.

Type the main events from the middle.

Add a representative picture for each of them.

Diferenciar entre aplicación y página web
Aunque puedes servirte de una web para probar cosas de manera sencilla, ten siempre presente que no son lo mismo. Cada una va orientada a dispositivos diferentes y conllevará cambios, que si bien pueden no ser muy grandes, en algunas ocasiones son fundamentales. Trátalo de manera diferente y piensa siempre en el usuario final. Piensa que, por ejemplo, no vas a usar un ratón, solo tu dedo.

Type the main events from the beginning.

Add a representative picture for each of them.

Framework

In contrast to the main idea, the theme is the message, lesson or moral of the book.

Some tips to find out the theme of the book easier:

es un esquema (un esqueleto, un patrón) para el desarrollo y/o la implementación de una aplicación
Es más fácil encontrar herramientas (utilidades, librerías) adaptadas al framework concreto para facilitar el desarrollo.
Facilita la colaboración. Cualquiera que haya tenido que “pelearse” con el código fuente de otro programador (¡o incluso con el propio, pasado algún tiempo!) sabrá lo difícil que es entenderlo y modificarlo; por tanto, todo lo que sea definir y estandarizar va a ahorrar tiempo y trabajo a los desarrollos colaborativos.
El programador no necesita plantearse una estructura global de la aplicación, sino que el framework le proporciona un esqueleto que hay que “rellenar”.

Requerimientos de Software

Los requerimientos de software pueden dividirse en 2 categorías:
Requerimientos funcionales

Los requerimientos funcionales son los que definen las funciones que el sistema será capaz de realizar, describen las transformaciones que el sistema realiza sobre las entradas para producir salidas. Es importante que se describa el ¿Qué? y no el ¿Cómo? se deben hacer esas transformaciones. Estos requerimientos al tiempo que avanza el proyecto de software se convierten en los algoritmos, la lógica y gran parte del código del sistema.

Un requerimiento de software define las funciones, capacidades o atributos de cualquier sistema de software.

Take notes while you read the book. Write here your favorite quotes from the book.

Arquitectura IDE

Una Infraestructura de Datos Espaciales (IDE) es un sistema informático integrado por un conjunto de recursos (catálogos, servidores, programas, aplicaciones, páginas web,…), que permite el acceso y la gestión de conjuntos de datos y servicios geográficos (descritos a través de sus metadatos), disponibles en Internet, que cumple una serie normas, estándares y especificaciones que regulan y garantizan la interoperabilidad de la información geográfica.
La arquitectura IDE se basa en el modelo clásico de tres capas: presentación, aplicación y datos.

Finalmente, en la capa de datos centralizaremos los datos en la base de datos geoespacial PostGIS y la información sobre los usuarios del sistema en la base de datos OpenLDAP.

En la capa de aplicación tendremos el servidor de mapas Geoserver que nos permitirá ofrecer los datos a través de los protocolos estándar para acceso a mapas (WMS), mapas teselados (WMTS), objetos geográficos (WFS) o coberturas (WCS).

En la capa de presentación tendremos las aplicaciones que permitirán al usuario interactuar con la información geográfica. Se trata de la cara visible de la IDE como por ejemplo la aplicación del geoportal o la aplicación móvil.

Sistemas Operativos

Un Sistema Operativo es un Programa (software) que se inicia al encender el ordenador o el teléfono móvil y se encarga de gestionar todos los recursos del sistema informático, tanto de hardware (partes físicas, disco duro, almacenamiento, pantalla, teclado, etc.) como el software (programas e instrucciones) permitiendo así la comunicación entre el usuario y el ordenador.
Firefox OS: de la Fundación Mozilla, responsable del navegador Firefox.

El uso de navegadores en los teléfonos móviles no es exclusivo del tipo de sistema operativo, pero vamos a ver los más usados y con sistema operativo son compatibles. - Safari en iOS - Chrome para Android - Opera Mobile: cuenta con versiones para Android, Maemo, MeeGo, S60 y Windows Mobile - Skyfire: cuenta con versiones para Android, iPad y también para iPhone. - Dolphin: hay versiones para iOS y también para Android. - Firefox: Funciona en iOS y en Android.

BlackBerry OS: desarrollado por RIM (Research In Motion), que también es la empresa fabricante de los BlackBerry.

- El sistema permite multitarea y tiene soporte para diferentes métodos exclusivos como sus trackwheel, trackball, touchpad y pantallas táctiles. - Uso profesional, gracias a sus herramientas para correo electrónico y agenda, teclado QWERTY. - Permite la sincronización con herramientas tales como Novell GroupWise, Microsoft Exchange Server y Lotus Notes.

Windows Phone: desarrollado por Microsoft, es utilizado básicamente por los terminales o Smartphone de gama alta de Nokia.

- Está diseñado para ser similar a las versiones de escritorio de Windows estéticamente y tiene la posibilidad de utilizar importantes herramientas pertenecientes a las suites Office Mobile, Outlook Mobile e Internet Explorer. - Podremos personalizar también nuestra pantalla de bloqueo del teléfono con imágenes e información de aplicaciones. - Skype estará completamente integrado en Windows Phone 8, música en streaming Pandora, podremos crear “habitaciones” de usuarios en el PeopleHub, en las que podremos crear grupos para chats privados, compartir calendarios y notas públicas. - Lo malo de este sistema operativo es que hay pocas aplicaciones (apps) para este sistema operativo.

Symbian: es propiedad de Nokia y el utilizado para sus teléfonos.

- Posee un eficiente uso de todos los recursos de la máquina (especialmente de la batería, la memoria RAM y la ROM). - La paginación bajo demanda permite un mejor aprovechamiento de la memoria RAM de los dispositivos ya que solo se carga en memoria la “pagina” que se va a ejecutar. - El sistema posee componentes que permiten el diseño de aplicaciones multiplataforma, o sea, diferentes tamaños de pantalla, color, resolución, teclados, etc. - Permite la conectividad con diferentes dispositivos a través de Bluetooth.

iOS: es el sistema operativo de la empresa Apple que utilizan los iPhone y el iPad

- Es un sistema operativo cerrado, es decir no se puede modificar. - Tiene un sistema de monitorización del consumo de batería que podría ayudar a gestionarla de forma mucho más eficiente. - Permite que podamos instalar un teclado de terceros. - Funciones que incluyen atajos para mandar fotos, videos, notas de voz, compartir tu ubicación, mejor gestión de conversiones en grupo y una opción para silencio. - Otra característica divertida de iOS es la posibilidad que Apple le ha dado a Siri de identificar canciones. - Sensación de velocidad durante su uso, mediante algunos trucos de programación. - Reciben de manera constante actualizaciones. - Twitter es directamente integrado en el iPhone. - Por último decir que Apple no da licencia del software iOS a terceros, por lo que tan solo los iPhone disponen de este sistema operativo.

Android: es sistema operativo de Google y es usado por HTC, LG, Motorola, Samsung y BQ. Algunas de sus versiones son Apple Pie, Banana Bread, Jelly Bean o KitKat.

Es de código abierto (se puede modificar) es gratis y está basado en Linux. - Se adapta a las diferentes resoluciones de pantalla. - Soporte de HTML, HTML5, Adobe Flash Player, etc., - Un gran catalogo de aplicaciones para descargar, gratuitas y de pago. - Se puede usar Google Talk, para realizar videollamadas, - Multitarea real de aplicaciones. - Muchos tipos de teclados diferentes. - Gran cantidad de formas diferentes de personalizar el escritorio de nuestro Smartphone. - Se pueden buscar aplicaciones que se necesiten e instalarlas directamente con el PC puesto que todo se sincroniza automáticamente en el teléfono sin necesidad de conexión de cables. - Por último diremos que se puede controlar el teléfono móvil desde el ordenador de forma muy sencilla.

Tipo

Reac Native
e trata de la tipología de app más reciente, toda una evolución a la hora de desarrollar aplicaciones móviles. En este caso, se basa en la tecnología React Native, que permite crear apps nativas simplificando los procesos de desarrollo y haciendo posible desarrollarlas bajo un único código tanto para iOS como para Android. React Native utiliza un lenguaje de programación Javascript y el gestor de paquetes NPM, lo que es sinónimo de garantía y estabilidad a largo plazo. Este tipo de aplicaciones optimiza costes, ya que, al contrario de la nativa, no requiere programar para cada plataforma y además asegura que la experiencia de usuario será igual que si se tratase de una app nativa.
Nativa
Las apps nativas se desarrollan en el lenguaje nativo de cada sistema operativo, lo que también determina sus parámetros y características. En el caso de las apps nativas, más que una web, sería algo similar a cuando se instala un programa en un ordenador, solo que esta vez se hace en un dispositivo móvil. Una de las ventajas que presentan las apps nativas es que garantizan la experiencia del usuario y el pleno acceso e integración con las funciones de hardware del dispositivo, aprovechando al máximo sus capacidades. Además, este tipo de aplicaciones permiten tiempos de respuestas mucho más cortos y se puedan utilizar sin conexión a internet. Al contrario que con el resto de tipo de apps, con las nativas prima la calidad y la experiencia del usuario, pudiendo aprovechar todas las posibilidades del dispositivo. Como inconveniente, requieren mayor inversión en el desarrollo y el mantenimiento de 2 fuentes de código.
Híbrida
Se construye de forma similar a una página web, pero se utilizan a través de un navegador integrado dentro de una aplicación nativa. Las apps híbridas permiten aprovechar el uso de algunas de las funcionalidades del dispositivo móvil y simular la experiencia de usuario como si se tratase de una app nativa, ya que se adaptan al dispositivo como tal. Este tipo de apps es recomendable para proyectos efímeros y requiere menor inversión en desarrollo al mantener una sola fuente de código. Uno de los inconvenientes que presenta este tipo de app es que se ve afectada la experiencia de usuario, limitando su velocidad y la integración de los dispositivos hardware, ya que accede a éstos mediante plugins.
Web

The main idea is what the book is mostly about.

Some tips to find out the main idea of a book easier:

Se trata de una web diseñada para su perfecta visualización en dispositivos móviles, ya que se trata de una web embebida en una aplicación que funciona como navegador. En este caso, tiene una apariencia de app pero las mismas limitaciones que si se tratase de una página web. Una web app permite utilizar responsive web design, lo que quiere decir que se adapta a todos los dispositivos. Este tipo de aplicación móvil es la más sencilla de desarrollar y la más económica, ya que únicamente se crea una única aplicación, por lo que es recomendable para proyectos de bajo presupuesto. Como inconvenientes, tiene peor experiencia de usuario y su estabilidad dependerá del navegador que se utilice.

Planificacion

Type the names of the book characters. Start with the main character.

Draw arrows to represent the relationship between them and if it is possible write on them what they represent for each other (if they are relatives, friends, lovers, enemies etc.)

Planificar una aplicación web implica pensar y definir muchas cuestiones de importancia:
Planea los pasos a seguir despues del desarrollo

Ten en cuenta que está fase de desarrollo algún día deberá acabar, estudia con qué frecuencia se deberá actualizar y que se necesita para que este funcione.

Sigue un buen control de calidad

Muchas veces nos equivocamos al planificar los tiempos de proyecto y esto lleva a menudo a los desarrolladores a tener que escribir “código sucio”, esta es una buena opción si lo que quieres es una demo de la aplicación funcionando pero ea actitud te traerá problemas en el futuro.

Evita las distracciones

Optimiza tu tiempo, cuando estés trabajando que nada te distraiga, ni llamadas telefónicas, ni clientes de mensajerías instantáneas, proponte un buen número de horas al día de trabajo aislado dedicado al proyecto.

Elije el lenguaje adecuado

Ya sabes que hay numerosas discusiones sobre ¿Cuál es el mejor lenguaje de programación?, la respuesta a menudo es depende de para que quieras utilizarlo, por eso asegúrate de escoger el lenguaje adecuado.

Ten un plan de proyecto

Asegúrate de que cada desarrollador que trabaje en el proyecto sepa qué es lo que debe de hacer y cuándo tiene que hacerlo, teniendo todo esto redactado en un documento te ayudará a identificar problemas.

Evita construir librerias o frameworks innecesarios

Muchas personas siempre sostienen que es mejor que cada desarrollador utilice sus propias librerías, pero la realidad es que en muchas ocasiones esto supone una gran pérdida de tiempo, es mejor buscar una librería o framework que se parezca lo más posible a lo deseado que desarrollarlo por ti mismo.

Diseño de la interfaz

Esta entrada puede que te ayude en esta parte, es importante conseguir un buen diseño para nuestra interfaz, es importante conseguir un interfaz que se atractivo y útil para la gran mayoría de los usuarios, lo más importante es llegar a conectar con el usuario y la mejor manera es ofrecerle la mayor cantidad de información posible para que se llegue a sentir parte del proyecto pero todo esto muchas veces no lo llegamos a conseguir por una mala elección en la combinación de los colores que se integran en nuestra interfaz.

No empieces por los pequeños detalles

A menudo es más sencillo plantearse el desarrollo de pequeños servicios cómo pueden ser los RSS o una galería de imágenes, pero es fundamental comenzar por lo que vendrá a ser la base de nuestra aplicación, de este modo podremos ir completando nuestra aplicación en un orden lógico, primero los cimientos…

Documentación

Documenta todo lo que puedas tu aplicación en especial aquellas partes de la misma que hayan requerido un mayor tiempo de desarrollo, en un futuro cercano te librará de más de un quebradero de cabeza.

Planificar el Futuro

What are the characteristics that best describe the character? Type them here.

Puede sonar un poco duro que nos tengamos planear el futuro de algo que aún no existe pero es así, que pasa si en un futuro tuviéramos problemas de escalabilidad, y sí tuviéramos que migrar las bases de datos de MySql a Oracle, de una buena planificación depende la dificultad en un futuro de realizar cambios en la plataforma que sostiene nuestra aplicación.

APIS

What is the reason why the author wrote the book?

Las API son un medio simplificado para conectar su propia infraestructura a través del desarrollo de aplicaciones nativas de la nube,pero también le permiten compartir sus datos con clientes y otros usuarios externos.
Interfaz de Programacion de Applicaciones o AP
Las API permiten que sus productos y servicios se comuniquen con otros, sin necesidad de saber cómo están implementados. Esto simplifica el desarrollo de las aplicaciones y permite ahorrar tiempo y dinero. Las API le otorgan flexibilidad; simplifican el diseño, la administración y el uso de las aplicaciones, y proporcionan oportunidades de innovación, lo cual es ideal al momento de diseñar herramientas y productos nuevos (o de gestionar los actuales).

Metodologías para el desarrollo del Software

Take notes while you read the book. Type here the resources, books, or websites that the author mentioned and you want to check out later.

En espiral o de cascada
Espiral

El desarrollo en espiral es un modelo de ciclo de vida del software definido por primera vez por Barry Boehm en 1986, utilizado generalmente en la ingeniería de software. Las actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración representa un conjunto de actividades.

Metodologia Agil
Agile

El desarrollo ágil de software envuelve un enfoque para la toma de decisiones en los proyectos de software, que se refiere a métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto.

Desarrollo rápido de aplicaciones

RAD

El desarrollo rápido de aplicaciones o RAD es un proceso de desarrollo de software, desarrollado inicialmente por James Martin en 1991 basado en el trabajo hecho por Scott Shultz en los 80. El método comprende el desarrollo interactivo, la construcción de prototipos y el uso de utilidades CASE.

By:

Who is the author of the book? Type in his/her name.

Fernando Yael Aguila Camargo 6AMP Programación Submodulo: APLICACIONES MOVILES ANDROID Profa:María Victoria Cortes Gomez