KivyStart is a Python package designed to streamline the creation of project structures for Kivy applications. It provides a standardized, modular, and scalable template to help you kickstart your Kivy projects efficiently.
- Standardized Project Structure β Ensures consistency across Kivy projects.
- Pre-configured Files β Includes essential configuration and setup files for a smooth development experience.
- MVC-Like Architecture β Encourages better code organization and separation of concerns.
- Customizable Project Setup β Supports additional configurations for flexibility.
Clone the repository and install KivyStart:
git clone https://github.com/digreatbrian/kivystart
pip install ./kivystart
To generate a new Kivy project using KivyStart, run:
python -m kivystart makeproject demo DemoApp
# or
kivystart makeproject demo DemoApp
Run the following command to see available flags and configurations:
python -m kivystart makeproject --help
# or
kivystart makeproject --help
KivyStart generates a well-organized directory structure:
project_root/
βββ .git/ # (Optional) Git repository metadata
βββ assets/ # Stores images, fonts, and icons
βββ components/ # Reusable UI components
β βββ main_container.py
β βββ toolbar.py
βββ controllers/ # Handles business logic & interactions
βββ kv_files/ # Kivy (.kv) files for UI design
β βββ main_container.kv
β βββ main_toolbar.kv
β βββ root_container.kv
βββ models/ # Data models (manual implementation)
βββ utils/ # Utility/helper functions
βββ venv/ # (Optional) Virtual environment
βββ buildozer.spec # (Optional) Configuration for Android packaging
βββ main.py # Entry point of the Kivy application
βββ README.md # Project documentation
βββ requirements.txt # Dependencies list
βββ theme.py # Defines global styles and themes
Stores version control metadata when using Git.
Holds static resources like images, fonts, and icons.
Contains reusable UI elements. Examples:
main_container.py β Main UI container.
toolbar.py β Application toolbar with buttons/navigation.
Manages business logic and communication between UI and models. (Manual implementation required.)
Stores .kv files to define UI separately from Python logic. Examples:
main_container.kv β Layout for the main container.
main_toolbar.kv β Toolbar layout.
root_container.kv β Loads/manages other UI components.
Stores data models for databases, APIs, or other structured data. (Manual implementation required.)
Includes helper functions for logging, error handling, etc.
A virtual environment for managing dependencies.
Configuration file for Buildozer, used to package the Kivy app into an APK (Android) or other formats.
The entry point of the Kivy application.
Project documentation, including setup, features, and usage.
Lists dependencies. Install them with:
pip install -r requirements.txt
Defines global styles, colors, and fonts for the application.
We appreciate contributions to improve KivyStart! Feel free to submit issues, feature requests, or pull requests.
