Skip to content

gmag11/Android-Applist-Backup

Repository files navigation

App List Backup

Android Kotlin Min SDK Target SDK License

An Android application for backing up and managing your installed applications list.

πŸ“‹ Overview

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.

Key Features

  • πŸ“± 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+)

🎯 Use Cases

  • 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

πŸ—οΈ Architecture

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)             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Tech Stack

  • Language: Kotlin
  • UI: Jetpack Compose with Material Design 3
  • DI: Hilt
  • Database: Room
  • Async: Coroutines + Flow
  • Serialization: Kotlinx Serialization
  • Navigation: Navigation Compose

πŸ“Š App Metadata Extracted

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.

πŸš€ Getting Started

Prerequisites

  • Android Studio: Hedgehog (2023.1.1) or later
  • JDK: 17 or later
  • Gradle: 8.7 or later
  • Android SDK: Min 26, Target 35

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/AppListBackup.git
cd AppListBackup
  1. Open the project in Android Studio

  2. Sync Gradle dependencies

  3. Build and run on your device or emulator

Building

# Debug build
./gradlew assembleDebug

# Release build
./gradlew assembleRelease

# Run tests
./gradlew test

πŸ“± Permissions

The 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.

πŸ“¦ Export Formats

JSON

Machine-readable format, perfect for re-importing backups.

Plain Text

Human-readable format with all app details in a structured text file.

Markdown

Documentation-friendly format, great for GitHub or technical documentation.

HTML

Formatted table view, suitable for printing or web viewing.

πŸ”„ Comparison Feature

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

🌐 Internationalization

Currently supported languages:

  • πŸ‡¬πŸ‡§ English (default)
  • πŸ‡ͺπŸ‡Έ Spanish

Additional languages can be easily added by contributing translations to strings.xml.

πŸ› οΈ Development

Project Structure

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.)

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Code Style

This project follows the official Kotlin Coding Conventions.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Material Design 3 guidelines by Google
  • Jetpack Compose community
  • Android developer community

πŸ“ž Support

For questions, issues, or feature requests:

πŸ—ΊοΈ Roadmap

Current Version: 1.0.0

  • Basic app scanning
  • Backup creation and storage
  • Multiple export formats
  • Comparison feature
  • Store integration
  • Filtering and search

Future Enhancements

  • 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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages