update_modal 0.0.3 copy "update_modal: ^0.0.3" to clipboard
update_modal: ^0.0.3 copied to clipboard

Bugly style update modal on flutter

update_modal #

Pub Version Github Action

Bugly style update modal on flutter. It is based on UI and cross platform.

Try the Demo

Example project is at example/.

Modal Preview

Getting Started #

Install #

Add dependency to pubspec.yaml.

dependencies:
  update_modal: ^0.0.3

Implement checker, downloader, installer #

class MyUpdateService implements UpdateModalService {
  @override
  Future<int> cancelDownload() {
    // Perform cancel download, resolve arbitary number
  }

  @override
  Future<UpdateInfo> checkUpdate() async {
    // Perform check update, resolve update info
    // Resolve NULL means no update
    return UpdateInfo()
      ..name = "ExampleUpdaterApp"
      ..version = "3.2.0"
      ..size = "13.6M"
      ..releasedAt = "2022-10-26 22:20:01"
      ..description = "Upgrade description";
  }

  @override
  Future<int> dismiss() {
    // Perform dismiss to cleanup
    return Future.value(0);
  }

  @override
  Future<int> install() {
    // Perform install package
    return Future.value(0);
  }

  @override
  Future<Stream<int>> startDownload() {
    // Perform download, resolve a stream for progress notification
    // When progress > 100(e.g. 101), the modal mark state to readyToInstall
    return Future.value(Stream.fromFutures([
      Future.delayed(Duration(milliseconds: 150 * 1), () => 20),
      Future.delayed(Duration(milliseconds: 150 * 2), () => 40),
      Future.delayed(Duration(milliseconds: 150 * 3), () => 60),
      Future.delayed(Duration(milliseconds: 150 * 4), () => 80),
      Future.delayed(Duration(milliseconds: 150 * 5), () => 100),
      // modal show [Dismiss, Install] once receive progress > 100
      Future.delayed(Duration(milliseconds: 150 * 6), () => 120),
    ]));
  }
}

Perform check at App startup #

class MyApp extends StatefulWidget {
  @override
  createState() => _MyApp();
}

class _MyApp extends State<MyApp> {
  @override
  initState() {
    UpdateModal.init(
      context,
      service: UpdateModalServiceImpl(),
    );
  }
}

Debugging #

Open a web server for cross-platform modal widget debugging.

Make example

or,

cd example; flutter run -d web-server --web-port=8080

License #

MIT

0
likes
130
points
32
downloads

Publisher

unverified uploader

Weekly Downloads

Bugly style update modal on flutter

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on update_modal