An Android application for backing up and managing your installed applications list.
App List Backup is a powerful Android application that allows you to create comprehensive backups of your installed applications' metadata. Perfect for device migration, system restoration, or simply keeping track of your app ecosystem.
- π± Complete App Scanning: Read all installed applications with detailed metadata
- πΎ Multiple Export Formats: JSON, Plain Text, Markdown, and HTML
- π Advanced Filtering: Filter by system/user apps, install source, and installation status
- π Comparison Tools: Compare backups with installed apps to identify missing applications
- πͺ Store Integration: One-tap installation via Play Store, F-Droid, and other stores
- π Internationalization: English by default, Spanish translation included
- π¨ Modern UI: Material Design 3 with dynamic colors (Android 12+)
- Device Migration: Easily transfer your app list when setting up a new Android device
- System Backup: Create snapshots of your installed apps before major system updates
- App Management: Keep track of which apps you have installed and from where
- Version Tracking: Monitor app versions and update history
- Documentation: Export your app list for documentation or sharing purposes
This project follows Clean Architecture principles with MVVM pattern:
βββββββββββββββββββββββββββββββββββββββββββ
β Presentation Layer β
β (Jetpack Compose UI + ViewModels) β
βββββββββββββββββββββββββββββββββββββββββββ€
β Domain Layer β
β (Use Cases + Business Logic) β
βββββββββββββββββββββββββββββββββββββββββββ€
β Data Layer β
β (Room DB + PackageManager) β
βββββββββββββββββββββββββββββββββββββββββββ
- Language: Kotlin
- UI: Jetpack Compose with Material Design 3
- DI: Hilt
- Database: Room
- Async: Coroutines + Flow
- Serialization: Kotlinx Serialization
- Navigation: Navigation Compose
For each installed application, the following information is collected:
- Name: Display name of the application
- Package Name: Unique identifier
- Version: Version name and code
- Size: Approximate APK size
- Install Date: When the app was first installed
- Update Date: Last update timestamp
- Target SDK: Target Android SDK version
- Min SDK: Minimum supported SDK (estimated)
- Type: System app or user-installed
- Install Source: Play Store, F-Droid, APK, ADB, etc.
- Android Studio: Hedgehog (2023.1.1) or later
- JDK: 17 or later
- Gradle: 8.7 or later
- Android SDK: Min 26, Target 35
- Clone the repository:
git clone https://github.com/yourusername/AppListBackup.git
cd AppListBackup-
Open the project in Android Studio
-
Sync Gradle dependencies
-
Build and run on your device or emulator
# Debug build
./gradlew assembleDebug
# Release build
./gradlew assembleRelease
# Run tests
./gradlew testThe app requires the following permission:
- QUERY_ALL_PACKAGES: Required to see all installed applications on Android 11+
Note: This permission requires justification for Play Store submission. The app is designed for device management and backup purposes, which is an eligible use case.
Machine-readable format, perfect for re-importing backups.
Human-readable format with all app details in a structured text file.
Documentation-friendly format, great for GitHub or technical documentation.
Formatted table view, suitable for printing or web viewing.
Compare any backup with your currently installed apps to see:
- Missing Apps: Apps in the backup but not currently installed
- New Apps: Apps currently installed but not in the backup
- Same Apps: Apps present in both lists
- Version Differences: Apps with different versions between backup and current installation
Currently supported languages:
- π¬π§ English (default)
- πͺπΈ Spanish
Additional languages can be easily added by contributing translations to strings.xml.
app/
βββ src/main/
β βββ java/com/applistbackup/
β β βββ data/ # Data layer (repositories, database)
β β βββ domain/ # Domain layer (models, use cases)
β β βββ presentation/ # UI layer (screens, viewmodels)
β β βββ ui/ # Theme and styling
β β βββ util/ # Utilities and extensions
β β βββ di/ # Dependency injection modules
β βββ res/ # Resources (strings, colors, etc.)
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project follows the official Kotlin Coding Conventions.
This project is licensed under the MIT License - see the LICENSE file for details.
- Material Design 3 guidelines by Google
- Jetpack Compose community
- Android developer community
For questions, issues, or feature requests:
- Open an issue
- Contact: [your-email@example.com]
- Basic app scanning
- Backup creation and storage
- Multiple export formats
- Comparison feature
- Store integration
- Filtering and search
- APK backup support
- Cloud synchronization (Google Drive, Dropbox)
- Scheduled automatic backups
- Backup encryption
- App categories and tagging
- Backup comparison (backup vs backup)
- Dark mode preferences
- Widget support
Made with β€οΈ using Kotlin and Jetpack Compose