mirror of
https://github.com/bitwarden/mobile
synced 2025-12-05 23:53:33 +00:00
80 lines
2.3 KiB
Plaintext
80 lines
2.3 KiB
Plaintext
---
|
|
sidebar_position: 5
|
|
---
|
|
|
|
# .NET MAUI (legacy)
|
|
|
|
:::warning Legacy
|
|
|
|
This represents the **legacy** mobile app architecture done in .NET MAUI.
|
|
|
|
:::
|
|
|
|
The mobile .NET MAUI clients are Android and iOS applications with extensions and watchOS. They are
|
|
all located at https://github.com/bitwarden/mobile.
|
|
|
|
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.
|
|
|
|
```kroki type=plantuml
|
|
@startuml
|
|
skinparam BackgroundColor transparent
|
|
skinparam componentStyle rectangle
|
|
skinparam linetype ortho
|
|
|
|
title Simplified Dependencies Diagram
|
|
|
|
component "Core"
|
|
component "App"
|
|
component "iOS.Core"
|
|
component "iOS.Autofill"
|
|
component "iOS.Extension"
|
|
component "iOS.ShareExtension"
|
|
component "watchOS" {
|
|
component "bitwarden"
|
|
component "bitwarden WatchKit App"
|
|
component "bitwarden WatchKit Extension"
|
|
}
|
|
|
|
[App] --> [Core]
|
|
|
|
[iOS.Core] --> [App]
|
|
|
|
[App] --> [iOS.Core]
|
|
[App] --> [iOS.Autofill]
|
|
[App] --> [iOS.Extension]
|
|
[App] --> [iOS.ShareExtension]
|
|
[App] --> [bitwarden WatchKit App]
|
|
|
|
[iOS.Autofill] --> [Core]
|
|
[iOS.Autofill] --> [iOS.Core]
|
|
|
|
[iOS.Extension] --> [Core]
|
|
[iOS.Extension] --> [iOS.Core]
|
|
|
|
[iOS.ShareExtension] --> [Core]
|
|
[iOS.ShareExtension] --> [iOS.Core]
|
|
|
|
[bitwarden] --> [bitwarden WatchKit App]
|
|
[bitwarden WatchKit App] --> [bitwarden WatchKit Extension]
|
|
|
|
@enduml
|
|
```
|