번호 : 019, 작성일자: 2025-06-02

2025.05.19 ~ 2025.06.01

🤝 SDUI(Server-Driven-UI)


SDUI란 Server Driven UI의 약자로 서버에서 UI를 정의하고 클라이언트에서 화면을 렌더링 하는 방식입니다. iOS에서는 SwiftUI와 Codable을 통해 편리하게 구현가능합니다.

SDUI를 구현하기 위해 기본적인 설계를 진행했습니다. 전체적인 흐름은 Scene -> Layout -> 각 SwiftUI Component별 구현 순입니다.

SwiftUI의 Component들은 View 프로토콜을 채택 중이여서 공통 View프로토콜을 구현한 CommonComponent를 만들고 각 Component들만이 가지는 고유값을 갖도록 설계했습니다.

FirebaseRemoteConfig와 함께 사용하면 실시간으로 변경이 쉽게 구현가능합니다.

구현 후 느낀점

SDUI를 사용하면 UI를 배포 후에도 변경가능한 부분이 편리했고 네트워킹이 실패한다면 기본 JSON 형식을 렌더링하도록 설정해야 할 것 같습니다. 또한, 이벤트 처리 같은 부분을 자유롭게 사용은 할 수 없을 것 같습니다.

⚡️ iOS Anayltics Architecture


앱을 개발하다 보면 여러 Analytics 툴을 사용하게 되는 데 매번 관리를 하기에 용이한 아키텍처가 필요합니다. 여러 블로그를 보면서 다양한 방식을 보고 각각의 장단점을 종합하여 설계를 진행해봤습니다.

기본적으로 블로그들의 아키텍처들의 유사했습니다. 공통적으로 전송할 Event 목록, 커스텀 파라미터들을 enum으로 선언하고 각 툴별로 전송할 객체들을 구현하고 최종적으로 관리하는 객체를 생성하여 관리합니다.

참고링크

  1. https://medium.com/macoclock/abstraction-analytics-layer-for-swift-39636ede5e67
  2. https://www.swiftbysundell.com/articles/building-an-enum-based-analytics-system-in-swift/
  3. https://medium.com/swift-programming/a-modular-analytics-layer-in-swift-564a95039596
  4. https://medium.com/smart-cloud/analytics-and-tracking-best-practices-in-ios-apps-dedb8f328e97
  5. https://medium.com/@MdNiks/building-scalable-and-flexible-analytics-architecture-for-ios-using-dependency-injection-7795ed79b322
  6. https://medium.com/stackademic/mastering-firebase-analytics-and-a-b-testing-in-ios-a-real-world-guide-bb497caa1a95
  7. https://noob-programmer.medium.com/crafting-an-efficient-analytics-framework-part-1-7d0c2907bfb1

🙋🏻‍♂️ 기타 사항


  1. Xcode에서 Assets에 Color Set을 추가할 때 주의할 점이 있습니다.
    1. 뒤에 Color를 붙이면 UIColor(resource:) 에서 Resource 자동완성이 Color를 제외하여 표기됩니다. 예를 들어 potatoColor라면 UIColor(resource: .poatato) 로 사용됩니다.
    2. 기존 SystemColor와 중복되지 않도록 주의해야 합니다. 예를 들어 backgroundColor라고 명칭시 Color가 무시되면서 기존 background와 중복될 수 있습니다.