Skip to main content

fluemo

Runner Flutter web super ringan: pratinjau aplikasi Flutter di jendela Chrome seukuran ponsel, tanpa emulator dan tanpa Android Studio.

Satu perintah, tanpa konfigurasi:

pip install fluemo
cd proyek-flutter-ku
fluemo

fluemo mendeteksi proyek Flutter di folder saat ini, menjalankan flutter run -d chrome di latar belakang, membuka jendela controller, dan langsung mengembalikan terminal ke Anda.

Instalasi (global, sekali per mesin)

fluemo dipasang sekali per mesin, bukan per proyek. Setelah itu Anda bisa memakainya dari folder proyek Flutter mana pun.

Disarankan: pipx

pipx install fluemo

pipx memasang fluemo di lingkungan terisolasi miliknya dan menaruh executable di ~/.local/bin (Linux/macOS) atau %USERPROFILE%\.local\bin (Windows). Cara ini tidak menyentuh Python sistem, jadi aman dari konflik paket dan dari proteksi PEP 668.

Alternatif: pip

pip install --user fluemo      # Linux/macOS
py -m pip install --user fluemo   # Windows

Pastikan direktori script Python ada di PATH. Di Windows, centang "Add Python to PATH" saat memasang Python.

Jangan memasang fluemo di dalam virtualenv milik satu proyek: instalasi jadi terkurung di proyek itu dan tidak bisa dipanggil dari folder proyek lain. Bila terminal menolak pip install fluemo dengan error: externally-managed-environment, gunakan pipx atau tambahkan --user.

Cek hasilnya:

fluemo --version

Syarat

  • Python 3.8+
  • Flutter SDK di PATH (flutter --version harus jalan)
  • Chrome atau Chromium
    • Linux: flatpak install --user flathub org.chromium.Chromium atau sudo dnf install chromium
    • Windows: Chrome dari google.com, atau winget install Google.Chrome
  • zenity (opsional, Linux) untuk dialog pemilih folder

Pemakaian

cd proyek-flutter-ku
fluemo

Yang terjadi:

  1. fluemo mencari pubspec.yaml di folder saat ini, lalu naik maksimum 5 level ke atas.
  2. Server berjalan di latar belakang — terminal Anda langsung bebas, tetap bisa dipakai untuk perintah lain.
  3. Jendela controller terbuka dengan tombol Jalankan, Matikan, Muat ulang, Mulai ulang, dan pemilih ukuran layar.
  4. Aplikasi Flutter muncul di jendela Chrome terpisah yang dikunci seukuran perangkat pilihan (mis. iPhone 15 Pro Max atau iPad mini).

Stop semuanya dengan salah satu cara:

  • klik Keluar di jendela controller, atau
  • tutup jendela controller seperti jendela biasa — server ikut mati sendiri.

Keduanya mematikan flutter run, jendela aplikasi, jendela controller, dan server sekaligus.

Menjalankan fluemo lagi saat server masih hidup tidak memulai server kedua: perintah itu memakai instance yang sudah berjalan. Bila proyek di folder baru belum berjalan, proyek itu yang dijalankan; bila proyek lain sedang berjalan, proyek itu dibiarkan dan Anda diarahkan ke jendela controller yang ada.

Keunggulan & Optimasi

  • Nol dependensi pip — hanya standard library Python.
  • Satu implementasi launcher untuk Linux, macOS, dan Windows.
  • Ringan — UI controller adalah satu halaman HTML dengan CSS dan SVG inline: tanpa permintaan jaringan, tanpa framework.
  • Hot reload dan hot restart diteruskan ke flutter run dari jendela controller.
  • Ukuran jendela presisi — launcher menjalankan Chrome dalam mode aplikasi (--app) sehingga ukuran jendela sama dengan ukuran konten perangkat, bukan ukuran jendela ber-chrome.

Struktur folder

fluemo/
  __init__.py      <-- versi paket
  __main__.py      <-- entry point `python -m fluemo`
  cli.py           <-- perintah `fluemo`: deteksi proyek, spawn/reuse server
  server.py        <-- server HTTP + API, pengelola proses flutter, jendela controller
  ui.py            <-- halaman controller (HTML + CSS + JS inline)
  launcher.py      <-- entry point `fluemo-launcher`; ukuran & posisi jendela ponsel
  browser.py       <-- pencarian Chrome/Chromium
  paths.py         <-- lokasi file runtime di ~/.fluemo
  x11_window.py    <-- kendali jendela X11 via ctypes (khusus Linux)
pyproject.toml
LICENSE
README.md

File runtime disimpan di ~/.fluemo/: config.json (preset terakhir), mobile_config.txt (ukuran jendela aktif), server.json (pid & port server), server.log, launcher_log.txt, dan profil Chrome khusus controller.

Pengembangan

python -m venv .venv
.venv/bin/pip install -e .          # Linux/macOS
.venv\Scripts\pip install -e .      # Windows
.venv/bin/fluemo --version

Publikasi

python -m build
twine check dist/*
twine upload dist/*

twine upload membutuhkan token PyPI.

Lisensi

MIT — lihat LICENSE.

Metadata

Release files for fluemo 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fluemo 1.0.0
File Size Uploaded
fluemo-1.0.0.tar.gz 25.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fluemo 1.0.0
File Interpreter ABI Platform
fluemo-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 51.5 kB

Release files / fluemo-1.0.0.tar.gz

Download URL fluemo-1.0.0.tar.gz
Size 25.5 kB
Tags Source
SHA-256 checksum
How to use checksums
2832b6f8c4b7784cdc8a8dcfb0d03b172b01dca73d65baddb835bee0e7208301
BLAKE2b-256 checksum
How to use checksums
303f908aca7b9969a602b41fe2a5846b8fd986906f6e5546aa92ff588080e142
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / fluemo-1.0.0-py3-none-any.whl

Download URL fluemo-1.0.0-py3-none-any.whl
Size 26.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b76a2d107b705fee5a7cd411aed8411f7e70d1a7fbc7d1f01be6740108b84df2
BLAKE2b-256 checksum
How to use checksums
12a6b8492fe53374f6cdccce400fed30eecf71100387dd7b7c90f852b3dd4d5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page