[HN Gopher] BeeWare - write Python, run everywhere using native UIs
       ___________________________________________________________________
        
       BeeWare - write Python, run everywhere using native UIs
        
       Author : ivanche
       Score  : 228 points
       Date   : 2022-02-03 10:13 UTC (3 days ago)
        
 (HTM) web link (beeware.org)
 (TXT) w3m dump (beeware.org)
        
       | miketery wrote:
       | I wish I saw this before I started on the road with React Native.
       | Lot's of similarities but seems easier and thinner (i.e. npm is
       | too bloated).
        
       | nicmccool wrote:
       | I'd gone down the rabbithole the last few days of whether to use
       | kivy or beeware for a personal powerlifting app I'm building as
       | side project / learning experience. I'd gone as far as settling
       | on Kivy and installing the dependencies (which took an extra few
       | hours until I learned only python <= 3.8 is used), and now this
       | pops up here and I'm reconsidering everything... again. On paper
       | Beeware sounds perfect for my needs, but the limited community
       | support has me timid to try.
        
         | JasonFruit wrote:
         | I wrote a few small Android apps using Kivy, and I ran into
         | some problems with performance with scrolling lists of buttons.
         | Doing it the most obvious, natural way led to obvious poor
         | performance -- a list of more than a dozen or so buttons simply
         | could not be scrolled without accidentally clicking on one.
         | There was a recommended workaround, which I found and used, and
         | its performance was slightly less obviously bad -- it showed up
         | with dozens of bad reviews from users of slightly outdated
         | devices. The last I looked, Kivy had not progressed on that
         | issue. I didn't continue to use it, and don't know if it has
         | other similar problems, but it was a discouraging experience
         | for me.
        
           | guitarcase wrote:
           | Did you by any chance use recycleview for the listviews?
           | Seems to be the recommended way but the documentation is not
           | very clear on how to use them.
        
         | clued wrote:
         | I made a Kivy/KivyMD mobile app as a part of my diploma project
         | like a year ago, and I surely wanted it to be a cool little
         | learning experience, too. It was a disaster!
         | 
         | I mean, the KV language is pretty neat, but the insane amount
         | of tooling involved (that always, always fails) to actually
         | open your app on your phone is disgusting. Disgusting as in
         | using three different versions of Python, setting up
         | mismatching Android tooling, cross-compiling wheels on your
         | virtual machine only for it to fail with some cryptic GCC error
         | disgusting. It's also pretty outdated (e.g. camera doesn't work
         | properly with the last ~5 Android APIs), and of course very
         | slow, even if you pre-optimize your code with pagination and
         | stuff.
         | 
         | Kinda regret using Kivy at all, despite its community being
         | amazing. So, can't recommend. Perhaps, you could consider
         | learning Flutter instead? It will take just about the same time
         | investment, but the whole experience is incomparable. Even
         | better, make a test app in Kivy, and then make one in Flutter.
         | (This is only partly a joke, though. It's really that fun.)
        
       | jedberg wrote:
       | Does anyone know of any apps that were developed with this? They
       | didn't have any examples on their site that I could find.
        
       | The_rationalist wrote:
        
       | einpoklum wrote:
        
       | serial_dev wrote:
       | I work now with Flutter full time and love it, but on my way from
       | web Vue.js to mobile development with Flutter, I was researching
       | different app frameworks, and I watched some videos with the main
       | author of BeeWare/Toga, Russell Keith-Magee. The presentations
       | are very engaging and the solution that this project came up is
       | really something.
       | 
       | This is my favorite video by Russel [0], it really is a
       | fascinating project, and he is a great speaker.
       | 
       | With that said, I don't really see it becoming a widely used
       | framework. No matter how creative the solution is, it's hard to
       | compete against real native, Kotlin Multiplatform Mobile,
       | Flutter, React Native, Electron, and more. The most complicated
       | example I saw with BeeWare is a todo list app [1]
       | 
       | [0] https://www.youtube.com/watch?v=qaPzlIJ57dk [1]
       | https://www.youtube.com/watch?v=RisCgSIWwLA
        
         | udbhavs wrote:
         | Does Kotlin Multiplatform mobile handle the UI layer for both
         | iOS and Android? I thought you could only share business logic
        
           | jillesvangurp wrote:
           | Not currently. Jetbrains has extended Google's Compose
           | framework with a desktop and and web variant recently.
           | However, IOS is notably not covered by these. Though you
           | might reasonably expect them to be going there as well.
           | 
           | Compose desktop currently target the JVM, which of course is
           | not going to work on IOS. They do use Skia for the UI; which
           | is also what Google is using with Flutter, I think.
           | 
           | Targeting the Kotlin native compiler would be a logical next
           | step. It's currently quite usable for porting libraries
           | between different platforms. However, I'm guessing they would
           | need to do a bit of work on improving the multi platform
           | library ecosystem to be able to have enough of a base
           | platform for developing full applications with it. Targeting
           | IOS would be a logical next goal once they are able to do
           | that.
        
           | serial_dev wrote:
           | You are correct. The technical details of the solutions I
           | listed can be different, but in the end they are often
           | competing for the same users (I need an app, which solution
           | should I use).
        
             | udbhavs wrote:
             | I haven't looked too deeply into how BeeWare works, but why
             | is it so uncommon to see similar solutions in other
             | languages like Kotlin, Go, Rust etc? Basically the React
             | Native approach but without JS. I would love to write
             | multiplatform native UIs in any of these languages.
             | 
             | I have nothing against Javascript but there are still a lot
             | of weird limitations in RN despite being several years old.
             | Writing smooth animations that support user interaction is
             | difficult because it is still single threaded and you are
             | limited to a declarative animation api where the underlying
             | native runtime does the interpolation.
             | 
             | React-reanimated v2 tries to solve this by spawning JS
             | worklets that can run animation code in another thread but
             | that comes with its own caveats. This would be so much
             | easier to do in a language with built in threading, not to
             | mention all these languages are very ergonomic and loved by
             | developers so I'm curious why something similar hasn't been
             | tried for them yet.
        
         | bb88 wrote:
         | There's been quite a few "python" in the browser/android/native
         | kinds of things:                 * pyjs / pyjamas       *
         | brython       * kivy       * chaquopy       * pyqt       *
         | pygtk       * ...
         | 
         | But the first big problem has always been delivering an
         | experience that looks and feels right on the target platform.
         | Do you use the native UI or do you use something else? The
         | swing Java UI's of the 00's were so kludgy, and looked
         | unprofessional because they implemented their own UI
         | components.
         | 
         | The other big problem is that how does the code run? Is it
         | transpiled to javascript or does it have to download a python
         | interpreter that can run in the browser/android? It's not a big
         | issue for like a native app for mac/windows, but for the
         | browser it is. https://brython.org takes ~6 seconds to run a
         | simple clock because it's downloading the interpreter. Wasm
         | doesn't necessarily help here, since either you compile the
         | code to directly run on wasm, or you need to bring along the
         | wasm compiled interpreter.
         | 
         | An example of this is Jython. It needed to start the JVM, then
         | run the python code in the python interpreter in the JVM. Very
         | inception like, though I did enjoy writing unit tests this way.
         | Mostly because unit tests didn't need to be compiled against a
         | jar. And broken unit tests didn't need a full recompile.
        
         | virtualwhys wrote:
         | > work now with Flutter full time and love it.
         | 
         | Do you love Dart though? Flutter's stateful hot code reload is
         | amazing but, man, for me Dart is just completely hideous. Maybe
         | I've gotten spoiled by Typescript and Scala...
        
           | serial_dev wrote:
           | Oh, Dart is my favorite part of Flutter. It's a language that
           | is very easy to learn and use, no surprises, it's performant
           | (performant enough), and you can use it on web, server and as
           | command line apps, too. The language has gotten significantly
           | better and the Dart team focuses on the right issues to solve
           | next.
        
             | berkes wrote:
             | > on web
             | 
             | Does it stranspile to JavaScript, or compile to asm, or
             | something else entirely?
        
               | _delirium wrote:
               | It compiles to JS: https://dart.dev/tools/dart2js
               | 
               | The Dart team is investigating a dart-to-wasm compiler,
               | but is waiting on the Wasm GC proposal to be
               | standardized: https://medium.com/dartlang/experimenting-
               | with-dart-and-wasm...
        
               | serial_dev wrote:
               | > Dart supports the web as one of its core platforms.
               | Dart-to-JavaScript compilers are available both for
               | development and for production.
               | 
               | You can learn more about the status quo here
               | https://dart.dev/web
               | 
               | Compiling to WASM is on the roadmap
               | https://github.com/flutter/flutter/wiki/Roadmap#dart
               | 
               | > Dart (...) We also plan to expand Dart's compilation
               | toolchain to support compiling to Wasm, contingent on the
               | timely standardisation of WasmGC.
        
               | devxpy wrote:
               | Transpile to Javascript
               | https://dart.dev/overview#platform
        
         | password4321 wrote:
         | Add Fyne to the list, using Go.
         | 
         | https://hn.algolia.com/?query=Fyne%20-fine%20comments%3E0
        
       | explaingarlic wrote:
       | Looks well and cool, but the enterprise "pricing" seems a
       | little... optimistic.
       | 
       | > $5000/month
       | 
       | > An annual meeting with core team
       | 
       | I understand that these are technically "donations" but the
       | incentives offered are very much just a lightweight support
       | agreement for 2-10x the price.
       | 
       | I have no reason to believe that a python based UI solution that
       | _finally_ captures some market share could be a big success, and
       | are that point the pseudo donation model would go out the window.
       | Best of luck to these guys, would be cool to not be forced to use
       | TKinter in school assignments.
        
       | samwillis wrote:
       | The BeeWare system is incredible and so close to really taking
       | off. What I feel it needs if a proper corporate sponsor, an
       | organisation that will embrace it itself for its own products and
       | invest back into the project. It's the best chance of Python on
       | mobile we have.
        
       | bastardoperator wrote:
       | "Write once. Deploy everywhere."... I've heard this too many
       | times to take it seriously anymore.
        
         | mrtksn wrote:
         | It never works well because the platforms are not simply the
         | same thing by different companies but they all have their
         | concurrent ideas, conventions and differences.
         | 
         | The toolset for "Write once. Deploy everywhere." that works is
         | HTML + JS + CSS and nothing else. This is because browsers work
         | about the same everywhere.
         | 
         | IMHO if an app is not going to leverage the platform but will
         | simply show some UI to display or collect data, the way to do
         | it is HTML + JS + CSS in the browser.
         | 
         | When you try to support platform specific features, you end up
         | doing much more work but instead of working on the primary App,
         | you spend you time on integration and replication of platform
         | behaviour or functions.
        
         | nu11ptr wrote:
         | I'm still a fan of this concept, but I think you have to keep
         | your expectations realistic. You are likely going to have to
         | make some platform specific considerations, just a lot less
         | than without an abstraction technology. Generally, I've found
         | this manageable, but it can be hard to pull off well for sure.
         | Some have succeeded rather well I think (Java comes to mind).
         | 
         | Native GUI frameworks can be more of a challenge. Still, if you
         | want a native L&F your alternative is to code each platform
         | individually, then something like this (or wxWidgets/SWT/etc.)
         | is likely to be a lot less work (but likely to look a bit less
         | native). Trade offs. Good to have choices I think.
        
         | y4mi wrote:
         | "write once, deploy everywhere [you've got the same kind of
         | hardware or machine available so that the code will work
         | without recompilation and won't look too out of place]" just
         | doesn't have the same ring to it...
        
         | zerkten wrote:
         | It's not worth taking seriously for app development where you
         | gain advantages from the native experience. This rules it out
         | as a primary app development platform for the majority of
         | developers.
         | 
         | It's very strong for the many "good enough" scenarios that
         | range from complete products in domains like pharma where users
         | will tolerate user experience glitches as long as they can be
         | using the same Pandas code behind the scenes on multiple OSes,
         | or utility-level apps that need to run on multiple platforms.
         | These are often tucked away in places that HN readers are
         | averse to exploring from a career perspective.
        
       | streamofdigits wrote:
       | Both BeeWare and Kivy are great projects adressing a space that
       | could surely produce some very interesting applications. Offering
       | seamless integration of the versatile python stack on mobile
       | devices would be a game changer as far as I am concerned, turning
       | the mobile more into a computing device as opposed to merely
       | facilitating the fastest click to the cloud.
       | 
       | They seem under-resourced, though, especially BeeWare. Targeting
       | platforms that do not support python natively feels like a task
       | that would challenge even much larger teams
        
       | [deleted]
        
       | jollybean wrote:
       | Can people comment here on how powerful they believe Python is
       | vs. something like Javascript/Typescript. The later have their
       | flaws but do really well for UI development. Is there truly an
       | inherent advantage in Python? Are some people inherently keen on
       | the language?
        
         | rich_sasha wrote:
         | Python is a great language. Really nice to work with, if you
         | don't mind the premise (no static safety etc). It's not really
         | focused on UI though; packages exist but are kind of niche, I'd
         | say. Not exotic: you have wrappers for Tkinter, Qt, WxWidgets
         | etc. But most people writing serious native GUI apps avoid
         | Python. I've always found Python GUIs slow and clunky.
         | 
         | Web is different for many reasons and there Python does well.
        
         | musingsole wrote:
         | The language specifics are mostly a subjective judgement, but
         | if you can get Python into the same niches as Typescript, then
         | the ecosystem can payoff tenfold.
         | 
         | The number of convoluted JavaScript "data" apps that I've
         | replaced with python and just a dash of Pandas is too high.
        
       | IshKebab wrote:
       | I just don't understand why you'd choose something as slow as
       | Python for this. Not sure how it could compete with React Native
       | which seems like the closest equivalent, but in a much faster and
       | better language.
        
         | coldtea wrote:
         | Because you get to use Python.
         | 
         | And why would Python level "slow" matter at all for most kinds
         | of apps? You're not writing games or bitmap editors with
         | this...
        
         | bogwog wrote:
         | > better language
         | 
         | Sarcasm?
        
         | nvllsvm wrote:
         | The language is the main reason to choose this. It's for people
         | who like Python and want to write a GUI in it.
        
           | alexklark wrote:
           | Can they go and do it somewhere else? I don't need another
           | ugly and power draining app in my iphone that I might forced
           | to use. I wish apple forbid to use in store all these
           | inferior interpreted languages with huge over-bloat like
           | csharp, python, java, ruby. They are fine a tool for heating
           | the earth and get corp to purchase even more servers for
           | CRUD, but not to use in a battery powered device.
        
             | progval wrote:
             | > interpreted languages with huge over-bloat like csharp,
             | python, java, ruby
             | 
             | csharp and java, famously interpreted languages, unlike
             | javascript.
        
         | [deleted]
        
         | silisili wrote:
         | Python is one of, if not the, easiest languages to learn and
         | use. I feel that's why it took off in science related fields -
         | non CS people can jump in and be productive quickly.
         | 
         | Seeing as this is for GUIs and not say, computing digits of Pi,
         | I think Python is a fantastic choice for this.
         | 
         | I honestly wish Python had taken off as the web language
         | instead of JS, but that's a conversation for another time.
         | 
         | FWIW, I'm not a Python fanatic or anything, I haven't used it
         | in years - but it's hard to argue it's not a great language for
         | beginners.
        
         | zerkten wrote:
         | If you want to make a quick shift from writing command line
         | apps to writing GUI apps then you are the target for this. If
         | you need to be writing high value mobile or desktop apps then
         | this is a less of a compelling option as you note.
         | 
         | There are a lot of very high quality libraries like Pandas and
         | SciPy that are not available in the React Native ecosystem.
         | Tools like those provided by BeeWare let you add a GUI quickly.
         | The folks interested in interacting with something running on
         | these data science libraries tolerate imperfect user
         | experiences more than the average consumer.
         | 
         | If we looked at React Native we could level your argument at it
         | as well. Why use RN when you could build real native apps?
         | Surely, that's the most optimal experience over a third-party
         | platform, no matter how good RN is in practice.
        
         | udbhavs wrote:
         | I would love a cross platform native toolkit like this for a
         | typed language like Kotlin or Rust
        
           | coldtea wrote:
           | Well, there is one for Kotlin:
           | 
           | https://www.jetbrains.com/lp/compose-mpp/
        
             | udbhavs wrote:
             | Kotlin multiplattorm doesn't do iOS UI, only some business
             | logic sharing using kotlin compiled to native. The UI layer
             | still needs to be in Swift
        
               | amelius wrote:
               | There are so many different languages, that we stopped
               | making any progress!
        
               | nu11ptr wrote:
               | I agree with this, and yet, I love these new languages
               | (esp. Rust) so I'd hate to halt progress.
               | 
               | Instead, what I think we need is a solid cross platform
               | native UI library targeting C (libui would be a candidate
               | - before it lost momentum). It would then be a reasonable
               | amount of work to create multi-language bindings. Instead
               | we have things like wxWidgets/Qt that are a pain to
               | create bindings for since it is written in C++. As proof
               | this would accelerate things, notice how many languages
               | have GTK bindings (C based).
        
               | frou_dh wrote:
               | libui would still only be suitable for toy applications,
               | even if it was properly maintained.
               | 
               | As a user, I don't want to use toy applications. So hats
               | off to those who do things properly and use the real
               | platform frameworks.
        
           | jasfi wrote:
           | Check out https://nexusdev.tools/
           | 
           | Kotlin/Rust could be supported if there's enough interest.
        
           | nu11ptr wrote:
           | SixtyFPS (https://sixtyfps.io/) is in progress for Rust, but
           | it is still early days. It also does not technically use a
           | native toolkit (it uses Qt), but I believe that might be on
           | roadmap. For traditional GUI apps, I think the lack of a
           | table or tree widget is the most limiting for the time being.
           | They have stated they intend to remedy that.
           | 
           | I should also add that it is GPL - with all that implies.
           | They also have commercial licenses.
        
       | dang wrote:
       | Past related threads:
       | 
       |  _Beeware - Android and iOS Apps in Python_ -
       | https://news.ycombinator.com/item?id=24487867 - Sept 2020 (25
       | comments)
       | 
       |  _BeeWare project: A request for your help_ -
       | https://news.ycombinator.com/item?id=14034353 - April 2017 (1
       | comment)
       | 
       |  _Build and ship native GUI apps on Python with Beeware [audio]_
       | - https://news.ycombinator.com/item?id=12719433 - Oct 2016 (6
       | comments)
       | 
       |  _BeeWare: The IDEs of Python_ -
       | https://news.ycombinator.com/item?id=12374952 - Aug 2016 (1
       | comment)
       | 
       |  _BeeWare - The IDEs of Python_ -
       | https://news.ycombinator.com/item?id=9616641 - May 2015 (28
       | comments)
        
       | [deleted]
        
       | arjvik wrote:
       | I've tried using Briefcase before, and I completely gave up. The
       | goal was to get a cross-platform Qt app compiled down to a single
       | executable, but I couldn't even get it to run on the machine it
       | was compiled on, much less a windows machine without Python
       | installed.
       | 
       | Am I an outlier, or is it this difficult to get working at first?
       | I imagine that once you get a working build, it must work quite
       | smoothly!
        
         | franga2000 wrote:
         | I haven't used this framework, but this has been my experience
         | with pretty much all UI frameworks and especially with Python
         | ones. Even the demo projects are often a pain to package and
         | starting from scratch means hours of reading docs and changing
         | parameters almost at random to see what happens.
         | 
         | Windows is the absolute worst for packaging Python (unless you
         | give up and package everything in a self-extracting exe, but
         | then antivirus is even more likely to eat it) and Android
         | barely runs native Qt (seriously, the demo project from their
         | website straight up doesn't build), so I can imagine that
         | running something with 4 layers of stuff in between would have
         | even worse odds of working.
        
       | Retr0id wrote:
       | https://beeware.org/project/projects/libraries/toga/
       | 
       | For a UI framework, there is a distinct lack of screenshots.
       | 
       | > > So, why is it called "Toga"?
       | 
       | > When in Rome, do as the Romans do. And what does a Roman wear?
       | A Toga!
       | 
       | Ha, that's a clever choice.
        
         | JasonFruit wrote:
         | If you follow the Documentation link, there are a few.
        
         | upwardbound wrote:
         | > For a UI framework, there is a distinct lack of screenshots.
         | 
         | Yeah. I was able to find some here; looks clean and reasonable
         | at least on Mac:
         | 
         | https://twitter.com/PyBeeWare/status/1366274894967709702/pho...
         | 
         | https://maestral.app/assets/images/screenshot.png
         | 
         | (I'm including the Maestral link because one of @pybeeware's
         | tweets says that Maestral is a BeeWare app)
        
           | udbhavs wrote:
           | Here's how it looks on Android and iOS -
           | 
           | https://docs.beeware.org/en/latest/_images/tutorial-5-launch.
           | .. https://docs.beeware.org/en/latest/_images/tutorial-5.png
        
         | eesmith wrote:
         | Though with an inauspicious context. Quoting
         | https://en.wikipedia.org/wiki/Toga :
         | 
         | > From its probable beginnings as a simple, practical work-
         | garment, the toga became more voluminous, complex, and costly,
         | increasingly unsuited to anything but formal and ceremonial
         | use. It was and is considered ancient Rome's "national
         | costume"; as such, it had great symbolic value; however even
         | among Romans, it was hard to put on, uncomfortable and
         | challenging to wear correctly, and never truly popular. When
         | circumstances allowed, those otherwise entitled or obliged to
         | wear it opted for more comfortable, casual garments.
         | 
         | > ... the toga's bulk and complex drapery made it entirely
         | impractical for manual work or physically active leisure. The
         | toga was heavy, "unwieldy, excessively hot, easily stained, and
         | hard to launder".[39] It was best suited to stately
         | processions, public debate and oratory, sitting in the theatre
         | or circus, and displaying oneself before one's peers and
         | inferiors while "ostentatiously doing nothing".[
        
       | kissiel wrote:
       | "native" as in "native user interfaces"
        
         | 95014_refugee wrote:
         | And "everywhere" as in "user-facing systems".
        
           | bogwog wrote:
           | Is there such a thing as a non-user facing system with a user
           | interface?
        
             | capableweb wrote:
             | Server hardware is generally not user facing (well,
             | everything is "user" facing considering who the "user" is,
             | maybe better to say "end-user facing") and has interfaces,
             | both hardware and software usually, on one or another
             | level.
        
               | berkes wrote:
               | None of those interfaces are user-interfaces, though.
        
         | iqanq wrote:
         | And not even that. Unless they are pretending that GTK+ or Qt
         | or whatever they've chosen looks native on desktops.
        
           | YellowStuDregg wrote:
           | They do use native widgets:
           | 
           | https://toga.readthedocs.io/en/latest/background/philosophy..
           | ..
        
         | dang wrote:
         | Ok, we've put that in the title above.
         | 
         | (Submitted title was 'BeeWare - write Python, run as native
         | everywhere')
        
       | stavros wrote:
       | BeeWare looks great, as always, but my impression is that the
       | documentation/ecosystem isn't very extensive, so I've always been
       | loath to try it. In such an extensive toolkit, I think
       | ecosystem/community is important, as otherwise you'll be hitting
       | walls frequently that will be hard to get past.
        
       | onphonenow wrote:
       | Targeting windows is really interesting actually - Microsoft has
       | made such as a hash of the development story on Windows I'm
       | surprised more folks haven't made a run at that market. In my
       | case, I like rich local app -> remote data store.
       | 
       | Does anyone know how well this performs on windows.
        
       | pininja wrote:
       | Does this have support for installing and linking to useful
       | native utilities, like GraphicsMagick? Python is such a good
       | glue. Sometimes I want to make a small GUI that combines great
       | python libraries with great CLI applications.
        
         | udbhavs wrote:
         | Looks like it might be possible but difficult on mobile:
         | https://docs.beeware.org/en/latest/tutorial/tutorial-6.html
         | 
         | "On desktop platforms (macOS, Windows, Linux), any pip-
         | installable can be added to your requirements. On mobile
         | platforms, your options are a little more limited - you can
         | only use pure Python packages i.e., packages that do not
         | contain a binary module.
         | 
         | This means that libraries like numpy, scikit-learn, or
         | cryptography can be used in a desktop app, but not a mobile
         | app. This is primarily because mobile apps require binary
         | modules that are compiled for multiple platforms, which is
         | difficult to set up.
         | 
         | It's possible to build a mobile Python app that uses binary
         | modules, but it's not easy to set up - well outside the scope
         | of an introductory tutorial like this one."
        
           | pzo wrote:
           | This was actually a dealbreaker and blocker for me when I
           | last time tried BeeWare. I was hoping I will be able to do
           | some rapid prototyping with numpy + opencv-python directly on
           | my android or iphone. I wish there was at least some tutorial
           | how to make non-pure python modules.
           | 
           | I had the same issue when investigating Kivy and PyQt. It
           | definitely seems possible since you can download Pydroid [1]
           | for android (that supports e.g. pyqt, opencv, tensorflow) or
           | Pyto [2] for iOS (that seems actually is based on BeeWare and
           | support many non-pure modules including opencv)
           | 
           | [1] https://play.google.com/store/apps/details?id=ru.iiec.pyd
           | roi...
           | 
           | [2] https://github.com/ColdGrub1384/Pyto
        
       ___________________________________________________________________
       (page generated 2022-02-06 23:00 UTC)