English ¡ āĻŦāĻžāĻāϞāĻž ¡ Features ¡ Build
A Flutter application for controlling compatible RGB LED strips and bulbs that use infrared (IR). The Android device must have a consumer infrared emitter.
Android application ID: com.marufallammahim.rgbremote
Dart package name: rgb_remote
RGB LED controller-āĻāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āϏāĻšāĻ, āĻāϧā§āύāĻŋāĻ āĻ responsive āĻāύāĻĢā§āϰāĻžāϰā§āĻĄ āϰāĻŋāĻŽā§āĻ āĻ ā§āϝāĻžāĻĒāĨ¤
RGB-LED-REMOTE āĻšāϞ⧠Flutter āĻ Dart āĻĻāĻŋāϝāĻŧā§ āϤā§āϰāĻŋ āĻāĻāĻāĻŋ Android āĻ ā§āϝāĻžāĻĒ, āϝāĻžāϰ āĻāĻĻā§āĻĻā§āĻļā§āϝ āĻĢā§āύā§āϰ built-in IR (Infrared) emitter āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ RGB LED strip/controller āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāĻžāĨ¤ āĻ ā§āϝāĻžāĻĒā§āϰ āϰāĻŋāĻŽā§āĻ UI āĻĨā§āĻā§ āĻāĻŽāĻžāύā§āĻĄ āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻž āĻšāϝāĻŧ; Android native Kotlin layer āϏā§āĻ āĻāĻŽāĻžāύā§āĻĄ IR transmitter API-āϤ⧠āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
- App name:
RGB Remote - Android application ID:
com.marufallammahim.rgbremote - āĻĒā§āϰāϝā§āĻā§āϤāĻŋ: Flutter, Dart, Android/Kotlin, MethodChannel
- āϞāĻā§āώā§āϝ āĻĒā§āϞā§āϝāĻžāĻāĻĢāϰā§āĻŽ: Android
- āĻāύā§āĻāĻžāϰāύā§āĻ: IR āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻžāύā§āϰ āĻāύā§āϝ āĻāύā§āĻāĻžāϰāύā§āĻ āϞāĻžāĻā§ āύāĻž
āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ āύā§āĻ: IR āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ āĻāĻžāĻ āĻāϰāĻžāϰ āĻāύā§āϝ āĻĢā§āύ⧠IR emitter āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§ āĻāĻŦāĻ LED controller-āĻā§ āĻ ā§āϝāĻžāĻĒā§āϰ āĻĒāĻžāĻ āĻžāύ⧠IR āĻĒā§āϰā§āĻā§āĻāϞ/āĻāĻŽāĻžāύā§āĻĄ āϏāĻŽāϰā§āĻĨāύ āĻāϰāϤ⧠āĻšāĻŦā§āĨ¤ āĻļā§āϧ⧠āĻ ā§āϝāĻžāĻĒ āĻāύāϏā§āĻāϞ āĻāϰāϞā§āĻ āϏāĻŦ āĻĢā§āύ āĻŦāĻž āϏāĻŦ LED controller-āĻ āĻāĻžāĻ āĻāϰāĻžāϰ āύāĻŋāĻļā§āĻāϝāĻŧāϤāĻž āύā§āĻāĨ¤
āĻŦāϰā§āϤāĻŽāĻžāύ āϏā§āϰā§āϏ āĻ āĻĒā§āϰāĻāϞā§āĻĒ-āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āύāĻĨāĻŋāϤ⧠āĻĨāĻžāĻāĻž āĻāĻžāϰā§āϝāĻāĻžāϰāĻŋāϤāĻžāĻā§āϞā§:
- đī¸ Remote control UI â LED controller-āĻāϰ āĻāύā§āϝ āĻŦā§āϤāĻžāĻŽāĻāĻŋāϤā§āϤāĻŋāĻ āϰāĻŋāĻŽā§āĻ āĻāύā§āĻāĻžāϰāĻĢā§āϏāĨ¤
- đ¨ Preset controls â āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ
ONEāĻTWOpreset āĻĨā§āĻā§ āĻāĻŽāĻžāύā§āĻĄ āύāĻŋāϰā§āĻŦāĻžāĻāύāĨ¤ - đĄ Brightness control â āϏāĻŽāϰā§āĻĨāĻŋāϤ IR āĻāĻŽāĻžāύā§āĻĄ āĻĻāĻŋāϝāĻŧā§ āĻāĻā§āĻā§āĻŦāϞāϤāĻž āύāĻŋāϝāĻŧāύā§āϤā§āϰāĻŖ; āĻšāĻžāϰā§āĻĄāĻāϝāĻŧā§āϝāĻžāϰ/āĻĒā§āϰāĻŋāϏā§āĻ āĻ āύā§āϝāĻžāϝāĻŧā§ āĻāĻāϰāĻŖ āύāĻŋāϰā§āĻāϰāĻļā§āϞāĨ¤
- đ Appearance settings â
DarkāĻAMOLED blackāĻĨāĻŋāĻŽ āĻŦā§āĻā§ āύā§āĻāϝāĻŧāĻž āĻāĻŦāĻ āĻĒāĻāύā§āĻĻ āϏāĻāϰāĻā§āώāĻŖāĨ¤ - đ Transmission status â
SENDING,SENTāĻSEND FAILEDāĻ āĻŦāϏā§āĻĨāĻž āĻĻā§āĻāĻžāύā§āĨ¤SENTāĻŽāĻžāύ⧠Android-āĻāϰ IR transmit call āϏāĻŽā§āĻĒāύā§āύ āĻšāϝāĻŧā§āĻā§; LED controller āĻĨā§āĻā§ āύāĻŋāĻļā§āĻāĻŋāϤ āĻĒā§āϰāϤāĻŋāĻā§āϰāĻŋāϝāĻŧāĻž āĻĒāĻžāĻāϝāĻŧāĻž āύāϝāĻŧāĨ¤ - đ āĻāĻā§āĻāĻŋāĻ sound feedback â āϏāĻžāĻāύā§āĻĄ āϞā§āĻĄ āύāĻž āĻšāϞ⧠āĻŦāĻž āĻ āύā§āĻĒāϞāĻŦā§āϧ āĻĨāĻžāĻāϞ⧠āϏā§āĻāĻŋ IR āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻžāύ⧠āĻāĻāĻā§ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāĻĨāĻž āύāϝāĻŧāĨ¤
- đŗ Vibration setting â vibration āĻāĻžāϞā§/āĻŦāύā§āϧ; āĻĒā§āϰāĻĨāĻŽāĻŦāĻžāϰ āĻāύāϏā§āĻāϞ⧠āĻĄāĻŋāĻĢāϞā§āĻ OFFāĨ¤
- đž Settings persistence â āϏāĻŽāϰā§āĻĨāĻŋāϤ āϏā§āĻāĻŋāĻāϏ SharedPreferences-āĻ āϏāĻāϰāĻā§āώāĻŖā§āϰ āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĨ¤
- đĄī¸ IR input validation â Pronto data, frequency āĻ timing values āϝāĻžāĻāĻžāĻ; queue āĻŦā§āϝāϏā§āϤ āĻĨāĻžāĻāϞā§
BUSYerror āĻĢā§āϰāϤ āĻĻā§āĻāϝāĻŧāĻžāϰ āĻŦā§āϝāĻŦāϏā§āĻĨāĻžāĨ¤ - âī¸ Native Android bridge â Flutter
MethodChannelāĻĨā§āĻā§ Kotlin/Android IR API-āϤ⧠āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻžāύā§āĨ¤ - đą Responsive layout â āϰāĻŋāĻŽā§āĻ āĻāĻžāϰā§āĻĄā§āϰ āĻ āĻŦāϏā§āĻĨāĻžāύ āĻ āĻ āĻā§āϝāύā§āϤāϰā§āĻŖ spacing āϏāĻŽāύā§āĻŦāϝāĻŧā§āϰ āĻāĻžāĻ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤāĨ¤
āϏāϤāϤāĻž āĻ āϏā§āĻŽāĻžāĻŦāĻĻā§āϧāϤāĻž: āĻāĻā§āϞ⧠āϏā§āϰā§āϏ/āĻāĻŽāĻĒā§āϞāĻŋāĻŽā§āύā§āĻā§āĻļāύ āϰāĻŋāĻĒā§āϰā§āĻā§ āύāĻĨāĻŋāĻā§āĻā§āϤ āĻĢāĻŋāĻāĻžāϰāĨ¤ Flutter analyze, automated tests, release APK build, APK signature verification āĻāĻŦāĻ āĻŦāĻžāϏā§āϤāĻŦ IR hardware test āϏāĻĢāϞ āĻšāϝāĻŧā§āĻā§âāĻāĻŽāύ āĻĻāĻžāĻŦāĻŋ āĻāĻ README āĻāϰāĻā§ āύāĻžāĨ¤
- āĻŦā§āϝāĻŦāĻšāĻžāϰāĻāĻžāϰ⧠āϰāĻŋāĻŽā§āĻ UI-āϤ⧠āĻāĻāĻāĻŋ āĻŦā§āϤāĻžāĻŽ āĻŦāĻž preset āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰā§āύāĨ¤
- Flutter layer āϏāĻāĻļā§āϞāĻŋāώā§āĻ āĻāĻŽāĻžāύā§āĻĄ āĻ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ parameters āĻĒā§āϰāϏā§āϤā§āϤ āĻāϰā§āĨ¤
MethodChannel-āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ Android native Kotlin layer-āĻ request āĻĒāĻžāĻ āĻžāύ⧠āĻšāϝāĻŧāĨ¤- Native layer input āϝāĻžāĻāĻžāĻ āĻāϰ⧠IR transmission queue-āϤ⧠āĻāĻŽāĻžāύā§āĻĄ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
- āĻĢā§āύā§āϰ IR emitter āϏāĻŽāϰā§āĻĨāĻŋāϤ LED controller-āĻ āϏāĻāĻā§āϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
- āĻ
ā§āϝāĻžāĻĒ transmission call-āĻāϰ āĻĢāϞ āĻ
āύā§āϝāĻžāϝāĻŧā§
SENDING,SENTāĻ āĻĨāĻŦāĻžSEND FAILEDstatus āĻĻā§āĻāĻžāϝāĻŧāĨ¤
āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ: āĻ
ā§āϝāĻžāĻĒā§āϰ SENT status controller āĻŦāĻžāϏā§āϤāĻŦā§ āϰāĻ/āĻŽā§āĻĄ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāϰā§āĻā§âāĻāĻŽāύ hardware acknowledgement āύāϝāĻŧāĨ¤
| āĻ āĻāĻļ | āĻā§āĻŽāĻŋāĻāĻž |
|---|---|
| Flutter / Dart | UI, screen, remote controls āĻ app logic |
| Android / Kotlin | Native IR transmission, sound loading āĻāĻŦāĻ Android platform integration |
| MethodChannel | Flutter āĻ native Android code-āĻāϰ āĻŽāϧā§āϝ⧠āϝā§āĻāĻžāϝā§āĻ |
| SharedPreferences | āύāĻŋāϰā§āĻŦāĻžāĻāĻŋāϤ app settings āϏāĻāϰāĻā§āώāĻŖ |
| GitHub Actions | CI checks āĻ Android release APK āϤā§āϰāĻŋāϰ workflow |
āĻĒā§āϰāϧāĻžāύ source directory-āĻā§āϞā§:
lib/
application/ # Application services
core/ # Shared config/constants
data/ # Persistence/data sources
domain/ # Domain models
plugins/ # Platform bridge / IR plugin
presentation/ # Screens, widgets and UI
android/
app/src/main/kotlin/ # Native Android implementation
.github/workflows/ # GitHub Actions workflows
test/ # Automated tests
āĻĢā§āϞā§āĻĄāĻžāϰā§āϰ āϏāĻ āĻŋāĻ āύāĻžāĻŽ/āĻŦāĻŋāύā§āϝāĻžāϏ branch āĻŦāĻž āϏāĻāϏā§āĻāϰāĻŖāĻā§āĻĻā§ āĻŦāĻĻāϞāĻžāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻĒāϰā§āϰāĻāĻŋ āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻĒāϰāĻŋāĻāĻŋāϤ architecture-āĻāϰ āϏāĻžāϰāĻžāĻāĻļāĨ¤
GitHub repository-āϰ commit history āĻĨā§āĻā§ contributors-āĻāϰ āĻŦāϰā§āϤāĻŽāĻžāύ āϤāĻžāϞāĻŋāĻāĻž āĻĻā§āĻā§āύ:
- Contributors graph â GitHub commit activity āĻ āύā§āϝāĻžāϝāĻŧā§ āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧāĻāĻžāĻŦā§ āϤā§āϰāĻŋāĨ¤
- Commit history
āύāϤā§āύ contributor-āĻāϰ commit repository-āϤ⧠āϝā§āĻā§āϤ āĻšāϞ⧠GitHub-āĻāϰ contributor view āϏāĻžāϧāĻžāϰāĻŖāϤ āύāĻŋāĻā§ āĻĨā§āĻā§āĻ āĻāĻĒāĻĄā§āĻ āĻšāϝāĻŧāĨ¤ āĻāĻāĻŋ commit author metadata-āĻāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻāϰ āĻāϰā§; āϏāĻŦ āϧāϰāύā§āϰ āĻ āĻŦāĻĻāĻžāύ (āϝā§āĻŽāύ issue, design āĻŦāĻž testing) commit graph-āĻ āύāĻžāĻ āĻĻā§āĻāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
- Flutter SDK (āĻĒā§āϰāĻāϞā§āĻĒā§āϰ āĻŦāϰā§āϤāĻŽāĻžāύ
pubspec.yaml-āĻāϰ āϏāĻā§āĻā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ stable version) - Android SDK āĻ Android Build Tools
- Java/JDK 17
- IR emitter-āϝā§āĻā§āϤ Android āĻĢā§āύ â āĻŦāĻžāϏā§āϤāĻŦā§ IR āĻĒāϰā§āĻā§āώāĻž āĻāϰāĻžāϰ āĻāύā§āϝ!
git clone https://github.com/marufallammahim/RGB-Remote.git
cd RGB-Remote
flutter pub get
flutter analyze
flutter test
flutter build apk --releaseRelease APK :
build/app/outputs/flutter-apk/app-release.apk
āĻāĻ repository-āϤ⧠main branch-āĻ push āĻ
āĻĨāĻŦāĻž workflow manual trigger āĻāϰāĻžāϰ āĻāύā§āϝ Android CI/release workflow āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻŦāϰā§āϤāĻŽāĻžāύ workflow āĻĢāĻžāĻāϞ āĻ repository settings āϝāĻžāĻāĻžāĻ āĻāϰ⧠āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύ āϝ⧠workflow:
- Java 17 āĻ Flutter āϏā§āĻāĻāĻĒ āĻāϰā§;
- dependencies resolve āĻāϰā§;
flutter analyzeāĻflutter testāĻāĻžāϞāĻŋā§ā§;- release APK āϤā§āϰāĻŋ āĻāϰā§;
RGB-LED-REMOTE.apkāύāĻžāĻŽā§ āϏāϰāĻžāϏāϰāĻŋ GitHub Release-āĻ APK āĻāĻĒāϞā§āĻĄ āĻāϰ⧠â ZIP artifact āĻšāĻŋāϏā§āĻŦā§ āύāϝāĻŧāĨ¤
Release āϤā§āϰāĻŋāϰ āĻāĻā§ .github/workflows/-āĻāϰ workflow, GitHub token permissions āĻāĻŦāĻ Release/tag policy āĻĒāϰā§āĻā§āώāĻž āĻāϰā§āύāĨ¤ README-āϤ⧠workflow āϏāĻĢāϞ āĻŦāϞ⧠āĻĻāĻžāĻŦāĻŋ āĻāϰāĻž āĻšāĻā§āĻā§ āύāĻžāĨ¤
āĻĒā§āϰāĻāϞā§āĻĒā§āϰ implementation report āĻ
āύā§āϝāĻžāϝāĻŧā§ āĻāĻŋāĻā§ static checks āϏāĻŽā§āĻĒāύā§āύ āĻšāϝāĻŧā§āĻā§: AndroidManifest.xml XML parsing, pubspec.yaml/codemagic.yaml YAML parsing, Dart import cross-check āĻāĻŦāĻ preset-āĻā§āϞā§āϰ bundled Pronto command-āĻāϰ header/count validationāĨ¤
āύāĻŋāĻā§āϰāĻā§āϞ⧠āĻāϞāĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻāĻžāϞāĻŋāϝāĻŧā§ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ:
-
flutter analyze -
flutter test -
flutter build apk --release - APK signature verification
- IR emitter-āϝā§āĻā§āϤ āĻŦāĻžāϏā§āϤāĻŦ Android āĻĢā§āύ⧠Power/brightness/preset āĻĒāϰā§āĻā§āώāĻž
- Settings persistence āĻ āĻā§āĻ āϏā§āĻā§āϰāĻŋāύ⧠UI regression āĻĒāϰā§āĻā§āώāĻž
Bug report, feature suggestion āĻŦāĻž pull request āϏā§āĻŦāĻžāĻāϤāĨ¤ āĻĒāϰāĻŋāĻŦāϰā§āϤāύ āĻāĻŽāĻž āĻĻā§āĻāϝāĻŧāĻžāϰ āĻāĻā§ āϏāĻŽā§āĻāĻŦ āĻšāϞ⧠flutter analyze āĻāĻŦāĻ flutter test āĻāĻžāϞāĻžāύāĨ¤ IR hardware-āύāĻŋāϰā§āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤāύā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻĢā§āύā§āϰ āĻŽāĻĄā§āϞ, LED controller āĻāĻŦāĻ āĻĒāϰā§āĻā§āώāĻžāϰ āĻĢāϞ āĻāϞā§āϞā§āĻ āĻāϰā§āύāĨ¤
Repository-āϤ⧠āĻĨāĻžāĻāĻž LICENSE āĻĢāĻžāĻāϞ āĻĻā§āĻā§āύāĨ¤ License āĻĢāĻžāĻāϞ āύāĻž āĻĨāĻžāĻāϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŦāĻž āĻĒā§āύāϰā§āĻŦāĻŋāϤāϰāĻŖā§āϰ āĻāĻā§ repository owner-āĻāϰ āĻāĻžāĻ āĻĨā§āĻā§ āϞāĻžāĻāϏā§āύā§āϏā§āϰ āĻļāϰā§āϤ āύāĻŋāĻļā§āĻāĻŋāϤ āĻāϰā§āύāĨ¤
RGB-LED-REMOTE is a Flutter/Dart Android application intended to control compatible RGB LED strip controllers through a phone's built-in infrared (IR) emitter. Flutter handles the remote UI and app logic; a Kotlin Android layer receives requests over a MethodChannel and submits validated IR commands for transmission.
- Button-based remote UI and bundled
ONE/TWOpresets. - Brightness commands where supported by the selected preset/controller.
- Persisted
DarkandAMOLED blackappearance settings. SENDING,SENT, andSEND FAILEDtransmission states.- Optional sound feedback and vibration preference (vibration defaults to OFF on first install).
- SharedPreferences-backed settings and validation for Pronto/frequency/timing inputs.
- Bounded IR transmission queue with a
BUSYerror path. - GitHub contributor graph and commit history for automatically updated contributor information.
Hardware requirement: the phone must have an IR emitter, and the target controller must support the transmitted commands. SENT confirms completion of Android's transmit call, not a response from the LED controller.
flutter pub get
flutter analyze
flutter test
flutter build apk --releaseThe release APK is normally written to build/app/outputs/flutter-apk/app-release.apk. See the Bengali documentation above for the workflow and verification checklist. Build, automated tests, signing, and physical-device IR behavior should be verified in the target environment before publishing.
See the GitHub contributors graph and commit history for the current automatically derived list.