I’m also wondering, more generally, why doesn’t ECC consolidate its work around the Zecwallet SDK?
Given my breakdown above, a more suitable question might be: Why doesn’t the ECC and Zecwallet consolidate work around librustzcash?
In other words, it is better to consolidate from the bottom up rather than from the top down. I wouldn’t consolidate a native Android app around a great Swift library. Rather I would build them both upon a common Rust module.
The Zecwallet SDK is a Rust wrapper around a Rust library that is then leveraged in JavaScript through React Native. On Android, the stack becomes roughly:
Rust -> Rust -> JavaScript -> ReactNative -> Java bytecode -> Dex bytecode
By working directly with librustzcash, a native Android application can reduce layers of indirection resulting in:
Rust -> Java bytecode -> Dex bytecode
This has many benefits that I won’t bore you with but one tangible way it manifests is app size. The Zecwallet Android app download size is around 83MB, whereas the internal ECC Android App is around 12MB.
To address your core question:
We are working very hard to consolidate but we’re doing it at a lower level.
**Note: it’s worth emphasizing that I believe Aditya is doing extraordinary work and I passionately support his efforts 1,000,000%. He is making great technical decisions for all the right reasons and we lean on his code, heavily.