Saltar a contenido
For the complete DHIS2 documentation index, see llms.txt.

Overview

DHIS2 Android SDK es una biblioteca que abstrae la complejidad de interactuar con la API web DHIS2. Su objetivo es ser un punto de partida para crear aplicaciones Android para DHIS2, cubriendo algunas tareas que cualquier aplicación de Android debería implementar, como metadatos y sincronización de datos.

Objetivos principales:

  • API web abstracta de DHIS2. No es necesario realizar consultas de API en el servidor. El SDK incluye métodos para interactuar con la API web.
  • Work offline. It implements a simplified version of DHIS2 model that is persisted in a local database (Room Database). It ensures that all the metadata required to perform data entry tasks is available at any time to build the data entry forms. Data is saved locally and uploaded to the server when connection is available.
  • Garantizar la compatibilidad con DHIS2. Encapsula los cambios entre las versiones de DHIS2 para que la aplicación no tenga que preocuparse por ellos. En caso de que el SDK introduzca algunos cambios para adaptarse a una nueva versión de DHIS2, la aplicación puede detectar estos cambios de forma segura en tiempo de compilación.

Visión general de la tecnología

El SDK está escrito principalmente en Java 8 utilizando el subconjunto reducido de funciones permitidas en la versión mínima de la API de Android, aunque los componentes más nuevos se implementan en [Kotlin] (https://kotlinlang.org/), que es el lenguaje recomendado por Google para creación de aplicaciones de Android. El SDK utiliza algunos componentes específicos de Android, como bibliotecas para crear listas paginadas (LiveData, PagedList) o para acceder al sistema de archivos. Por esta razón, actualmente el SDK solo se puede ejecutar en un entorno Android.

Utilizar [RxJava] (https://github.com/ReactiveX/RxJava) para facilitar el tratamiento asincrónico de algunos métodos. Aunque es opcional, recomendamos este enfoque para garantizar que las llamadas no se bloqueen.

Other libraries internally used by the SDK are: Koin for dependency injection, Kotlinx Serialization for JSON parsing, Ktor and OkHttpClient for API communication, Room for database persistence, or SQLCipher for DB encryption.