How more-than-solitaire/tabs-lite works
Tabs Lite is an Android guitar-tab app: users search community songs, open a tab to play along, and keep tabs available offline through Favorites or playlists. The app also supports song/version browsing, creating songs and tabs, chord fingering lookup, transposition, and playback conveniences such as autoscroll. The graph connects sampled search and startup behavior to the local database and backend; other product branches are represented from the README and source tree, but their internal wiring was not sampled.
Main entry points: DataAccess.kt Data access · BackendConnection.kt Backend connection · HomeActivity.kt Home activity · SearchViewModel.kt Search logic
Components 21
App navigation
- Home activity
app/src/main/java/com/gbros/tabslite/HomeActivity.kt - Navigation host
app/src/main/java/com/gbros/tabslite/RootNavHost.kt
Find songs
- Search screen
app/src/main/java/com/gbros/tabslite/view/searchresultsonglist/SearchScreen.kt - Search bar
app/src/main/java/com/gbros/tabslite/view/tabsearchbar/TabsSearchBar.kt - Search logic
app/src/main/java/com/gbros/tabslite/viewmodel/SearchViewModel.kt - Paged search
app/src/main/java/com/gbros/tabslite/data/Search.kt - Suggestions logic
app/src/main/java/com/gbros/tabslite/viewmodel/TabSearchBarViewModel.kt - Song versions
app/src/main/java/com/gbros/tabslite/view/songversionlist/SongVersionScreen.kt
Read and play
- Tab reader
app/src/main/java/com/gbros/tabslite/view/tabview/TabScreen.kt - Tab logic
app/src/main/java/com/gbros/tabslite/viewmodel/TabViewModel.kt - Chord lookup
app/src/main/java/com/gbros/tabslite/view/chorddisplay/ChordModalBottomSheet.kt
Offline library
- Home and favorites
app/src/main/java/com/gbros/tabslite/view/homescreen/HomeScreen.kt - Playlist screens
app/src/main/java/com/gbros/tabslite/view/playlists/PlaylistScreen.kt - Playlist logic
app/src/main/java/com/gbros/tabslite/viewmodel/PlaylistViewModel.kt - Create song and tab
app/src/main/java/com/gbros/tabslite/view/createtab/CreateTabScreen.kt - Creation logic
app/src/main/java/com/gbros/tabslite/viewmodel/CreateTabViewModel.kt
Data services
- Data access
app/src/main/java/com/gbros/tabslite/data/DataAccess.kt - Local Room store
app/src/main/java/com/gbros/tabslite/data/AppDatabase.kt - Backend connection
app/src/main/java/com/gbros/tabslite/utilities/BackendConnection.kt
Other components
- App user
- Tabs backend
Connections 25
- App user → Home activity: opens app
- Home activity → Navigation host: hosts UI
- Home activity → Data access: loads preferences
- Home activity → Backend connection: fetches startup tabs
- App user → Search bar: enters query
- Search bar → Suggestions logic: updates query
- Suggestions logic → Backend connection: fetches suggestions
- Suggestions logic → Data access: reads suggestions
- Search screen → Search logic: creates search logic
- Search logic → Paged search: loads result pages
- Search logic → Backend connection: fetches exact matches
- Search logic → Data access: observes cached matches
- Paged search → Backend connection: requests result page
- Paged search → Data access: caches returned tabs
- Song versions → App user: shows versions
- App user → Home and favorites: opens favorites
- App user → Playlist screens: manages playlists
- Playlist screens → Playlist logic: delegates actions
- App user → Create song and tab: creates content
- Create song and tab → Creation logic: delegates edits
- App user → Tab reader: opens tab
- Tab reader → Tab logic: requests tab state
- Tab reader → Chord lookup: opens chord details
- Data access → Local Room store: reads and writes
- Backend connection → Tabs backend: requests tab data