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:
Core: Shared code that focus on the logical part of the app. Several classes are a port from the Web Clients to C#.
App: Shared code that focus on the presentation layer of the app and some business logic as well.
Android: All the code specific to the Android platform
iOS: All the code specific to the iOS platform
iOS.Core: Shared code used by the 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
Below is a simplified dependencies diagram of the mobile repository.