Skip to content

v1.0.17

Choose a tag to compare

@samyak2403 samyak2403 released this 06 Apr 07:42
· 35 commits to main since this release

🏗️ Project Architecture

RepoStore follows a modular structure to separate UI concerns from low-level Git logic:

1. app Module (The UI Layer)

  • Activity: MainActivity.kt handles the primary landing and navigation.
  • UI Components: Located in com.samyak.repostore.ui.*.
  • Searchable Language Dialog: Managed by LanguageDialogHelper.kt. This component uses a MaterialAlertDialog to dynamically build a list of locales from assets.locales and provides real-time filtering via TextWatcher.

2. GitCore Module (The Logic Layer)

  • Serves as the backbone for all Git-related tasks.
  • Encapsulates logic for cloning, status checks, and data management.
  • Designed to be reusable across other Android Git clients.

🌍 Localization & Multi-Language Support

One of RepoStore's most robust features is its support for over 80 languages.

  • Dynamic Locale Loading: Locales are loaded from context.assets.locales.
  • Hinglish Implementation: Special logic in LanguageDialogHelper handles Hinglish (Hindi in Latin script) as a first-class citizen, ensuring it is displayed correctly and is searchable by both its native and English names.
  • Resource Management: Each supported language has its own values-xx folder, with strings.xml containing the translated resources.

🚀 Fastlane & Metadata Management

The project implements Fastlane for efficient lifecycle management:

  • Metadata Automation: Localized descriptions, changelogs, and promotional text are stored in fastlane/metadata/android/.
  • Screenshots: High-quality UI screenshots are categorized by locale, improving the app's presentation on various digital stores.
  • Changelog Tracking: Each build version's changes are tracked in locale-specific text files (fastlane/metadata/android/xx-XX/changelogs/).

🛠️ Key Components & Latest Additions

LanguageDialogHelper.kt

  • Search & Filter: Uses a ListView and a custom adapter to allow users to quickly find their language.
  • Theme-Aware: Fully integrates with Material 3 themes, automatically adjusting colors and strokes for focused states.

RepoStoreApp.kt

  • Handles the application's global state and early initializations.

📈 Future Roadmap

  • Further optimization of GitCore for faster background operations.
  • Enhanced analytics for repository usage patterns.
  • Expanded localization coverage for minority regional languages.

Full Changelog: v1.0.14...v1.0.17