WallpaperMachine
The wallpapers you love. A new home on your Mac.
Offline, ad-free, no account. Coming soon to Google Play.
Translation pending
LifestyleKotlin · HTMLGitHub @badhon495OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Native Android Tasbih/Dhikr counter app. Fast, offline-first, ad-free, no account needed.
Translation pending
Loading the full README.
Read the full README ↗Native Android Tasbih / Dhikr counter. Fast, offline-first, ad-free, no account required.
Kotlin · Jetpack Compose · Material 3 · Room · DataStore. minSdk 24, targetSdk 37.
app/
src/main/java/com/dhikr/app/
core/ # database, datastore, counter engine, notifications, widget, backup, share, ai, haptics
feature/ # home, counter, tasbih, routines, insights, settings
ui/ # shared UI, theme, icons
baselineprofile/ # com.android.test module — generates app/src/main/baseline-prof.txt
benchmark/ # com.android.test module — Macrobenchmarks (startup, counter, scroll, navigation)
./gradlew :app:assembleDebug # debug APK
./gradlew :app:assembleRelease # R8 + resource-shrunk release APK
./gradlew :app:bundleRelease # release AAB
./gradlew :app:testDebugUnitTest # JVM unit tests
Release signing reads keystore.properties at the repo root (git-ignored). Without it
the release build is unsigned but otherwise identical.
Single Room AppDatabase (dhikr.db). All data is seeded or derived and fully
rebuildable, so schema changes use fallbackToDestructiveMigration(dropAllTables = true)
rather than hand-written migrations. Day-scoped progress rows are stamped with local
midnight and filtered on read — this is the "reset at midnight" behaviour.
Optional. The user supplies their own Google Gemini API key in Settings. It is stored
with EncryptedSharedPreferences (androidx.security-crypto / Tink) and never leaves
the device except in the request to Gemini. Generated benefits text is cached in the
tasbih table.
:baselineprofile generates app/src/main/baseline-prof.txt; :benchmark holds the
Macrobenchmark suite. Run both on a physical device (Macrobenchmark API 29+, Baseline
Profile generation API 33+) with the device locale set to English — tabs are selected
by visible label text.
./gradlew :app:generateBaselineProfile
./gradlew :benchmark:connectedBenchmarkAndroidTest