Build native mobile apps in python using enaml and native widgets!
The goal of this project is to be an alternative to using kivy for building mobile apps with python.
I made this because wanted to have a more "React Native" like environment that:
- Uses python
- Uses native widgets (Android / iOS)
- Can be run from Android Studio / XCode (ie no bootstraps)
- Uses enaml's models, and declarative and dynamic widget framework instead of kvlang
- Versioned "packages" and "recipes" than can be installed/updated/removed to make repeatable builds
Android apps are currently working and have a lot of components. iOS is currently broken, and is limited to only a few components at the moment
See the project site. There's also some short tutorials and examples on youtube.
Need help? Try the gitter group https://gitter.im/enaml-native/Lobby
Enaml-native was redesigned so separate "packages" can be created and installed to add new native widgets and other apis. Similar to the kivy-garden but it borrows the concepts of the react-native package manager.
Packages can be created using the enaml-native init-package <your-package-name>
command. Once
made they can be installed with pip
or the enaml-native install
command (recommended).
- GoogleMap support via enaml-native-maps
- MPAndroidChart graphing via enaml-native-charts
- ZXing barcode scanning via enaml-native-barcode
- Iconfiy icons via enaml-native-icons
Created a package? Send a PR and add it here!
- Enaml's features: declarative syntax, conditional and looper rendering, automatic data binding
- Layouts with flexbox
- Live app code reloading (like react-native's live reload)
- Versioned package management and native library linking
Apps using enaml-native can be found here.
- Try out the beta demo app here on google play
- Try out code without installing the android SDK or NDK via the Python Playground!
This project is built on top of several existing projects:
- enaml
- python-for-android
- pybridge
- react-native (inspiration)
- pyjnius
- kivy-ios