MycroftAI/Mycroft-Android

Run Mycroft Core on Device

ryanleesipes opened this issue · 10 comments

This is a BIG addition, but it is important to make Mycroft on the phone powerful as a standalone experience.

I mean, it sounds possible, but...is python the only language we can use for the core itself?

Kivy and jython are the only frameworks I'd properly endorse for running Python code on the jvm. Realistically speaking, we want to run background threads with the mycroft-core code, and even that's non-trivial (which you already pointed out).

I recommend we start by trying one of those (Kivy is supposed to be the more capable).

In parallel, we should try to get a working C/C++ build out of Cython or Nuitka, make that part of our build process, then include that as a native library on Android.

I have a feeling we'll need lessons we learn from both initiatives, at which point I can start integrating into this app. @ryanleesipes as a plan how does that sound?

Sounds like a good place to start!

I am busy experimenting with the assist api on sdk 24 now. I reckon a rewrite of the core functionality in Java native code is a more feasible approach. I'll probably do a commit tomorrow sometime and see.

The major problem here is that there are now going to be multiple codebases to maintain...

Another option is simply to use mycroft as a service much like siri or on tap (Google Now)

We can expose an API for the application to hit if it is too difficult to run Core on the device itself. I just wanted to see if it was possible.

Anything is possible.... with enough time.... :) I'll put some things together and see what we can do, then open it all up for discussion on Slack

Also @ryanleesipes the application does have an API... The Websocket is just fine!

Testing github-slack integration... 💯

Heads up to anyone following this, a clean room implementation has been started with a lot of the work done by @Tadashi-Hikari!

He's having trouble with adapt if you want to jump in:

https://github.com/Tadashi-Hikari/Mycroft

He will also be AFK for a few months, so would be great if we could fork it and continue.

Be aware it's currently tagged GPL3.

The repo that Dr Ben linked above now exists at: https://github.com/MycroftAI/MycroftCore-Android

I am sure they are keen for more contributors if anyone is interested. Just jump in and say hi on the Android channel in Chat.

As this other project exists, I'll close this issue and let the conversation continue in the other repo and on Chat.