-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[MOBILE] Mobile Support - Global Tracking Issue #3243
Comments
hiyas... Line 2116 in 194bc25
There was the additional step that during the Dna read phase you needed to translate the |
@Connoropolous thanks! did you need to package your dylib deserialized wasms into iOS frameworks for it to work? |
I needed to have those dylib files sitting in the Xcode project folder and make sure they were included on the bundle of things that got codesigned during the app build process. I also needed to develop by testing and running on a hardware device, no simulator. |
That's really helpful @Connoropolous , thanks! |
@guillemcordoba what's this Tx5 |
FYI #3221 just merged, removing the network join error |
@guillemcordoba is adding wasmi as an engine really that big of a lift? i'd expect wasmer to basically work as-is because we'd still be using its interface, with wasmi only implemented "under the hood" of wasmer, right? |
@thedavidmeister I don't think it should be that much of a lift no, and for holochain I think that would be the ideal, since then from holochain's point of view it's still wasmer. Problem is I haven't seen any movement whatsoever in any wasmer repos/discord/discussions/pullrequests/articles that indicate to me that adding wasmi as an engine is in their backlog. So we'd have to request for that I imagine, and put pressure on it so that it is implemented... And meanwhile we have a bunch of time constraints on our side of needing to build products that work now on iOS (at least this is the situation that I'm in right now). |
@guillemcordoba hmm, i have no idea what is involved in making an engine or who to talk to about it, do you? |
Nope... No idea, the wasmer repo and discord is the first thing I would try. |
In my experience the wasmer discord server is not attended much. Github issues and discussions have worked for me to get answers from wasmer devs. |
@guillemcordoba a couple of the PRs that you tagged in the UX issues section have been merged to refactor: move wasmer module cache to conductor - Merged and awaiting a release to The Networking issues will mostly be addressed by the new endpoint logic in tx5. This work is still in progress pending further integration to Holochain. |
@zippy @guillemcordoba @thedavidmeister I've filed an issue in the wasmer repo requesting support or a support model be proposed by the wasmer team so we can confidently work on any one of the Interpreted wasm solutions being suggested by @guillemcordoba in this main issue. This is a follow-up to an email that I'd sent to the wasmer maintainers but I hadn't received a response to. |
Hey @guillemcordoba. Are you able to update the test application to 'holochain 0.3.0-beta-dev.37' and run the tests again? The fixes to some of the UX and Networking issues that had been raised have been shipped and we'd like to understand what impact these have had and to take stock of any new issues and to keep focus on outstanding ones. |
This item has been open for 30 days with no activity. |
Hey @guillemcordoba -- I'm trying to clean this up to make sure everything has a standalone issue in the #4340 Epic
Any progress on getting these forks merged upstream?
Do you think this is resolved? I don't think I've seen it. |
I've review this issue and I believe all holochain issues have been moved into standalone tickets for tracking under #4340. I also created #4421 to track the possibility of re-implementing support for precompiled wasms down the road if ever desired. @guillemcordoba if you noticed anything I missed please make a standalone issue. I'm going to close this one. |
After a full iteration of development + deployment + testing cycle with the rostanga mobile app, I've explored a lot of the territory for running holochain on mobile. Right now I'm actually having to maintain a fork of holochain that stores all data in firebase because of the tx5
PendingJoin
bug that is a known issue in 0.3.0. Also this makes me less nervous about holochain processes running into these kinds of issues while running for full days.Anyway, in my view this is a comprehensive list of the issues that holochain core + its dependencies need to fix before we can say that "holochain supports mobile":
UX issues
InProcKeystore
can restart successfully lair#120Networking
PendingJoin
known issueFailed to start SCTP: DTLS not established
tx5#79/data/local/tmp
on Android API >= 30 tx5#69Push Notifications
To achieve push notifications in mobile OSes, we basically need to go through Firebase Cloud Messaging (FCM) and Apple Notification Service (APN). Here I'm assuming tauri as the mobile runtime that holochain is running in.
Android specific issues
iOS specific issues
Precompiled wasms
This is the area that I have explored the least. So I'm not sure this is ready to go as it is in the code. I do now that @Connoropolous played a big role in the implementation of prepackaged wasms in iOS, so I'll let him comment if he sees fit to do so. But at least we need a:
hc dna pack --dylib-ios
does not set dylib key in dna manifest #4254Interpreted wasms
AFAIK, iOS has as a rule that you can't execute or JIT compile anything that wasn't prepackaged as part of your iOS app at compile time.
wasmer
supports a bunch of JIT compile engines, one of them is JavascriptCore which uses the underlying OS based JIT, but in which apple have dropped support for webassembly and will not be bringing it back. I've done some research andwasmer
had a vote around implementing more backends, one of which is wasmi, which is a wasm interpreter. They could also implement something like a bridge toWKWebView
which does seem to have nativeWebAssembly
support in iOS, but I haven't seem any mention of that in any of their repositories or docs.With all of this, we are left with no path to implement a runtime like
we
,neighborhoods
or thelauncher
in iOS. These are runtimes that don't prepackage all installable apps in them, but rather they download them from the internet and install them dynamically in the conductor. I certainly want to enable these kinds of use cases, but it seems like without a big effort they are not possible with the current state of things.The solutions that I can see are:
WKWebView
All of these seem like a big lift, but this seems crucially important. @thedavidmeister am I missing something in this territory?
I'd be really interested in talking about more options in this territory.
I'll try to keep this issue up to date with all the fixes and developments so that we have an overall view of the state of affairs.
The text was updated successfully, but these errors were encountered: