quicui 2.0.1 copy "quicui: ^2.0.1" to clipboard
quicui: ^2.0.1 copied to clipboard

Over-the-air (OTA) updates for Flutter apps. Download and install code updates instantly with QuicUI Code Push system.

QuicUI - Code Push for Flutter #

A Flutter plugin for Over-The-Air (OTA) updates using QuicUI Code Push system. Deploy code updates to your Flutter applications instantly.

Features #

  • 🚀 Over-the-air updates: Deploy updates instantly
  • 🔒 Secure patching: Uses BsDiff binary patching with signature verification
  • 📦 Small patch sizes: Only downloads differences between versions
  • Rollback support: Automatic rollback on update failures
  • 🎯 Targeted releases: Deploy to specific versions or user segments
  • 📊 Update tracking: Monitor patch installation and success rates

Installation #

Add this to your package's pubspec.yaml file:

dependencies:
  quicui: ^2.0.0

Then run:

flutter pub get

Usage #

Basic Setup #

import 'package:quicui/quicui.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // Initialize QuicUI Code Push
  final quicui = QuicUICodePush(
    appId: 'com.yourcompany.app',
    clientSecret: 'your-client-secret',
    appVersion: '1.0.0',
  );
  
  await quicui.initialize();
  
  runApp(MyApp());
}

Check for Updates #

// Create QuicUI instance
final quicui = QuicUICodePush(
  appId: 'com.yourcompany.app',
  clientSecret: 'your-client-secret',
  appVersion: '1.0.0',
);

await quicui.initialize();

// Check if an update is available
final updateAvailable = await quicui.checkForUpdates();

if (updateAvailable != null) {
  print('Update available: ${updateAvailable.version}');
}

Download and Install Update #

// Download and install the update
final success = await quicui.downloadAndInstall(updateInfo);

if (success) {
  print('Update installed! Restart app to apply.');
  // Show restart prompt to user
}

Full Update Flow #

Future<void> checkAndApplyUpdates() async {
  try {
    final quicui = QuicUICodePush(
      appId: 'com.yourcompany.app',
      clientSecret: 'your-client-secret',
      appVersion: '1.0.0',
    );
    
    await quicui.initialize();
    
    // Check for updates
    final patchInfo = await quicui.checkForUpdates();
    
    if (patchInfo != null) {
      print('Update ${patchInfo.version} available');
      
      // Download and install
      final success = await quicui.downloadAndInstall(patchInfo);
      
      if (success) {
        // Show dialog to restart
        showRestartDialog();
      }
    }
  } catch (e) {
    print('Update failed: $e');
  }
}

Configuration Options #

final quicui = QuicUICodePush(
  appId: 'com.yourcompany.app',
  clientSecret: 'your-client-secret',
  appVersion: '1.0.0',
  
  // Optional: Verify patch signatures
  publicKey: 'your-rsa-public-key',
  
  // Optional: Auto-check on app start
  autoCheckOnStart: true,
  
  // Optional: Custom update check interval (in seconds)
  checkIntervalSeconds: 3600, // 1 hour
  
  // Optional: Maximum patch size
  maxPatchSize: 10 * 1024 * 1024, // 10 MB
);

await quicui.initialize();

How It Works #

  1. Client checks for updates from backend server
  2. Backend compares client version with latest available
  3. BsDiff patch is generated (binary difference between versions)
  4. Client downloads the small patch file
  5. Patch is applied to create new libapp.so (AOT compiled Dart code)
  6. On next restart, Flutter engine loads the patched version

Platform Support #

Platform Support Status
Android ✅ Full Production ready
iOS 🚧 WIP Coming soon
Web ❌ No Not applicable
Desktop ❌ No Not yet supported

Example #

See the example directory for a complete working app demonstrating:

  • Update checking
  • Progress tracking
  • Installation flow
  • Error handling

Run the example:

cd example
flutter run

Contributing #

Contributions are welcome! Please read our Contributing Guide first.

License #

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

Resources #

Support #


Made with ❤️ by the QuicUI Team

0
likes
0
points
21
downloads

Publisher

verified publisherquicui.com

Weekly Downloads

Over-the-air (OTA) updates for Flutter apps. Download and install code updates instantly with QuicUI Code Push system.

Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (license)

Dependencies

crypto, flutter, http, json_serializable, path, path_provider, shelf

More

Packages that depend on quicui

Packages that implement quicui