Skip to content

Latest commit

 

History

189 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SolPan

A simple and elegant mobile application that provides essential information about the sun's position and path.

Get it on Google Play Download on GitHub
Build and Test


☀️ Features

  • Clean, Intuitive UI: A modern interface built with Jetpack Compose and Material 3 Expressive.
  • Solar Panel Optimization: Use the phone sensors to orient your solar panels for maximum energy output.
  • Adaptive Layout: Staggered grid UI that adapts to both phone and tablet screen widths.

📸 Screenshots

🏗️ Architecture

State lives in a ViewModel and is exposed as a single StateFlow, so the composables stay stateless. Event tracking goes through the AnalyticsTracker interface rather than a Firebase call site, which is what makes it testable. The staggered grid picks its column count from the available window width.

🛠️ Building from Source

You need Android Studio and a JDK. CI builds on JDK 25; JDK 21 also works.

git clone https://github.com/mobilemobilellc/solpan.git

Common build commands

# Assemble a debug APK
./gradlew :app:assembleDebug

# Format every module
./gradlew spotlessApply

# Static analysis, every module
./gradlew detekt

# Unit tests, every module (30 tests)
./gradlew testDebugUnitTest

# Coverage report, written to app/build/reports/jacoco/
./gradlew app:jacocoTestReport

# Fail if coverage drops below the floor
./gradlew app:jacocoCoverageVerification

# Regenerate screenshot reference images after an intentional UI change
./gradlew :app:updateDebugScreenshotTest

# Build the API documentation into build/dokka/html
./gradlew :dokkaGenerate

💻 Tech Stack

Category Library / Tool
Language Kotlin 2.4.20
Build AGP 9.4.1 on Gradle 9.7.1, convention plugins in build-logic/
UI Jetpack Compose (BOM 2026.09.00) + Material 3 Expressive 1.5.0-alpha28
Navigation Navigation 3 1.2.0-rc01
State Lifecycle ViewModel + StateFlow 2.11.0
Async Coroutines and Flow
Permissions Accompanist Permissions
Persistence DataStore Preferences
Analytics Firebase Analytics behind AnalyticsTracker, and Crashlytics
Solar maths Commons Suncalc
Screenshot tests Compose Screenshot Testing
Code quality Detekt 1.23.8, Spotless 8.10.2 with ktlint 1.8.0
API docs Dokka 2.2.0, published to GitHub Pages

Exact versions live in gradle/libs.versions.toml; the table above will drift.

🙏 How to Contribute

Contributions are welcome. See CONTRIBUTING.md, and ROADMAP.md for work that is already known to need doing.


About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages