All Projects → codelv → Enaml Native

codelv / Enaml Native

Licence: mit
Build native mobile apps in python with enaml

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Enaml Native

React Native Google Place Picker
React Native Wrapper of Google Place Picker for iOS + Android.
Stars: ✭ 180 (-23.08%)
Mutual labels:  native
Expo
An open-source platform for making universal native apps with React. Expo runs on Android, iOS, and the web.
Stars: ✭ 15,550 (+6545.3%)
Mutual labels:  native
Lwt Node
Reason Implementation of Node.js API ✨🏎🚀✨
Stars: ✭ 226 (-3.42%)
Mutual labels:  native
Xcrash
🔥 xCrash provides the Android app with the ability to capture java crash, native crash and ANR. No root permission or any system permissions are required.
Stars: ✭ 2,689 (+1049.15%)
Mutual labels:  native
Httpkit
⚡️ High-level, High-performance HTTP(S) Clients/Servers in Reason/OCaml
Stars: ✭ 198 (-15.38%)
Mutual labels:  native
React Native Webview Invoke
Invoke functions between React Native and WebView
Stars: ✭ 211 (-9.83%)
Mutual labels:  native
Robot
Native cross-platform system automation
Stars: ✭ 178 (-23.93%)
Mutual labels:  native
Keen Slider
The HTML touch slider carousel with the most native feeling
Stars: ✭ 3,097 (+1223.5%)
Mutual labels:  native
Purec
C backend for PureScript
Stars: ✭ 202 (-13.68%)
Mutual labels:  native
Elixir Json
Native JSON library for Elixir
Stars: ✭ 216 (-7.69%)
Mutual labels:  native
You Dont Need Lodash Underscore
List of JavaScript methods which you can use natively + ESLint Plugin
Stars: ✭ 13,915 (+5846.58%)
Mutual labels:  native
Votlin App
Kotlin multiplatform project
Stars: ✭ 193 (-17.52%)
Mutual labels:  native
Spstorkcontroller
Now playing controller from Apple Music, Mail & Podcasts Apple's apps.
Stars: ✭ 2,494 (+965.81%)
Mutual labels:  native
React Native Multithreading
🧵 Fast and easy multithreading for React Native using JSI
Stars: ✭ 164 (-29.91%)
Mutual labels:  native
Ts Llvm
TypeScript to LLVM compiler (abandoned)
Stars: ✭ 230 (-1.71%)
Mutual labels:  native
Lam
🚀 a lightweight, universal actor-model vm for writing scalable and reliable applications that run natively and on WebAssembly
Stars: ✭ 176 (-24.79%)
Mutual labels:  native
Share Api Polyfill
A polyfill for the sharing that can be used in desktop too, so your users can shere in their twitter, facebook, messenger, linkedin, sms, e-mail, print, telegram or whatsapp.
Stars: ✭ 210 (-10.26%)
Mutual labels:  native
Easyincrementalupdate
Android差分补丁库,通过native层合并APK,实现增量更新升级,让你更新的APK更小。
Stars: ✭ 233 (-0.43%)
Mutual labels:  native
Titanium mobile
🚀 Native iOS- and Android- Apps with JavaScript
Stars: ✭ 2,553 (+991.03%)
Mutual labels:  native
Dmd
dmd D Programming Language compiler
Stars: ✭ 2,498 (+967.52%)
Mutual labels:  native

enaml-native

Build Status codecov Help chat Documentation Status Downloads

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!

Docs and Examples

See the project site or the api docs

There's also some short tutorials and examples on youtube.

Slides from a presentation here

Need help? Chat on:

Screenshots

Drawer Demo

Add-on Packages

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).

Packages

Created a package? Send a PR and add it here!

Features

  1. Enaml's features: declarative syntax, conditional and looper rendering, automatic data binding
  2. Layouts with flexbox
  3. Live app code reloading (like react-native's live reload)
  4. Versioned package management and native library linking
  5. Remote debugging with your favorite IDE (like react-native's remote debugger)

Apps

Apps using enaml-native can be found here.

A short video showing of some of the apps I made are here

App examples

Demos

  1. Try out the beta demo app here on google play
  2. Try out code without installing the android SDK or NDK via the Python Playground!

Status

Android

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.

iOS

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.

Thanks to

This project is built on top of several existing projects:

  1. enaml
  2. python-for-android
  3. pybridge
  4. react-native (inspiration)
  5. pyjnius
  6. kivy-ios

Please give them a star, thanks, and/or donation as without these this project would not exist!

Contributions

Contributions of any kind are welcome. Please use the numpydoc format for docstrings and the pep-8 code style to be consistent with enaml.

Donate

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].