Skip to content

Publish extensions as a library on maven central #39

Open
@karntrehan

Description

@karntrehan

Project Details

ODK Collect is an open source Android app that replaces paper forms used in survey-based data gathering. It supports a wide range of question and answer types, and is designed to work well without network connectivity.

ODK Collect Extension is a suite of tools built on top of ODK Collect that enable developers to seamlessly integrate ODK Collect into their own Android applications. With this module, developers can take advantage of all the powerful features of ODK Collect, while also customizing the app's functionality to meet their specific needs.

We at Samagra have been leveraging ODK to create forms and collect information in various mobile applications since the last few years. Our apps with ODK integrations have allowed thousands of teachers to undertake spot assessments of their students, helped regulators rate and monitor medical institute effectiveness & assist farmers secure a better income for their produce amongst other high impact social initiatives.

Features to be implemented

Expose Extensions as a library on maven central

By exposing Extensions as a library would enable developers to seamlessly integrate ODK Collect into their own Android applications as a single gradle dependency. With this module, developers can take advantage of all the powerful features of ODK Collect, while also customizing the app's functionality to meet their specific needs.

Upload to Maven central as soon as code is merged in main branch

Creating github action to upload the library as soon as code is merged to main would allow us to seamlessly update the version of the app without needed to do a lot of leg work.

What exists

  1. ODK Collect is wrapped by an extension module and exists in the odk/collect directory.
  2. Basic library uploading code exists.
  3. Basic github action integration also exists.

What needs to be build

  • Create fat aar of the library to upload to maven
  • Create github action to create version and upload to maven central

Learning Path

Complexity

Medium

Skills Required

Java, Kotlin, Gradle & Yaml scripting.

Name of Mentors:

@charanpreet-samagra

Project size

8 Weeks

Product Set Up

As any other Android app. Use the sample app.

Acceptance Criteria

  • Extension is uploaded to mavenCentral() and integratable as single library in existing Android apps.
  • Every merge to main branch uploads a new version of the library to mavenCentral.

Out of Scope

  1. Optimising code of the extensions

Milestones

  • Understanding the requirements
  • Understanding ODK Collect
  • Understanding Extensions
  • Setting up the app
  • Making Extensions a Fat AAR
  • Integrating Fat Extensions into sample
  • Uploading Fat Extensions on mavenCentral
  • Integrate Fat Extension into an existing Android app
  • Create Github action to automate release on merge to main

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions