Skip to main content

Flutter but Python

Project description

Flut (Technical Preview)

Flutter but Python

Status

This project is in Technical Preview (Alpha).

  • APIs are subject to change.
  • Requires manual build steps for the Flutter engine artifacts.
  • Not ready for production use.

Usage

Create a file app.py:

from flut import run_app
from flut.flutter.widgets import StatelessWidget, StatefulWidget, State, Text, Center, Column, Icon, MainAxisAlignment
from flut.flutter.material import MaterialApp, Scaffold, AppBar, FloatingActionButton, Icons, ThemeData, ColorScheme, Colors, Theme


class MyApp(StatelessWidget):
    def build(self, context):
        return MaterialApp(
            title="Flut Demo",
            theme=ThemeData(
                colorScheme=ColorScheme.fromSeed(seedColor=Colors.deepPurple),
            ),
            home=MyHomePage(title="Flut Demo Home Page"),
        )


class MyHomePage(StatefulWidget):
    def __init__(self, title):
        super().__init__()
        self.title = title

    def createState(self):
        return _MyHomePageState()


class _MyHomePageState(State[MyHomePage]):
    def initState(self):
        self._counter = 0

    def _incrementCounter(self):
        def _update():
            self._counter += 1

        self.setState(_update)

    def build(self, context):
        return Scaffold(
            appBar=AppBar(
                title=Text(self.widget.title),
                backgroundColor=Theme.of(context).colorScheme.inversePrimary,
            ),
            body=Center(
                child=Column(
                    mainAxisAlignment=MainAxisAlignment.center,
                    children=[
                        Text("You have pushed the button this many times:"),
                        Text(
                            f"{self._counter}",
                            style=Theme.of(context).textTheme.headlineMedium,
                        ),
                    ],
                ),
            ),
            floatingActionButton=FloatingActionButton(
                onPressed=self._incrementCounter,
                tooltip="Increment",
                child=Icon(Icons.add),
            ),
        )


if __name__ == "__main__":
    run_app(MyApp())

Run it:

python app.py

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flut-0.0.0a2.tar.gz (307.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

flut-0.0.0a2-py3-none-win_amd64.whl (11.4 MB view details)

Uploaded Python 3Windows x86-64

flut-0.0.0a2-py3-none-manylinux1_x86_64.whl (15.2 MB view details)

Uploaded Python 3

File details

Details for the file flut-0.0.0a2.tar.gz.

File metadata

  • Download URL: flut-0.0.0a2.tar.gz
  • Upload date:
  • Size: 307.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for flut-0.0.0a2.tar.gz
Algorithm Hash digest
SHA256 acbe380e3acab8aeea525819fb9ab26b372fdbe1c85a4875f2552fc6e6a993c4
MD5 d52eceea95105c17b2bf97bf7204c3e4
BLAKE2b-256 418401a5f56b6e52fd6bcc0573a2099972e276869f6466a00325c5ad6daf8d4f

See more details on using hashes here.

Provenance

The following attestation bundles were made for flut-0.0.0a2.tar.gz:

Publisher: publish.yml on yangyuan/flut

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flut-0.0.0a2-py3-none-win_amd64.whl.

File metadata

  • Download URL: flut-0.0.0a2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 11.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for flut-0.0.0a2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1bf0bf833d3274cd07360a088844b4635ab767b5a1dbdc06997bfa18b5c11d89
MD5 51dc151b5b0731dfb34793eabc38134b
BLAKE2b-256 f071c15794f84410b2d2865c44316e1728e441d02362f393ae96471c199df3ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for flut-0.0.0a2-py3-none-win_amd64.whl:

Publisher: publish.yml on yangyuan/flut

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flut-0.0.0a2-py3-none-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for flut-0.0.0a2-py3-none-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 22e4e9cbc22e9bfeca847d4149778e2f093e6227ff761884a4072e969d77babc
MD5 4e4b3fd7e6c88d62921e8f09755dca14
BLAKE2b-256 82a3357534e4be14f01af10095a94e7d00169efa05f84ac71b85dbeb456f4922

See more details on using hashes here.

Provenance

The following attestation bundles were made for flut-0.0.0a2-py3-none-manylinux1_x86_64.whl:

Publisher: publish.yml on yangyuan/flut

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page