cleanyourtv-app
A community-built phone app for Clean Your TV: clean up an Android TV from your phone. No laptop, no coding agent, nothing uninstalled.
Používateľská príručka k aplikácii Organista
Translation pending
OtherGitHub @xvlcekpOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Info about project for organists: https://xvlcekp.github.io/organista/
Prehľad noviniek a hlavných funkcií aplikácie s obrázkami a videami je v používateľskej príručke: https://xvlcekp.github.io/organista/whats-new/
Zdrojom je súbor docs/user-guide/whats-new.md — jediné miesto,
kde sa novinky udržiavajú (single source of truth). Pri vydaní novej verzie pridajte novú sekciu tam.
CHANGELOG.md fileIn this project we use Firebase functions. As they use 3rd party JS libraries, they need to be regulary updated. To update them run:
cd functions/
npm update
Android signing is configured via property files in android/app/keystore/. Both files are gitignored and must be created locally.
android/app/keystore/debug_signing.properties (debug builds)storeFile=keystore/debug.keystore
storePassword=<keystore_password>
keyAlias=androiddebugkey
keyPassword=<key_password>
android/app/keystore/release_signing.properties (release builds)storeFile=keystore/organista.keystore
storePassword=<keystore_password>
keyAlias=organista
keyPassword=<key_password>
When the app is published to the Play Store, Google Play may re-sign the app with its own key. The fingerprints for the Google Play App Signing key must also be registered in Firebase to allow Google Sign-In for the Play Store version of the app.
SHA Fingerprints (Google Play):
06:F8:40:7B:DE:0E:EA:DD:24:EC:93:01:3B:F7:30:F2:9F:D7:9E:008C:84:30:D3:AE:0B:8A:85:9D:8A:28:2F:40:E9:1C:B6:D7:CB:3D:BA:2D:EC:6E:12:D3:6F:63:FD:81:67:45:40Security Note: It is safe for these SHA fingerprints to be publicly visible. They are public identifiers of the certificate and cannot be used to recreate private keys.
Codemagic uses its own native code signing and ignores the Gradle signing config. No property files are needed on CI.
If you modify assets/config/credentials.json, you need to change it also in the pipeline.
cd assets/config/ && openssl base64 < credentials.json | tr -d '\n' | teeCREDENTIALS_JSON_BASE64 repository secret to github.If you modify android/app/google_services.json, you need to change it also in the pipeline.
cd android/app/ && openssl base64 < google-services.json | tr -d '\n' | teeGOOGLE_SERVICES_JSON_BASE64 repository secret to github.flutter upgradegit fetchgit checkout 3.32.5Versions history:
Reinstall dependencies:
cd ios
pod deintegrate (remove all iOS dependencies from workspace)
pod install
Release process:
flutter build ipa --obfuscate --split-debug-info=build/ios/outputs/symbols
open /Users/palo/Projects/organista/build/ios/archive/Runner.xcarchive
Click the Validate App button. If any issues are reported, address them and produce another build. You can reuse the same build ID until you upload an archive. After the archive has been successfully validated, click Distribute App.
The library flutter_cache_manager is not maintained for more then 1 year anymore. Since there is a bug that cache is not removed based on stalePerioad, or maxNrOfCachedFiles, it is overriden by a git commit which is not merged.
Another problem is that the library caches to cache directory which is not under full control of application and can be erased at any time. That is why a new PersistentFileSystem is added and necessary files are stored in /files folder. Be careful when updating the library, because there are these "hacks" (also mentioned in pubspec.yaml).
The app uses Sentry for error tracking and crash reporting. Sentry automatically captures:
Errors are reported via Sentry.captureException() in catch blocks and automatically through SentryWidget wrapper for unhandled exceptions. Debug symbols, obfuscation maps, and source context are uploaded via sentry_dart_plugin during build for readable stack traces with source code visibility.
Shorebird is a tool that allows instant patches for applications on iOS/Android without need reviews on stores. However Shorebird doesn't support obfuscation for iOS yet. They plan to add the support in year 2026.
This is skipped so far and needs to be fixed in the future:
--obfuscate --split-debug-info=build/debug-info --extra-gen-snapshot-options=--save-obfuscation-map=build/app/obfuscation.map.json
The Shorebird is used as an integration on Codemagic - tool to auto deploy app to stores. https://github.com/shorebirdtech/shorebird/issues/1619
deleteStorageFilesOnDocDelete - automation on firebase using Firebase Functions. When musicSheet document is deleted, also musicSheet file is deleted in Firebase Storage.
After every deployment, artifacts needs to be removed in Google Artifact Repository!
https://stackoverflow.com/questions/65849071/flutter-firebase-storage-cors-issue