I would argue a bit on this as you only pointed out the cross-building on Android, but forgot to mention the cross-building on RaspberryPI (which I think is possible) even the cross-compiling issue, which is, I think, a much much bigger issue than cross-building.
Because, almost all components, libraries use TemplateHaskell
(or use other modules that depends on TemplateHaskell) which prevent them to be cross-compiled
to different targets (e.g. to iOS, Android, RockPi etc.).
I can understand why Plutus Core use that feature, but cannot why the low level libraries or components should.
Why is this an Issue? Cos no any mobile device could use any part of the haskell code and therefore all these parts must be completely rewritten in different languages if we want to use them on mobile devices.
Means, mobile devices are not first class citizens (if they are citizens at all) in the Cardano, therefore, how we would like to have adaption, then? Pls, do not come up /w Yoroi or any other centralised wallets.
I know I know, and pls do not talk about ghcjs
, but that’s not a solution.
A better would be, for example, having low level libraries, componenst (e.g. ouroboros-consensus, ouroboros-consensus-shelley, coin-selection etc. etc. etc.), that could be used in any native code in IOS, Android etc. But, for long we would not be able to do that.
That was a f*ng bad Design decision at last.