Skip to content

bscommunity/android

Repository files navigation

bscm Android

📱 About

This repository contains the official bscm Android app, allowing players to explore, download, and manage charts directly from their mobile device.

The app is built with Kotlin, Java, and C++, focused on performance, usability, and integration with the bscm ecosystem.

Warning

This project is a work in progress! We’re actively developing features and improving the experience. Check back often for updates.

🚀 Features

  • Explore and download charts
    Browse, view details, and download charts directly in the app.
  • Deep links and system integration
    Supports links like bscm://chart/details/{id} for quick navigation.
  • Update management
    Download and install app and chart updates.
  • Preferences and settings
    Customize themes, notifications, and app behavior.
  • Community sync
    Integration with API and website for always up-to-date data.

📦 Project Structure

  • app/src/main/java/com/meninocoiso/bscm/
    • data/ — Data layer (local, remote, repositories)
      • local/ — Local database and DAOs
      • manager/ — Chart and download managers
      • remote/ — API clients and DTOs
      • repository/ — Data repositories
    • di/ — Dependency injection modules
    • domain/ — Models, enums, and lists
    • presentation/ — UI, navigation, screens, components, viewmodels
    • service/ — Update and download services
    • util/ — Utilities
  • BaseApplication.kt, MainActivity.kt — App entrypoints
  • build.gradle — Project configuration

🛠️ Running Locally

  1. Install dependencies:
    ./gradlew assembleDebug
  2. Run the app on an emulator or Android device:
    ./gradlew installDebug
  3. To test deep links:
    ./adb shell am start -a android.intent.action.VIEW -d "bscm://chart/details/{id}" com.meninocoiso.bscm

Requires Android Studio and Java 17+ installed.

Sensitive Variables and Keystore

  • To sign the app, convert the keystore:
    base64 -w 0 app/keystore.jks > keystore.b64
  • To generate the SHA-256 hash:
    keytool -list -v -keystore keystore.jks
  • Configure variables and credentials in the local.properties file or via environment as needed.

🤝 Contributing

Contributions are welcome!

  • Found a bug? Open an issue
  • Have a feature idea? Suggest or submit a PR
  • Into mobile design? Help us improve the UI and experience!

📄 License

This project follows the bscm organization license. See the main repository for details.

About

bscm is a hub for everything we love: charts, tour passes and themes.

Topics

Resources

Stars

Watchers

Forks

Languages