composants.puml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. @startuml composants
  2. skinparam componentStyle rectangle
  3. skinparam defaultFontSize 13
  4. skinparam packageStyle frame
  5. title Diagramme de composants — WatchOsm v1 (module wear autonome)
  6. package "Téléphone — Android 16" as phone #f5f5f5 {
  7. component "OsmAnd+ 5.4.9" as osmand
  8. component "Notification de navigation\n(contenu non contractuel)" as notif
  9. osmand --> notif
  10. }
  11. package "Montre — Wear OS 5" as watch #ffffff {
  12. package "Couche présentation" as ui {
  13. component "MainActivity\n(Compose for Wear OS)" as activity
  14. component "AppNavHost\n(SwipeDismissableNavHost)" as host
  15. component "HomeScreen" as home
  16. component "NavigationScreen" as nav
  17. component "ManeuverArrow\n(Canvas)" as arrow
  18. component "NavigationViewModel" as vm
  19. }
  20. package "Couche données" as data {
  21. component "OsmAndNotificationListener\n(NotificationListenerService)" as listener
  22. component "OsmAndNotificationParser" as parser
  23. component "NavigationStateRepository" as repo
  24. }
  25. component "WatchOsmApplication\n(AppContainer)" as app
  26. host --> home
  27. host --> nav
  28. nav --> arrow
  29. host --> vm : StateFlow<NavigationState>
  30. vm --> repo : lecture du flux
  31. listener --> parser : payload textuel
  32. parser --> repo : NavigationState?
  33. app "1" *-- "*" listener : accès
  34. app "1" *-- "1" repo : partagé avec les ViewModels
  35. }
  36. package "Système Android (montre)" as system #f0f0f0 {
  37. component "NotificationManager\n(relais des notifications\ndu téléphone)" as nm
  38. }
  39. notif ..> nm : relais Bluetooth
  40. nm --> listener : onNotificationPosted / onNotificationRemoved
  41. @enduml