I recently created an Ethereum blockchain wallet app using React Native. The purpose of the app is such that user can create keys, retrieve keys and send ether to other users. The architecture of the app is dissected in this article. Subsequently, the design choices are discussed briefly. For background info, React Native is a framework that is used to develop mobile app that runs on Android and iOS.
The following diagram shows the directory structure of the wallet app code. The actions folder is the dispatch to props actions. The components folder contains the mobile app software components. The reducers folder is the redux reducers. The store is the redux store. The web3 contains the code that talks to Ethereum through web3 library.
src
|-- actions
|-- components
|-- reducers
|-- store
|-- web3
The state management is implemented using redux. I could have used React hook. I choose redux, as it can be expanded easily. The map state to