Skip to content

Experiment: Mobile app using Flutter #246

Open
@Hanziness

Description

@Hanziness

Since web-based apps are a bit limited in terms of (mobile-)native functionality (like control over notifications), it might be wiser to publish the application as a mobile app instead of a PWA (or TWA on Android). A seemingly not-so-difficult way would be Flutter and its webview_flutter package. This package also allows communication with the Dart code through so-called JavaScript channels - this would allow the Dart code to handle the notifications and other stuff and integrate much better with the operating system.

This is marked as an experiment as wrapping the app in a mobile app's web view might prove slower and more buggy than directly using a PWA in the browser on the platform. The goal is to explore if this solution can work and provide more benefits over a traditional PWA.

Tasks

  • (Basics) Wrap the PWA in a Flutter WebView
  • (Basics) Add an optionally loaded module to the web app that interfaces with the mobile app (if the PWA is running inside a mobile app - this can be potentially helped with a separate query parameter)
  • (Basics) Verify app functionality and performance
  • Version number should follow the PWA app version
  • The web app should be packaged alongside the mobile app (so that everything would be available offline)
  • A build script should pull the appropriate tag (like v1.2.0) from GitHub into the Flutter project and zip it
  • Provide (actionable) notifications and optionally a persistent notification
  • Maybe even provide an app widget on Android 👀
  • Since Flutter now supports creating desktop apps, that form of packaging could also be explored
  • (Much far away) Add the ability to sync the mobile and web apps

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

experiment ⚠️Bigger feature or change that may or may not make it into the final product

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions