Skip to content

Hot reload your Kivy app on multiple phones and computer in real-time.

License

Notifications You must be signed in to change notification settings

cleitonleonel/kivy-reloader

 
 

Repository files navigation

Kivy Reloader

Hot reload your Kivy app on multiple phones and computer in real-time.

This tool allows you to instantly update your Kivy app on multiple devices simultaneously by pressing Ctrl+S, saving your precious development time and effort.

How to use

from kivy_reloader import App

class MainApp(App):
    def build_and_reload(self):
        from screens.main_screen import MainScreen

        return MainScreen(name="Main Screen")

MainApp()
kivy_reloader.mp4

Prerequisites

Install scrcpy on your operating system: Linux, Windows or macOS. You will be able to control your device from your computer.

Install kivy: choose your operating system on Kivy School Tutorial.

How to install:

I recommend you to use poetry to install kivy-reloader.

Option 1) Using poetry - recommended

poetry add kivy-reloader

Option 2) Using pip

pip install kivy-reloader


Configure the constants

The first time you run from kivy_reloader import App, you will be prompted on the terminal:

image

Just press enter. This will create a file called settings.py on your project folder.

image

Every line has an explanation above. The most important constants on this file are:

  1. PHONE_IPS: Put the IP of your phone here. You can find the IP of your Android phone on: Settings > About phone > Status > IP Address. image
  2. HOT_RELOAD_ON_PHONE: Set it to True to hot heload on your phone when you press Ctrl+S
  3. WATCHED_FOLDERS_RECURSIVELY: This is a list of folder names, for example ["screens", "components"]. If any file inside these folders change, your Kivy app will reload.
  4. WATCHED_KV_FOLDERS_RECURSIVELY: This is a list of folder names, for example ["screens", "components"]. This is where the Reloader will find your .kv files to reload them every time you press Ctrl+S.

Open the file settings.py and explore the other constants.

This message will also appear for you on the first time you use Kivy Reloader.

image

Just press enter. This will create a file called buildozer.spec on your project folder.


How to use:

  1. Connect your phone to the computer using a USB cable.
  2. Create a script compile.py with the following code:
from kivy_reloader import compile_app

compile_app.start()
  1. Run on the terminal python compile.py, type 1 and press enter. Buildozer will compile the app and deploy on your phone. image
  2. Once the app is on your phone, run python main.py and the hot reload will be already working. Just press Ctrl+S in any file inside screens folder or main.py and your app will be updated on computer and phone at the same time.

Do you want to test directly from this repo?

Clone this project, open the folder on terminal and type:

  1. poetry shell
  2. poetry install
  3. python main.py
  4. python compile.py and press 1, enter.
  5. Wait the compilation to finish on your phone.
  6. Enjoy the Kivy Reloader!

I am too impatient, I want to see it working RIGHT NOW!

Clone this project, open the folder on terminal and type:

  1. poetry shell
  2. poetry install
  3. adb install bin/kivy_super_reloader-0.1-armeabi-v7a_arm64-v8a-debug.apk
  4. python main.py
  5. Keep calm and enjoy the Kivy Reloader! 😄

About

Hot reload your Kivy app on multiple phones and computer in real-time.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.6%
  • kvlang 0.4%