Skip to main content

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 the Platforms 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 extensions
  • iOS.Autofill: iOS extension that handles Autofill
  • iOS.Extensions: iOS extension that handles Autofill from the bottom sheet extension
  • iOS.ShareExtension: iOS extension that handles sharing files through Send
  • watchOS: All the code specific to the watchOS platform
    • bitwarden: Stub iOS app so that the watchOS app has a companion app on XCode
    • bitwarden 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.

plantuml