An open API service indexing awesome lists of open source software.

https://github.com/elimu-ai/appstore

📲 Android application which downloads, installs and updates APK files stored on the elimu.ai platform.
https://github.com/elimu-ai/appstore

android apk infrastructural

Last synced: about 1 month ago
JSON representation

📲 Android application which downloads, installs and updates APK files stored on the elimu.ai platform.

Awesome Lists containing this project

README

        

[![Release](https://jitpack.io/v/ai.elimu/appstore.svg)](https://jitpack.io/#ai.elimu/appstore)

# elimu.ai Appstore 📲

Android application which downloads and installs educational apps stored on the [elimu.ai](http://elimu.ai) platform.

## Download Application ⬇️

Download APK (`ai.elimu.appstore-.apk`) at https://github.com/elimu-ai/appstore/releases

### Install the APK

When opening the APK, you might see a prompt saying "Install unknown apps". If so, select "Allow from this source", and return to the installation.

install-unknown-apps

> [!NOTE]
> For step-by-step instructions on how to download and install the software, see [Wiki: elimu.ai Software Installation](https://github.com/elimu-ai/wiki/blob/main/SOFTWARE_INSTALLATION.md).

### Choose Content Language

The first time you launch the Appstore application, it will ask you to select the language that you want to use:

![API_36_Screenshot_20250423_185617](https://github.com/user-attachments/assets/4c336178-b5d6-42a4-85c1-0c3ca559fc17)

For information on how to add support for a new language, see https://github.com/elimu-ai/wiki/blob/main/LOCALIZATION.md.

## What Devices are Being Used?

We are building our software for Android devices with **6"-10" displays** installed with Android **version 8.0** (API 26) or higher.

## Development 👩🏽‍💻

### Software Architecture

[
Software Architecture
](https://github.com/elimu-ai/wiki/blob/main/SOFTWARE_ARCHITECTURE.md)

### REST API

> [!NOTE]
> Note that [`BaseApplication#getRestUrl()`](https://github.com/elimu-ai/appstore/blob/main/app/src/main/java/ai/elimu/appstore/BaseApplication.java#L48) depends on the content language you choose when first launching the app:
* `debug`: http://``.elimu.ai/rest/
* `release`: http://``.elimu.ai/rest/

A list of the currently supported languages is available at https://github.com/elimu-ai/model/blob/main/src/main/java/ai/elimu/model/v2/enums/Language.java

### Utils Library 📦

See https://jitpack.io/#ai.elimu/appstore/ for the latest version.

#### Utils Usage Sample

> [!NOTE]
> To use the `utils` library in another Android app, add the dependency in `app/build.gradle`:

```java
implementation 'ai.elimu:appstore:@aar'
```


#### How to Test `-SNAPSHOT` Versions of the Utils Library

1. Publish the library to your local Maven repository:
```sh
./gradlew clean assemble utils:publishToMavenLocal
```
2. In the app that will be testing the `-SNAPSHOT` version of the library, add `mavenLocal()`:
```diff
allprojects {
repositories {
mavenCentral()
maven {
url "https://jitpack.io"
}
+ mavenLocal()
}
}
```
3. Then change to your `-SNAPSHOT` version of the library:
```diff
[versions]
-elimuAppstore = "2.5.0"
+elimuAppstore = "2.5.1-SNAPSHOT"
```

### Gradle Upgrade

```
./gradlew wrapper --gradle-version x.x.x
```

### Release 📦

To perform a release, follow these steps:

1. Merge your PR into the `main` branch
1. Wait for the ["Gradle Release"](https://github.com/elimu-ai/appstore/actions/workflows/gradle-release.yml) workflow to complete
1. Ensure that the new release version appears at https://jitpack.io/#ai.elimu/appstore with "Status: ok"

> [!IMPORTANT]
> After you publish a new release, remember to also bump the version in all Android app repos that depend on the `utils` library:
> * https://github.com/elimu-ai/launcher/blob/main/gradle/libs.versions.toml
> * https://github.com/elimu-ai/content-provider/blob/main/gradle/libs.versions.toml

---





elimu.ai - Free open-source learning software for out-of-school children 🚀✨



Website 🌐
 • 
Wiki 📃
 • 
Projects 👩🏽‍💻
 • 
Milestones 🎯
 • 
Community 👋🏽
 • 
Support 💜