{"id":13501683,"url":"https://github.com/codelv/enaml-native","last_synced_at":"2025-04-05T17:04:37.708Z","repository":{"id":25393508,"uuid":"91909560","full_name":"codelv/enaml-native","owner":"codelv","description":"Build native mobile apps in python with enaml","archived":false,"fork":false,"pushed_at":"2023-04-08T12:25:41.000Z","size":105195,"stargazers_count":260,"open_issues_count":4,"forks_count":21,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-03-28T18:04:48.034Z","etag":null,"topics":["android","enaml","native","python"],"latest_commit_sha":null,"homepage":"https://codelv.com/projects/enaml-native/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codelv.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"frmdstryr","patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-05-20T18:49:12.000Z","updated_at":"2025-03-10T23:47:27.000Z","dependencies_parsed_at":"2024-01-16T10:37:36.691Z","dependency_job_id":"a8f4e88f-9b14-4cd8-bc8b-02edc0fe4177","html_url":"https://github.com/codelv/enaml-native","commit_stats":{"total_commits":650,"total_committers":4,"mean_commits":162.5,"dds":0.1415384615384615,"last_synced_commit":"bb0c5a1fc0b923ab3f44518d351e5806f253eb0c"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelv%2Fenaml-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelv%2Fenaml-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelv%2Fenaml-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelv%2Fenaml-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codelv","download_url":"https://codeload.github.com/codelv/enaml-native/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247369953,"owners_count":20927928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","enaml","native","python"],"created_at":"2024-07-31T22:01:46.258Z","updated_at":"2025-04-05T17:04:37.690Z","avatar_url":"https://github.com/codelv.png","language":"Python","funding_links":["https://github.com/sponsors/frmdstryr"],"categories":["Python"],"sub_categories":[],"readme":"# enaml-native\n\n[![status](https://github.com/codelv/enaml-native/actions/workflows/ci.yml/badge.svg)](https://github.com/codelv/enaml-native/actions) [![codecov](https://codecov.io/gh/codelv/enaml-native/branch/master/graph/badge.svg)](https://codecov.io/gh/codelv/enaml-native) [![Help chat](https://img.shields.io/gitter/room/nwjs/nw.js.svg)](https://gitter.im/enaml-native/Lobby) [![Downloads](https://pepy.tech/badge/enaml-native/month)](https://pepy.tech/project/enaml-native/)\n\nBuild native mobile apps in python using enaml and native widgets!\n\nThe goal of this project is to be the python version of [react-native](https://facebook.github.io/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](http://enaml.readthedocs.io/en/latest/get_started/introduction.html). The rest is \"normal\" python.\n\nKivy is still recommended for games and applications that need custom widgets that native Android and iOS libraries do not provide.\n\nThis is still a very young project but the results and feedback have been positive and promising. Thanks for dropping by!\n\n### Docs and Examples ###\n\nSee the [project site](https://codelv.com/projects/enaml-native/) and [docs](https://codelv.com/projects/enaml-native/docs/getting-started/)\n\nThere's also some short tutorials and examples on [youtube](https://www.youtube.com/playlist?list=PLXUaMWWFaOjT2WdIrJdTYjEMJmrjuvVz0).\n\nSlides from a presentation [here](https://prezi.com/p/ysvx5nhbntta/enaml-native/)\n\nNeed help? Chat on:\n\n- gitter https://gitter.im/enaml-native/Lobby\n- slack workspace https://enaml-native.slack.com/messages\n\n##### Screenshots\n\n[![Drawer Demo](https://user-images.githubusercontent.com/380158/38657098-60a43b9c-3dec-11e8-844b-4ac689417b7c.gif)](https://github.com/codelv/enaml-native/blob/master/examples/nav_drawer.enaml)\n\n\n### Add-on Packages ###\n\nEnaml-native was redesigned so separate \"packages\" can be created and installed to add new\nnative widgets and other apis. Similar to the [kivy-garden](https://github.com/kivy-garden/) but\nit borrows the concepts of the [react-native package manager](https://github.com/rnpm/rnpm).\n\nPackages can be created using the `enaml-native init-package \u003cyour-package-name\u003e` command. Once\nmade they can be installed with `pip` or the `enaml-native install` command (recommended).\n\n#### Packages ####\n\n- GoogleMap support via [enaml-native-maps](https://github.com/codelv/enaml-native-maps)\n- MPAndroidChart graphing via [enaml-native-charts](https://github.com/codelv/enaml-native-charts)\n- ZXing barcode scanning via [enaml-native-barcode](https://github.com/codelv/enaml-native-barcode)\n- Iconfiy icons via [enaml-native-icons](https://github.com/codelv/enaml-native-icons)\n\nCreated a package? Send a PR and add it here!\n\n### Features ###\n1. Enaml's features: declarative syntax, conditional and looper rendering, automatic data binding\n2. Layouts with flexbox\n3. Live app code reloading (like react-native's live reload)\n4. Versioned package management and native library linking\n5. Remote debugging with your favorite IDE (like react-native's remote debugger)\n\n### Apps ###\n\nApps using enaml-native can be found [here](https://codelv.com/projects/enaml-native/apps/).\n\nA short video showing of some of the apps I made are here\n\n[![App examples](https://img.youtube.com/vi/VdV9HiLANyQ/0.jpg)](https://youtu.be/VdV9HiLANyQ)\n\n\n### Demos ###\n1. Try out the beta demo app here [on google play](https://play.google.com/store/apps/details?id=com.frmdstryr.enamlnative.demo)\n2. Try out code without installing the android SDK or NDK via the [Python Playground](https://play.google.com/store/apps/details?id=com.frmdstryr.pythonplayground)!\n\n### Status ###\n\n##### Android\n\nCurrently 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.\n\n##### iOS\n\nCurrently 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.\n\n### Thanks to ###\n\nThis project is built on top of several existing projects:\n\n1. [enaml](https://github.com/nucleic/enaml)\n2. [python-for-android](https://github.com/kivy/python-for-android/)\n3. [pybridge](https://github.com/joaoventura/pybridge)\n4. [react-native](https://github.com/facebook/react-native) (inspiration)\n5. [pyjnius](https://github.com/kivy/pyjnius/)\n6. [kivy-ios](https://github.com/kivy/kivy-ios/)\n\nPlease give them a star, thanks, and/or donation as without these this project would not exist!\n\n### Contributions\n\nContributions of any kind are welcome. Please use the [numpydoc](https://numpydoc.readthedocs.io/en/latest/format.html) format\nfor docstrings and the [pep-8](https://www.python.org/dev/peps/pep-0008/) code style to be consistent with enaml.\n\n### Donate\n\nThis 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](https://codelv.com/projects/enaml-native/support/).\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelv%2Fenaml-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodelv%2Fenaml-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelv%2Fenaml-native/lists"}