Cómo hacer una aplicación móvil sin conexión

Hay muchas formas de hacer que su aplicación esté “lista para usar sin conexión”. Guardar un archivo localmente en un archivo .json o .txt ya está listo para usar sin conexión.

La forma tradicional y famosa de hacerlo es a través de SQLite . SQLite tiene su SDK listo para iOS nativo, Android, .NET e incluso tecnologías híbridas como Xamarin, React Native y Cordova.

Pero a lo largo del tiempo, surgieron otras tecnologías que son más robustas como

  • Realm, Realm: crea aplicaciones móviles reactivas en una fracción del tiempo
  • FireBase, habilitando capacidades sin conexión en Android | Base de datos en tiempo real de Firebase
    El | Firebase
  • Servicio móvil de Azure: sincronización de datos sin conexión en aplicaciones móviles de Azure

Estos servicios le permiten sincronizar datos “sin conexión” y “en línea (a través de un almacenamiento en la nube)” sin preocuparse demasiado por la concurrencia.

He usado una variedad de combinaciones diferentes en línea / fuera de línea al desarrollar / liderar el desarrollo de aplicaciones iOS (algunas de las cuales se mencionan a continuación).

Aquí hay algunos ejemplos para describir los diversos escenarios en línea versus fuera de línea. Y también “cómo” hacer que eso suceda en relación con la terminología de iOS.

Aplicaciones que puedes usar / jugar sin conexión: a veces quieres una aplicación que puedas jugar sin conexión. Un ejemplo sería Divino Classic Education (una aplicación educativa de juegos de adivinanzas) donde su juego específico, puntajes y estado de Huevo de Pascua se almacenan en Datos básicos. La única parte de la aplicación que no puedes usar sin conexión es comprar pistas. Todas las opciones y respuestas del cuestionario se almacenan en el código. Por lo tanto, si vas en un viaje largo en avión (y si quieres usar pistas), deberías comprarlas por adelantado. Otras opciones para almacenar datos localmente (en el teléfono) están usando plist o NSUserDefaults.

Aplicaciones con utilidad parcial sin conexión: un par de ejemplos de aplicaciones de la App Store con cierta utilidad sin conexión son Chez Moi: Ideas para el almuerzo y arbustos y muddles. Sin embargo, ninguna de estas aplicaciones habría sido aceptada por la App Store sin la funcionalidad en línea. Chez Moi fue rechazado hasta que incorporó la capacidad de enviar una idea por mensaje de texto para el almuerzo. Y Arbustos y Muddles probablemente habrían tenido el mismo destino. Chez Moi es útil fuera de línea en términos de proporcionar ideas para el almuerzo para el usuario de la aplicación de trabajo en el hogar que desea la experiencia de las sugerencias de menú para que no graviten a un bocadillo de pavo normal todos los días. Los favoritos se almacenan en Core Data y también se puede acceder sin conexión. Chez Moi es aún más útil en línea, ya que se puede utilizar para registrarse diariamente con un padre anciano (con una “Idea para el almuerzo”). Shrubs and Muddles es similar en el sentido de que proporciona recetas para bebidas divertidas y luego las “nombra” para que puedas preparar una bebida especial. Sin embargo, para “compartir” la diversión, la aplicación necesitaría estar en línea.

Aplicaciones que solo son útiles en línea: algunas aplicaciones como Uber y Lyft necesitan estar conectadas para ser útiles. GoSpa, una aplicación que le permite encontrar una apertura ahora para una manicura, pedicura, masaje o peinado cercanos, necesita estar en línea para las siguientes funciones: acceder a mapas, acceder a la base de datos de servicios en la nube y usar mensajes de texto (que le permite enviar un mensaje de texto a una esteticista disponible para verificar la disponibilidad antes de caminar por la puerta del salón). Sería muy difícil impartir utilidad a este tipo de aplicación utilizando solo la funcionalidad fuera de línea.

Según mi experiencia con el desarrollo de aplicaciones, estos son enfoques de ideas para la funcionalidad fuera de línea. Es un ejercicio de optimización considerar qué datos se almacenarán y dónde. Los datos almacenados en la aplicación podrían afectar el tiempo de descarga. Sin embargo, los datos almacenados en la nube requieren que el usuario esté en línea. Para resumir:

Accesibilidad fuera de línea: Datos principales, Plist, NSUserDefaults, Código incrustado

Accesibilidad en línea: mapas, mensajes de texto, Game Center, bases de datos en la nube (cualquier cosa que no esté almacenada localmente en el teléfono)

Advertencia: los usuarios siempre tienen que estar en línea para comprar y descargar la aplicación inicial y cualquier compra en la aplicación que quieran usar (como paquetes de sugerencias).

¿Qué es exactamente lo que quieres decir con “sin conexión”?

Es mucho más fácil crear una aplicación móvil sin conexión que una aplicación móvil en línea. El hecho de que una aplicación se ejecute en un dispositivo móvil no significa que esté “en línea”. Una aplicación “en línea” es aquella que requiere conectividad a Internet para funcionar.

Para desarrollar una aplicación “en línea”, debe tener en cuenta la conectividad / calidad de Internet, así como la posibilidad de tener que desarrollar y pagar su propia aplicación del lado del servidor que proporciona las capacidades “en línea”. Eso es mucho más barato ahora con la llegada de los servicios de Micro en AWS y Azure, pero aún requiere tiempo y reflexión.

Al desarrollar una aplicación “fuera de línea”, realmente no necesita preocuparse por nada de eso, suponiendo que no permita que el usuario comparta nada con Facebook o envíe información analítica y de diagnóstico sobre su aplicación. Tal vez solo desee que acceda y edite fotos en el dispositivo, eso sería un ejemplo perfecto de una aplicación “sin conexión”.

Hablando personalmente, y como soy un desarrollador profesional de C #, soy parcial, sugeriría obtener Visual Studio Community Edition y probar la creación de una aplicación Xamarin. Básicamente, se trata de una aplicación C # que se ejecutará en muchas plataformas, Windows, Android, iOS, etc. Puede hacer todo eso de forma gratuita.

Depende del tipo de aplicación que quieras desarrollar.

Puede comenzar a crear aplicaciones de Android con Android Studio, que es el IDE utilizado para crear aplicaciones de Android.

Si eres principiante en Android, te sugiero que comiences con Android viendo tutoriales en línea y leyendo libros para principiantes. Aquí hay algunos enlaces que te ayudarán

Video tutorial

Desarrollo de Android para principiantes

Libro para principiantes

Guía de Big Nerd Ranch en Android

Espero que esto ayude 🙂

¡Hola chicos!

Depende de muchos factores, creo. Una aplicación puede ser simple o compleja, puede desarrollarse en la oficina o de forma remota (también depende de los términos), qué equipo tiene que hacer … Aquí hay información que puede ser útil para usted.

¡Atentamente! 😉