remote_in_app_update

pub package likes pub points popularity

A Flutter plugin to download and install remote APKs directly from your app with support for progress, download speed, and estimated time remaining (ETA).

โš ๏ธ Android only


โœจ Features

  • ๐Ÿ“ฅ Download APK from any URL
  • ๐Ÿ“Š Real-time progress tracking
  • โšก Download speed & ETA updates
  • ๐Ÿ” Secure installation using FileProvider
  • ๐Ÿ” All logic handled by plugin (Manifest, XML, etc.)
  • โœ… Just one simple API call from your Flutter app

๐Ÿš€ Installation

Add the plugin to your pubspec.yaml:

dependencies:
  remote_in_app_update: ^<latest_version>

Then run:

flutter pub get

๐Ÿ› ๏ธ Usage

import 'package:remote_in_app_update/remote_in_app_update.dart';

RemoteInAppUpdate().startUpdate(
  apkUrl: 'https://your-server.com/path/to/app.apk',
  onProgress: (progress) {
    print('Progress: $progress%');
  },
  onSpeed: (speed) {
    print('Speed: $speed KB/s');
  },
  onETA: (eta) {
    print('ETA: $eta seconds');
  },
  onDownloaded: () {
    print('Download complete. Installing...');
  },
  onError: (error) {
    print('Error: $error');
  },
);

๐Ÿงพ Permissions

Add the following permissions to your AndroidManifest.xml:

<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Note: For Android 10+ (API 29+), use MANAGE_EXTERNAL_STORAGE or switch to scoped storage.


โš™๏ธ Android Configuration

No manual changes are required in your app. The plugin handles:

  • FileProvider setup
  • Manifest declarations
  • Required XML files

Everything is auto-handled within the plugin.


๐Ÿ“ฆ Example

Check out the example app for a full working demo.


๐Ÿ“„ License

MIT License



Engineered by Ankit Gauswami ๐Ÿ› ๏ธ
Because great apps deserve better updates. ๐Ÿš€