Mobile Clients Architecture
The mobile clients are Android, iOS with its extensions and watchOS. They all are located in this Git repository.
Principal structure is a follows:
App
: Main .NET MAUI project that shares code between both platforms (Android & iOS). One can see specific platform code under thePlatforms
folder.Core
: Shared code having both logical and UI parts of the app. Several classes are a port from the Web Clients to C#. Here one can find most of the UI and logic since it's shared between App and the iOS extensions.iOS.Core
: Shared code used by the main iOS app and its extensionsiOS.Autofill
: iOS extension that handles AutofilliOS.Extensions
: iOS extension that handles Autofill from the bottom sheet extensioniOS.ShareExtension
: iOS extension that handles sharing files through SendwatchOS
: All the code specific to the watchOS platformbitwarden
: Stub iOS app so that the watchOS app has a companion app on XCodebitwarden WatchKit App
: Main Watch app where we set assets.bitwarden WatchKit Extension
: All the logic and presentation logic for the Watch app is here
Dependencies diagram
Below is a simplified dependencies diagram of the mobile repository.