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).