Build native mobile apps in python using enaml and native widgets!
The goal of this project is to be the python version of react-native. It targets apps that need to have a "native" look and feel and achieves this by reusing existing native Android and iOS widgets from python. It allows you to declaratively define a UI using python based language called enaml. The rest is "normal" python.
Kivy is still recommended for games and applications that need custom widgets that native Android and iOS libraries do not provide.
This is still a very young project but the results and feedback have been positive and promising. Thanks for dropping by!
See the project site and docs
There's also some short tutorials and examples on youtube.
Slides from a presentation here
Need help? Chat on:
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).
Created a package? Send a PR and add it here!
Apps using enaml-native can be found here.
A short video showing of some of the apps I made are here
Currently enaml-native's Android support is good enough to make real usable app. A lot of components are supported and several apps have already been released using enaml-native.
Currently enaml-native's iOS support is not yet good enough to make a real app. Only a few components are implemented at the moment and a lot of work is needed to get it to the point where it's really usable, but my "proof of concept" demo shows that it does work.
This project is built on top of several existing projects:
Please give them a star, thanks, and/or donation as without these this project would not exist!
Contributions of any kind are welcome. Please use the numpydoc format for docstrings and the pep-8 code style to be consistent with enaml.
This is a project I develop in my free time. If you use enaml-native or simply like the project and want to help continue the development of it please consider donating.