Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 0 additions & 11 deletions .editorconfig

This file was deleted.

14 changes: 6 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
#
# SPDX-FileCopyrightText: 2021-2025 Aurora OSS
# SPDX-License-Identifier: GPL-3.0-or-later
#

# Built application files
*.apk
*.ap_
Expand Down Expand Up @@ -41,10 +36,9 @@ gradle-app.setting
*.zip

app/release/*
app/beta/*
app/alpha/*
app/nightly/*
app/vanilla/*
app/huawei/*
app/preload/*


#Exclude signing configurations & keystore
Expand All @@ -53,3 +47,7 @@ signing.properties


.kotlin/*
# Next.js
.next/
out/
node_modules/
23 changes: 5 additions & 18 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,22 @@
#
# SPDX-FileCopyrightText: 2021-2025 Aurora OSS
# SPDX-FileCopyrightText: 2023-2025 The Calyx Institute
# SPDX-License-Identifier: GPL-3.0-or-later
#

variables:
PACKAGE_VERSION: "continuous"
DEBUG_BINARY: "com.aurora.store.vanilla.debug_${CI_COMMIT_SHORT_SHA}.apk"
DEBUG_BINARY_PATH: "app/build/outputs/apk/vanilla/debug/app-vanilla-debug.apk"
DEBUG_BINARY: "com.aurora.store.debug_${CI_COMMIT_SHORT_SHA}.apk"
DEBUG_BINARY_PATH: "app/build/outputs/apk/debug/app-debug.apk"
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/debug/${PACKAGE_VERSION}"

stages:
- build
- lint
- upload
- release

assembleVanillaDebug:
assembleDebug:
stage: build
image: theimpulson/gitlab-ci-android:latest
script:
- './gradlew assembleVanillaDebug'
- './gradlew assembleDebug'
artifacts:
paths:
- $DEBUG_BINARY_PATH
- 'app/schemas/com.aurora.store.data.room.AuroraDatabase/'

lintChecks:
stage: lint
image: theimpulson/gitlab-ci-android:latest
script:
- './gradlew ktlintCheck'

uploadDebug:
stage: upload
Expand Down
2 changes: 1 addition & 1 deletion .gitlab/issue_templates/Bug-Report.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
https://auroraoss.com/guides/wiki-home/
- Provide a general summary of the issue in the Title above.
- Check if your issue or something similar has been reported before (if yes upvote/comment there)
- If you are on latest stable release, please also check if the issue is reproducible on the latest nightly build from here: https://auroraoss.com/files/AuroraStore/Nightly
- If you are on latest stable release, please also check if the issue is reproducible on the latest nightly build from here: https://auroraoss.com/AuroraStore/Nightly/
- Make sure you have read [wiki](https://gitlab.com/AuroraOSS/AuroraStore/-/wikis/home) especially FAQs
- If you did not know already, everything between "<!---" & "~->" are comments in Markdown. These will not be visible unless when editing or viewed as raw file.
-->
Expand Down
55 changes: 55 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# JMODS Architecture

This document outlines the modern, modular Clean Architecture implemented for the JMODS app store.

## Core Principles

- **Clean Architecture**: Strict separation of concerns into Data, Domain, and Presentation layers.
- **Modularization**: High-cohesion, low-coupling modules to improve build times and maintainability.
- **Offline-First**: Reliable access to app metadata using local persistence (Room).
- **Reactive UI**: State-driven UI built with Jetpack Compose and Kotlin Flow.

## Tech Stack

- **UI**: Jetpack Compose, Material 3
- **Dependency Injection**: Hilt
- **Persistence**: Room (SQL), DataStore (Preferences)
- **Network**: OkHttp, Kotlinx Serialization
- **Image Loading**: Coil 3
- **Navigation**: Type-Safe Navigation (Compose)
- **Background Tasks**: WorkManager

## Module Structure

The project is divided into several logical layers and modules within `jmods-android/`:

### 1. Presentation Layer (Features & UI)

- **:jmods:core-ui**: Shared design system. Contains the `JMODSTheme`, common Compose components (e.g., `AppCard`, `JModsTopBar`), and UI utilities.
- **:jmods:feature-home**: Discovery screen. Displays categorized app lists and hero sections.
- **:jmods:feature-details**: App details screen. Shows descriptions, versions, and installation options.
- **:jmods:feature-categories**: Category browsing screen.

### 2. Domain Layer (Business Logic)

- **:jmods:core-domain**: The heart of the app. Contains:
- **Models**: Plain Kotlin classes representing the business entities (e.g., `App`).
- **UseCases**: Granular business logic (e.g., `GetAppsUseCase`, `GetAppDetailsUseCase`).
- **Repository Interfaces**: Definitions for data operations.

### 3. Data Layer (Implementation)

- **:jmods:core-data**: Implements Repository interfaces. Orchestrates between local and remote sources using a "cache-then-network" strategy.
- **:jmods:core-database**: Room-based local persistence. Stores app metadata for offline access and performance.
- **:jmods:core-network**: Remote data source.
- **:jmods:core-auth**: Authentication management.
- **:jmods:core-installer**: Handles APK installation and uninstallation logic.

### 4. Infrastructure

- **:jmods:core-navigation**: Defines type-safe routes and destination models.
- **:jmods:app**: The main entry point for the Android application.

## Web Storefront

The repository also includes a high-performance web storefront built with **Next.js 16**, **React 19**, and **Tailwind CSS 4**, located in the `app/` directory.
45 changes: 0 additions & 45 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,48 +1,3 @@
Changelog : v4.8.1 (73)
• Fix login issues
• Minor bug fixes and improvements
• Translation updates

Changelog: v4.8.0 (72)
• Minimum supported Android version is now Android 6.0
• Switched to Material3 Expressive theme
• Improved support for wide-screen devices
• Fixed an issue where Hebrew language wasn't set properly with per-app language
• Restored search filters functionality

Changelog : v4.7.5 (71)
• Fix app install issue on huawei devices
• Translation updates

Changelog : v4.7.4 (70)
• Do not prompt for microG installs on non-huawei builds
• Translation updates

Changelog : v4.7.3 (69)
• Add capability to install microG bundle on Huawei devices
• Minor bug fixes and improvements
• Translation updates

Changelog : v4.7.2 (68)
• Switch to new APIs for searching and installing apps
• Search filter is no longer available, will be added back later
• Fix crash on navigating to app details page
• Fix crash on spoofing locale
• Translation updates

Changelog : v4.7.1 (67)
• Target Android 16
• Fix bug with opening links to apps
• Support opening the app's detail page from app info settings
• Translation updates

Changelog : v4.7.0 (66)
• New app compatibility ratings powered by Plexus
• Improvements to blacklist manager
• Ability to change auto-update restrictions
• Minor bug fixes and improvements
• Translation updates; additional strings localized

Changelog : v4.6.4 (65)
• Fixed issues with shared library installation for apps like Chrome and WebView
• Support for login into personal account using microG
Expand Down
2 changes: 1 addition & 1 deletion DISCLAIMER.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ You are to hold yourself responsible by installing **Aurora Store** from other s

The following sources are the only official links we provide:

- **F-Droid:** https://f-droid.org/packages/com.aurora.store/
- **F-Droid:** https://f-droid.org/en/packages/com.aurora.store/
- **AuroraOSS Website:** https://auroraoss.com/downloads.php
- **Official Telegram Channel:** https://t.me/AuroraOfficial
- **GitLab:** https://gitlab.com/AuroraOSS/AuroraStore/-/releases
Expand Down
21 changes: 21 additions & 0 deletions LATEST_LEARNINGS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# JMods Architecture Enhancements - Learnings

## Core Persistent Strategy
- Implemented a **Cache-First** strategy in `AppRepositoryImpl`.
- The repository emits cached data from Room immediately before fetching from the network.
- This ensures a fast, responsive UI and allows the app to function offline.

## Modularization & UI Consistency
- Created a `:jmods:core-ui` module to centralize the Design System.
- Feature modules (`feature-home`, `feature-details`) now depend on `core-ui` for shared components like `AppCard` and the global theme.
- This structure reduces code duplication and ensures visual consistency across the entire app.

## Build System & Compatibility
- Standardized all modules to use **Java 21** and **Gradle 8.12**.
- Successfully integrated **Room** with **KSP** in a multi-module environment.
- Navigating between modules using Type-Safe Navigation (`kotlinx-serialization`) is working seamlessly within the `NavHost` in the `app` module.

## Next Steps
- Implement actual APK downloading and installation in `:core-installer`.
- Integrate the real `gplayapi` into `:core-network`.
- Add unit tests for the Repository and UseCases.
5 changes: 2 additions & 3 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -631,8 +631,7 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 2025 Rahul Patel
Copyright (C) 2021, Rahul Kumar Patel

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
Expand All @@ -652,7 +651,7 @@ Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

<program> Copyright (C) 2025 Rahul Patel
AuroraStore Copyright (C) 2019, Rahul Kumar Patel
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
Expand Down
73 changes: 0 additions & 73 deletions LICENSES/Apache-2.0.txt

This file was deleted.

Loading