gkisalatiga / gkisalatiga-foss

GKI Salatiga's free and open source Android church application based on Jetpack Compose
https://gkisalatiga.org
GNU Affero General Public License v3.0
2 stars 3 forks source link
android church-app foss jetpack-compose kotlin open-source

gkisalatiga-foss

GKI Salatiga's free and open source Android church application based on Jetpack Compose.

This repository was migrated from the original repo, GKI Salatiga Plus, which has now been made a public archive.

A. Documentation

Coding Convention

Deep link URI pattern handling

The application is designed to handle URLs matching gkisalatiga.org URI with https scheme.

The application specifically use the https://gkisalatiga.org/app/deeplink URI pattern to handle navigations and patterns for internal uses (e.g., notification user-click action). This means we assume the path /app/deeplink should not exist in gkisalatiga.org's actual website root, so that we can handle internal intent deep-linkings.

Currently, the list of registered deeplinks in this app is as follows:

Any URI with gkisalatiga.org host that does not match the above registered deeplink will automatically trigger the WebView and display the link in the app's WebView.

Debug Logging

Notification

In the most recent update, GKI Salatiga activates the following scheduled notification:

Data Update

GKI Salatiga automatically fetches the latest JSON data from its server every time the app launches. The user can pull down in some screens in order to invoke data update manually. There is also an hourly WorkManager that automatically updates the app's content data to the latest in the background.

UI Class

User interface classes are categorized into two main classifications: Screen and Fragment.

A Screen is similar to an activity in the conventional Android ViewModel. It occupies the whole screen and can be navigated to/from another screen. Each screen UI in GKI Salatiga should be registered in lib.NavigationRoutes so that the navigator can handle the composition of the screen.

A Fragment is any reusable or dynamically rendered composable inside a screen. It cannot be navigated to/from another fragment or screen, and must be explicitly called in a UI composable class in order to be displayed.

Each UI class file should bear a global companion object, useful in passing data and arguments between screens and to expose the current UI's state to the rest of the app. The companion object's class should be prefixed with the word "companion." For instance, ScreenMainCompanion and FragmentHomeCompanion. The companion class should be stored within the same file wherein the respective UI class (e.g., ScreenMain) resides.

B. Roadmap

September 2024

October 2024

November 2024

December 2024

C. Privacy Policy

The latest privacy policy document of GKI Salatiga can be read in this GitHub repository file. However, this README file has summarized the privacy policy as follows:

D. Attribution

Open source materials used as hard-coded parts of the application

Open source materials dynamically used in the WebView

License of biblical materials and electronic books used in the app per user's download consent

E. Credits and Contributions

We thank all the people who have contributed gratefully to the development of GKI Salatiga app. This project was started on July 12, 2024 and would not be possible without the help of these amazing people.

May the heavenly Father bless all your lives!

Advisors

Lead Developer & Programmer

Co-Developers

Project Intern

Pre-Release Testers

Pre-Release Supporters