pile·
모바일·LINE Engineeringline·

AttributedString 구조로 풀어낸 대규모 iOS 설정 시스템

문제대규모 iOS 설정 화면을 모든 종류의 UI 요소(텍스트 / 스위치 / 링크 / i18n) 와 함께 다루기 어렵다.

접근Swift AttributedString 구조로 설정 항목 모델을 통합. 텍스트와 인터랙티브 요소를 한 모델로 표현해 일관된 렌더링/다국어 처리 가능하게.

결과설정 화면이 단일 데이터 모델로 통합돼 유지보수가 쉬워졌다. 새 설정 추가 시 코드 변경 최소화.

LINE Engineering
LINE Engineering 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 모바일·스포카스포카·

    KMP/CMP 마이그레이션, 정말 프로덕션에서 가능할까? - 키친보드 앱 마이그레이션 도전기

    문제Kotlin Multiplatform (KMP) + Compose Multiplatform (CMP) 이 프로덕션 환경에서 정말 쓸 만한지 의문이 많다.

    접근스포카 키친보드 앱을 KMP/CMP 로 마이그레이션. iOS/Android 코드 공유율, 빌드 시간, 디버깅 경험, native 통합 시 마주친 함정까지 솔직 리뷰.

    결과부분 영역에서 KMP 가 충분히 production-ready. 단점 영역(특히 iOS 디버깅) 도 명확히 식별.

    #android#ios#cross-platform+2
  2. 모바일·당근당근·

    200MB 모듈을 팀 단위로 해결하기: 당근 숏폼팀의 On-demand Dynamic Feature Module 도입

    문제당근 숏폼팀의 모듈이 200MB 까지 커져 빌드 시간 / 메인 APK 사이즈가 문제가 됐다.

    접근Android Dynamic Feature Module (DFM) 로 숏폼 기능을 on-demand 로 분리. 사용자가 진입할 때만 다운로드.

    결과메인 APK 사이즈 감소 + 빌드 시간 단축. 팀 단위 코드 소유권도 명확해짐.

    #android#dynamic-feature-module#modularization+2
  3. 모바일·쏘카쏘카·

    쏘카프레임 - 블루투스 모듈

    문제쏘카 / 일레클 / 따릉이 앱은 차량·자전거 단말과 블루투스로 직접 통신해 잠금·해제·반납을 수행한다. Android · iOS 플랫폼이 제공하는 블루투스 API 는 파편화돼 있어 서비스 도메인 요구를 그대로 표현하기 어렵다.

    접근플랫폼 블루투스 API 위에 "쏘카프레임 블루투스 모듈" 을 만들어 하드웨어 맥락을 응집된 도메인 모델로 추상화. DeviceX 의 식별·통신 규격·수행 가능 동작을 하나의 단위로 다루고 서버 통신 fallback 까지 함께 다룬다.

    결과쏘카 / 일레클 / 따릉이 피쳐가 같은 블루투스 모듈을 공유한다. 플랫폼별 차이를 도메인 계층에서 흡수해 모바일 개발자가 비즈니스 로직에 집중할 수 있다.

    #bluetooth#iot#mobile-architecture+1