MetaMask is one of the most popular wallet in Ethereum blockchain ecosystem. Let’s look at what frameworks are inside MetaMask iOS app v5.2.0:
➜ MetaMask.app ls -1 Frameworks/
Branch.framework
Lottie.framework
Mixpanel.framework
OpenSSL.framework
libswiftCore.dylib
libswiftCoreFoundation.dylib
libswiftCoreGraphics.dylib
libswiftCoreImage.dylib
libswiftDarwin.dylib
libswiftDispatch.dylib
libswiftFoundation.dylib
libswiftMetal.dylib
libswiftObjectiveC.dylib
libswiftQuartzCore.dylib
libswiftUIKit.dylib
libswiftos.dylib
Branch
The Branch React Native SDK for deep linking and attribution. Branch helps mobile apps grow with deep links / deeplinks that power paid acquisition and re-engagement campaigns, referral programs, content sharing, deep linked emails, smart banners, custom user onboarding, and more.
https://github.com/BranchMetrics/react-native-branch-deep-linking-attribution
MetaMask uses universal links under domain metamask.app.link
Lottie
An iOS library to natively render After Effects vector animations
https://github.com/airbnb/lottie-ios
Mixpanel
Official iOS (Objective-C) Tracking Library for Mixpanel Analytics
https://github.com/mixpanel/mixpanel-iphone
OpenSSL
TLS/SSL and crypto library
https://github.com/openssl/openssl
The rest libswift* exist for supporting iOS version earlier than 12.2 (currently supporting iOS 11 or later).
MetaMask is developed with React Native:
➜ MetaMask.app ls *.jsbundle
main.jsbundle
So it was not the whole story. There’s MetaMask/metamask-mobile on the Github. Third-party libraries below:
- package.json: in JavaScript
- .gitmodules: from git submodule
- Podfile.lock: from iOS CocoaPods
- build.gradle: for Android app