How bmaibu/android-assignment-1 works
Alphabet Launcher is an Android home-screen app for browsing and opening installed apps. The main path is device user → launcher screen → installed-app discovery and A–Z/favorites presentation → selected app launch; a swipe-up opens search. The documented interaction layer also bends and springs back the alphabet bar with haptic ticks, while the screen presents a live clock/date. The ViewModel source was not sampled, so its documented state and filtering responsibilities are shown without asserting implementation details beyond the README; default-home registration is documented in the README.
Main entry points: LauncherScreen.kt Launcher screen · MainActivity.kt MainActivity · AppRepository.kt App repository · AlphabetBar.kt A–Z bar
Components 16
Launcher orchestration
- MainActivity
app/src/main/java/com/maibu/androidassignment/MainActivity.kt - Launcher screen
app/src/main/java/com/maibu/androidassignment/launcher/LauncherScreen.kt - Launcher state
app/src/main/java/com/maibu/androidassignment/launcher/LauncherViewModel.kt
App discovery
- App repository
app/src/main/java/com/maibu/androidassignment/data/AppRepository.kt - Launchable app
app/src/main/java/com/maibu/androidassignment/data/LaunchableApp.kt
Navigation interaction
- A–Z bar
app/src/main/java/com/maibu/androidassignment/launcher/AlphabetBar.kt - Curve math
app/src/main/java/com/maibu/androidassignment/launcher/CurveMath.kt
Launcher presentation
- App list
app/src/main/java/com/maibu/androidassignment/ui/AppList.kt - App row
app/src/main/java/com/maibu/androidassignment/ui/AppRow.kt - Clock and date
app/src/main/java/com/maibu/androidassignment/ui/ClockView.kt - Search overlay
app/src/main/java/com/maibu/androidassignment/ui/SearchView.kt - Compose theme
app/src/main/java/com/maibu/androidassignment/ui/theme/Theme.kt
Other components
- Device user
- Android PackageManager
- Installed apps
- Other apps
Connections 18
- Device user → MainActivity: opens home
- MainActivity → Compose theme: sets theme
- MainActivity → Launcher screen: shows screen
- Launcher screen → Launcher state: reads and updates
- Launcher state → App repository: requests app data
- App repository → Android PackageManager: queries apps
- Android PackageManager → Installed apps: returns launchables
- App repository → Launchable app: creates app records
- Launcher screen → A–Z bar: renders index
- A–Z bar → Curve math: calculates bend
- A–Z bar → Launcher screen: reports letter and touch
- Launcher screen → App list: shows favorites or letter results
- App list → App row: renders apps
- Launcher screen → Clock and date: shows home time
- Launcher screen → Search overlay: shows search overlay
- Search overlay → App row: renders results
- Launcher screen → Other apps: launches selected app
- Search overlay → Launcher screen: reports query and selection