How thetechdog/the-snap-sideloader works
The Snap Sideloader is a Java Swing client for managing snap packages from local files and decentralized third-party repositories. The main workflow starts in the store: users choose a repository, browse or search its catalog, inspect a program, then download, verify, and install a selected version; the library shows installed packages and updates. Separate branches cover repository management, recommendations, settings, and local-package management. The graph reflects README capabilities and shown calls; some UI routing and unsampled subsystem internals are documented rather than verified in excerpts.
Main entry points: SnapSideloaderStore.java Store interface · DBOperator.java Repository database access · ProgramCommandWorker.java Install and remove · ProgramOverview.java Program details
Components 21
Application and navigation
- Application startup
src/main/java/org/sideloader/Main.java - Store interface
src/main/java/org/sideloader/SnapSideloaderStore.java
Repository catalog
- Store homepage
src/main/java/org/sideloader/FeaturedApps.java - Catalog search
src/main/java/org/sideloader/SearchResultsFetcher.java - Search results
src/main/java/org/sideloader/SearchResultsPanel.java - Program details
src/main/java/org/sideloader/ProgramOverview.java - Similar programs
src/main/java/org/sideloader/SimilarAppsFinder.java
Package management
- Installed library
src/main/java/org/sideloader/InstalledAndUpdatesPanel.java - Local package mode
src/main/java/org/sideloader/LocalPackageInstaller.java - Package download
src/main/java/org/sideloader/ProgramDownloadWorker.java - Install and remove
src/main/java/org/sideloader/ProgramCommandWorker.java
Repositories and settings
- Repository manager
src/main/java/org/sideloader/RepoManager.java - Store settings
src/main/java/org/sideloader/ProgramSettingsGUI.java - Settings model
src/main/java/org/sideloader/ProgramSettings.java
Runtime services
- Repository database access
src/main/java/org/sideloader/DBOperator.java - Installed-package records
src/main/java/org/sideloader/SnapSideloaderStore.java - System command runner
src/main/java/org/sideloader/CommandOutputter.java
Other components
- User
- Third-party repository
- Snap system
- Local snap file
Connections 34
- User → Application startup: launches
README.md - Application startup → Store interface: opens
src/main/java/org/sideloader/Main.java - User → Store interface: browses
README.md - Store interface → Store homepage: loads homepage
src/main/java/org/sideloader/SnapSideloaderStore.java - Store homepage → Repository database access: queries
src/main/java/org/sideloader/FeaturedAppsLoader.java - Store interface → Catalog search: starts search
src/main/java/org/sideloader/SnapSideloaderStore.java - Catalog search → Repository database access: queries
src/main/java/org/sideloader/SearchResultsFetcher.java - Catalog search → Search results: creates results
src/main/java/org/sideloader/SearchResultsFetcher.java - Search results → Store interface: opens selection
src/main/java/org/sideloader/SearchResultsPanel.java - Store interface → Program details: loads selection
src/main/java/org/sideloader/SnapSideloaderStore.java - Program details → Similar programs: requests suggestions
src/main/java/org/sideloader/ProgramOverviewLoader.java - Similar programs → Repository database access: queries
src/main/java/org/sideloader/SimilarAppsFinder.java - Program details → Package download: starts download
src/main/java/org/sideloader/ProgramOverview.java - Package download → Install and remove: starts install
src/main/java/org/sideloader/ProgramDownloadWorker.java - Package download → System command runner: checks hash
src/main/java/org/sideloader/ProgramDownloadWorker.java - Program details → Install and remove: requests removal
src/main/java/org/sideloader/ProgramOverview.java - Install and remove → System command runner: executes command
src/main/java/org/sideloader/ProgramCommandWorker.java - Install and remove → Snap system: manages packages
README.md - Store interface → Installed library: opens library
src/main/java/org/sideloader/SnapSideloaderStore.java - Installed library → Repository database access: checks updates
src/main/java/org/sideloader/InstalledAndUpdatesPanelLoader.java - User → Local package mode: opens local mode
README.md - Local package mode → Local snap file: opens package
README.md - Local package mode → System command runner: runs package action
src/main/java/org/sideloader/LocalPackageInstaller.java - Local package mode → Snap system: installs or removes
README.md - User → Repository manager: manages repositories
README.md - Repository manager → Third-party repository: downloads database
src/main/java/org/sideloader/RepoManager.java - Repository manager → Store interface: saves repository list
src/main/java/org/sideloader/RepoManager.java - Third-party repository → Repository database access: supplies catalog
README.md - User → Store settings: changes preferences
README.md - Store settings → Settings model: updates
src/main/java/org/sideloader/ProgramSettingsGUI.java - Store settings → Repository manager: opens manager
src/main/java/org/sideloader/ProgramSettingsGUI.java - Store interface → Repository database access: opens current catalog
src/main/java/org/sideloader/SnapSideloaderStore.java - Store interface → Installed-package records: reads installed records
src/main/java/org/sideloader/SnapSideloaderStore.java - Install and remove → Installed-package records: updates installed records