Skip to content

miso-native #314

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

Open
dmjio opened this issue Nov 15, 2017 · 4 comments
Open

miso-native #314

dmjio opened this issue Nov 15, 2017 · 4 comments
Assignees

Comments

@dmjio
Copy link
Owner

dmjio commented Nov 15, 2017

Study the things, do the thing.

@smaccoun
Copy link

This would be a dream. Any idea when this would fit on the roadmap, or the scope of how big this would be? I'm imagining this to be a massive undertaking, as the mobile world is very complex and fragmented. Also would there be any concern with running GHCJS on mobile?

@dmjio
Copy link
Owner Author

dmjio commented Aug 13, 2018

@smaccoun thanks for bringing this up. There are plans in the works. While we've shifted from the react-native approach (primarily due to how poor scrolling performance will be w/ GHCJS), native is definitely something we're going to target. @cocreature has recently refactored the codebase to support @hamishmack's work, jsaddle. This allows for developing quickly via GHC (and is a form of native). A byproduct of this refactor is the codebase is more modular and pieces of the miso architecture can be made swappable (including code that would be used for native). So the plan now is to actually write code in Haskell that interfaces with native code on the architectures we care about.
Going forward I'm looking into taking advantage of Haskell projects that interoperate well with Objective-C / Swift for cocoa, and eventually Java for android.

@smaccoun
Copy link

Interesting to hear about the poor scroll performance with React Native and GHCJS. Is it known why that's an issue...and if it's eventually fixable? Wondering if it's the (usual?) issue of GHCJS trying to imitate laziness in JS and in this case somehow unable to properly match the implementation in a performant way. I guess that'd rule out all projects that use GHJS and any attempts to interface with RN if that's the case.

Very cool about jsaddle, I haven't fully grokked the full implications of having that yet. I wonder if Eta could even be leveraged for the Android part, but given it only works for GHC 7.10 that might be a bit limiting.

I'd be very curious to see what kind of code share could be achieved by going to the native architecture approach rather than RN. I guess in theory you could match that of RN, which I often find in my own projects hits around at least 95%.

I guess for now I'll stick to Typescript RN for production mobile stuff, but I'll keep my eye on this and see how this progresses and maybe get involved once I understand a bit better the current Haskell for mobile landscape

@dmjio dmjio self-assigned this Jul 11, 2019
@dmjio dmjio closed this as completed Sep 22, 2021
@dmjio
Copy link
Owner Author

dmjio commented Apr 19, 2025

Re-opening

@dmjio dmjio reopened this Apr 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants