DHIS2 Android SDK 1.5.0 has been officially released

Dear DHIS2 community

We are glad to inform you that the version 1.5.0 of the DHIS2 Android Software Development Kit (SDK) has been officially released. The SDK 1.5.0 is compatible with versions 2.30, 2.31, 2.32, 2.33, 2.34, 2.35, 2.36 and 2.37 of DHIS2. Therefore, Android developers can build their own apps fully compatible with those DHIS2 versions (although we recommend to use the latest 3 DHIS2 versions).

This version is mainly focus on improving the analytic capabilities of any DHIS2 android applications using the SDK. It provides the logic and funciontality to evaluate visualization objecs defined in DHIS2 (e.g data visualizer app), while returning formatted results in such a way that can be easily displayed by a mobile application. It also completes the program indicator/dataset indicator engines adding most of the funciontality that is supported in the Web. It is very important to note that all calculations are being based in the data stored locally in the device.

Many of the analytics configurations and funcionality defined in the web are supported in the SDK. The following table summarises all suported features.

We believe that the new analytics engine is a very powerful tool to use when you need to show some analysis of the data collected/downloaded in the mobile (e.g data to action). If this is your case we strongly recommend to use the SDK in order to use most of the DHIS2 analytic capabilities.

The most relevant new features of 1.5 are described below:

Analytic service: Responsible for the evaluation of the analytic results. It accepts a list of dimensions and filters and return the analytics results in a desaggregated form.
ANDROSDK-1387 | Documentation

Visualization service: It evaluates visualizations saved as favourites in the web using data stored in device. It returns a formatted result following the rows, columns and filters defined in the visualization. In order to use the visualization objects, they must be set in the “Analytics” section of the Android Settings webapp (currently it is not possible to download on-demand visualizations from the server)
ANDROSDK-1386 | Documentation

Upload events for read-only programs: Now if a user has read-only access to a program but write access to the program stage/s, the SDK doesn’t allow to create or enroll TEIs, but it allows now to create, update and sync an event which belongs to a TEI previously enroled. This functionality is supported in the web but it was missing in android.

New tracker importer support: Now it is possible to sync tracker data using the new tracker importer endpoints developed by the DHIS2 backend team. Please note that the SDK is also including the legacy tracker importer which is the one used by the DHIS2 Android Capture application at the moment. Although the new tracker importer has been developed since 2.35, we recommend to use it from 2.37.
ANDROSDK-1437 | Documentation

It supports all types of relationships: TEIs, enrollments, and events.
ANDROSDK-344 | Documentation

Updated icons: All the metadata icons have been redisigned and added to the SDK

List of changes with previous SDK versions includes:

Updates in the tracker download strategy for 2.37: As version 2.37 forces to include a program or tracked entity type parameter in the /trackedEntityInstances endpoint, the SDK now is sending the programId per request to /trackedEntityInstances. The most relevant impact is that now if the query is global, it will split homogeneously the remaining numer of TEIs to download per program.

New “syncState” and “aggregatedSyncState” properties: They are replacing the previous “state” property, which is marked as deprecated now.

The funcionality of the SDK including code examples is fully documented . You can also download and check out the SDK code in the following GitHub repository. It also contains more information about all the new features, bug fixing and minor changes in syntax from previous versions.

More detailed information is included in jira.

Don’t forget to have a look at the DHSI2 android skeleton app , which uses the SDK 1.5.0.

The SDK 1.5.0 is being used by the latest DHIS2 Android Capture application (version 2.5.0).

Happy coding
UiO Android team