Overview¶
DHIS2 Android SDK é uma biblioteca que abstrai a complexidade da interação com a API da web DHIS2. Pretende ser um ponto de partida para construir aplicativos Android para DHIS2, cobrindo algumas tarefas que qualquer aplicativo Android deve implementar, como metadados e sincronização de dados.
Objetivos principais:
- API da web DHIS2 abstrata. Não há necessidade de realizar consultas de API no servidor. O SDK inclui métodos para interagir com a API da 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.
- Garanta a compatibilidade DHIS2. Ele encapsula as alterações entre as versões DHIS2 para que o aplicativo não precise se preocupar com elas. Caso o SDK introduza algumas alterações para acomodar uma nova versão DHIS2, o aplicativo pode detectar com segurança essas alterações em tempo de compilação.
Visão geral da tecnologia¶
The SDK is entirely written in Kotlin, which is the language recommended by Google for building Android apps. The SDK uses some Android-specific components, such as libraries to create paged list (LiveData, PagedList) or to access to file system. For this reason, currently the SDK is only runnable in an Android environment.
Every asynchronous operation is exposed in three flavours: a Kotlin suspend function (suspendGet()), an RxJava variant (rxGet()) and a blocking variant (blockingGet()). Coroutines are the recommended approach for new code; the RxJava variants are fully supported. See Dealing with return types.
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.