Skip to content

developerY/ProBase

Repository files navigation

ProBase Monorepo

ProBase is a modular Android repository designed to showcase scalable architecture, modern Android development practices, and professional-grade application structures. It serves as a foundation for multiple applications, primarily focusing on AshBike, a comprehensive cycling companion app.

📱 Applications

🚴 AshBike (Mobile & Wear OS)

The flagship application of this repository. AshBike is a multi-device cycling computer and tracker.

  • App Modules:

  • applications/ashbike/apps/mobile: The primary Android mobile application.

  • applications/ashbike/apps/wear: A companion app for Wear OS devices.

  • Key Features:

  • Ride Tracking: Real-time GPS tracking, speed, distance, and elevation monitoring.

  • Sensor Integration: Support for Bluetooth LE (BLE) Heart Rate monitors, Speed, and Cadence sensors.

  • Health Connect: Seamless integration with Android Health Connect to sync exercise sessions and biometric data.

  • Smart Glass UI: Dedicated UI modules for heads-up displays (likely for smart glasses).

  • Weather Intelligence: Real-time weather updates and forecasts integrated into the ride dashboard.

  • Interactive Maps: Integration with mapping services for route visualization.

📸 PhotoDo

A photo-centric task management application that blends visual documentation with structured workflows.

  • applications/photodo/apps/mobile

  • Key Features:

    • Photo-First Workflow: Capture and attach visual evidence to every task item.
    • Project Hierarchy: Organize tasks into categorized projects (e.g., Shopping, Home Cleaning).
    • Granular Checklists: Manage detailed sub-tasks with real-time state updates.
    • Reactive Persistence: Fully offline-first with Room database and Kotlin Flows.
    • Adaptive Navigation: Built with Material 3 Adaptive and Nav3 for seamless transitions across device types.

🧪 Other Applications

  • GoSwift: (In Development) A performance-oriented mobile utility.
  • Seaweed: (In Development) Experimental feature-focused application.

🏗️ Architecture

This project follows a strict Clean Architecture approach within a Modular Monorepo structure.

Module Organization

  • applications/: Contains the executable app modules (Mobile, Wear). These modules knit together various features.

  • features/: Standalone, feature-specific modules. This separation allows for faster build times and better separation of concerns.

  • ble: Bluetooth Low Energy management.

  • health: Health Connect interactions and data management.

  • ml: Machine Learning implementations.

  • nfc: Near Field Communication capabilities.

  • places: Location and place discovery (likely utilizing Maps/Yelp APIs).

  • qrscanner: QR code scanning functionality.

  • weather: Weather data fetching and UI components.

  • nav3: Exploration of modern Navigation Compose patterns.

  • core/: Shared foundation modules used across features and apps.

  • core:model: Shared domain models and data classes.

  • core:data: Repositories and data sources.

  • core:database: Local persistence (Room).

  • core:network: API clients (Retrofit/Apollo).

  • core:ui: Common UI components, themes, and design system elements.

  • core:util: Utility functions and logging.

  • build-logic/: Custom Gradle Convention Plugins to standardize build configurations across all modules (e.g., Kotlin options, Compose setup, Hilt configuration).


🛠️ Tech Stack


📜 License

This project is licensed under a custom Source Available License. Personal and educational use is permitted, but commercial use and redistribution without prior written consent are restricted.

For full terms and conditions, please see LICENSE.md.


🚀 Getting Started

  1. Clone the repository:
git clone https://github.com/your-username/probase.git
cd probase
  1. Open in Android Studio: Open the project root directory in the latest version of Android Studio (Koala or later recommended).
  2. Sync Gradle: Allow Gradle to sync and download dependencies.
  3. Run AshBike:
  • Select the applications.ashbike.apps.mobile run configuration to deploy to a phone/emulator.
  • Select applications.ashbike.apps.wear to deploy to a Wear OS emulator.

🤝 Contribution

This project uses modularization to enable isolated development. You can work on individual feature modules (e.g., :features:weather) largely independently of the main application modules.

Code Style:

  • The project enforces code style using spotless or similar configured within the build-logic.
  • Compose UI code generally follows the state hoisting pattern.

About

Android Apps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages