Cómo desarrollar una primera aplicación Android nativa sin conexión
Estamos desarrollando una aplicación nativa de Android (iOS y web a seguir) donde los usuarios pueden crear de forma colaborativa un álbum.
Queremos una experiencia tan perfecta como sea posible cuando el dispositivo no pueda conectarse con el servidor. Algo como mencionado en este blog de Hoodie, pero Hoodie es ahora mismo para Web e iOS y estamos buscando Android ahora.
- No se puede realizar la operación porque no hay ninguna transacción actual al insertar en la base de datos
- Excepción de puntero nulo al crear base de datos sqlite
- Consulta de suma en sqlite en android
- Android-SQLite. Relación de uno a muchos
- Android.database.CursorIndexOutOfBoundsException
Problema
Mantenimiento de datos de álbumes, amigos, imágenes (URL / local, no Bitmap) en el lado del cliente. Ser capaz de sincronizar offline crear / actualizar operaciones al servidor en el futuro, con la resolución de conflictos.
La investigación actual
- HTTPResponseCache : Contras: Caché sólo las solicitudes que se han golpeado una vez. Además necesita un sistema diferente para manejar las acciones de creación / actualización.
- App42 , Kinvey : Backend-as-a-service; Contras: Queremos tener propio backend.
- Microsoft Sync Framework Toolkit : No está seguro de lo bien que funciona con Android
- PouchDB
- Superbus : Resuelve una parte del problema
Personalizado
Mantener los datos en SQLite en Android y MySQL en el servidor Sync con Android Sync Adapter . Sin embargo, esto puede llevar mucho tiempo y tener errores al comenzar.
¿Cómo se debe abordar este problema?
- Cómo guardar listview en android y buscarlo de nuevo cuando sea necesario?
- Android: ¿Cómo importar el contacto desde el teléfono?
- ¿Cómo puedo crear una lista Array con los datos del cursor en Android
- Guardar datos en el método onDestroy de la actividad
- Cómo restablecer la base de datos SqLite en Android?
- Calendario y recordatorio personalizados para Android
- Android SQLite issue - table ... no tiene una columna llamada
- Cómo almacenar datetime en SQLite
Estoy trabajando en un proyecto en este momento, y necesitamos realizar un seguimiento de las entregas y verificar las entregas incluso cuando el usuario está desconectado. El enfoque que utilizo es hacer uso de este complemento ContentProvider Simple Content Provider . Y compruebo si hay internet o no, y si no hay ninguno. Almacena los datos al proveedor y cambia lo que necesita ser cambiado en la BASE DE DATOS y hacer que mi usuario crea que él o ella ha completado el pedido. Y tengo un SyncAdapter esperando el Internet para venir encendido. Y, tengo un servicio push también para actualizar la base de datos una vez que hay un cambio en la base de datos. Tener una comprensión de Google Cloud Messaging ahorraría a su usuario una gran cantidad de batería. Puede haber mejores opciones por ahí. Pero, de mi pequeña experiencia con Android que es cómo mi pequeña ayuda podría ser.
¿Has tenido un vistazo en CouchBase Server y CouchBase Lite ?
Proporcionan una potente herramienta llamada SyncGateway que gestiona para usted toda la sincronización y la fusión de los datos entre el servidor y la base de datos interna. No tienes que codificar nada en tu aplicación móvil para sincronizar.
Couchbase Lite está disponible para iOS y Android. También hay un complemento para Cordova / PhoneGap disponible.
Nunca he tenido ningún problema para compilar, sólo para iOS tener en cuenta para compilar para iOS6 +, no funciona con iOS5
- Android DownloadManager: La descarga falla, pero COLUMN_REASON sólo devuelve "placeholder"
- Android ListView: No se resalta en el tacto, pero funciona cuando uso la trackball