거대한 iOS앱의 생산성을 위해 바꾼 것들
이전글
https://admd13.tistory.com/434
우리가 채택한 솔루션
3) Dev Apps 생성하기
빌드 시스템과 iOS 애플리케이션 아키텍처에 대한 투자 덕분에 세 번째 혁신인 Dev Apps가 가능해졌습니다. Dev App은 단일 모듈과 해당 종속성을 위한 주문형 임시 Xcode워크 스페이스입니다.
Dev Apps는 에어비앤비의 안드로이드 팀에서 먼저 시작했습니다. 안드로이드와 iOS의 Dev Apps가 누리는 인기와 성공은 간단한 IDE의 범위를 현재 편집 중인 파일로만 최소화 한다면, 개발 루프가 강화 된다는 사상에 근간을 두고 있습니다. Xcode 워크스페이스가 적을 때, Xcode는 해당 코드를 더 빨리 인덱싱하고 컴파일할 수 있습니다.
코드베이스에서 모듈 유형을 채택하면서 기존의 기능 사이에 존재했던 복잡한 종속성에서 벗어나게 됐습니다. 이제 모듈에는 최소한의 종속성만이 존재합니다. 예를 들어, 기능 모듈과 모든 종속성을 개발하는 것은 전체 에어비앤브 애플리케이션을 개발하는 것보다 간단합니다. 기능 모듈은 다른 기능 모듈에 의존할 수 없으므로 전체 애플리케이션의 빌드가 필요한 덩치가 큰 기능을 별도로 관리할 필요가 없어졌습니다.
iOS 엔지니어는 강력하고 사용자 친화적인 커맨드라인 인터페이스를 사용하여 Dev Apps를 만듭니다. Dev App을 생성하는 명령어는 터미널에 익숙하지 않은 엔지니어가 쉽게 사용할 수 있도록 Unix 모범사례를 따르고 있습니다. 내부적으ㅗㄹ 이 도구는 Buck의 쿼리 인터페이스를 사용하여 소스파일의 전체 목록을 조합해 냅니다.
Dev App 커맨드라인 도구는 기능이 동작하게 될 컨테이너 iOS 애플리케이션을 만들고 생성된 Xcode 작업 공간을 엽니다. 개발자는 여기에서 새로 개발한 기능의 여러 변형을 운영에 적용하기에 앞서 테스트합니다. 이러한 변형을 사용하면 조합 가능한 모든 UI 상태를 단 한 번의 터치로 사용할 수 있습니다. Dev App 컨테이너 애플리케이션은 OAuth 토큰을 HTTP 요청에 첨부하는 것과 같이 일반적인 워크플로에 대한 편의를 제공합니다.
Dev App을 사용하면 제품 개발자가 기능에 포함된 UI와 많은 비즈니스 로직을 반복적으로 테스트하며, 전체 에어비앤비 애플리케이션의 일부 기능을 만들어 나갈 수 있습니다. Dev App은 기능과 UI 모듈용으로 설계되었지만, 이제 모든 모듈 유형에 대한 Dev App 생성을 지원합니다. 우리는 많은 iOS 개발자들이 가벼운 Xcode 환경에서 UI가 아닌 모듈로 작업하는 것을 선호한다는 사실을 알게 됐습니다.
특히 기능이 다양한 상황에서 서로 어떻게 상호 작용하는지 테스트하려면, 여전히 에어비앤비 애플리케이션을 전체를 빌드하고 실행해야 합니다. 그러나 충분히 격리되고 잘 테스트된 코드로 작업하면, Dev App만으로도 변경 사항을 여러모로 검토하고 자신 있게 출시할 수 있게 됩니다.
원문
'🍎iOS프로그래밍 > 오늘의 공부' 카테고리의 다른 글
iOS개발자의 미래 - 웹, 하이브리드, 네이티브 비교 (0) | 2023.09.11 |
---|---|
대규모 iOS 앱 개발 생산성을 위해 바꾼 것들(에어비앤비) (0) | 2023.09.01 |
에어비앤비 - 거대한 iOS앱의 생산성을 위해 바꾼 것들(3) (0) | 2023.08.31 |
에어비앤비 - 거대한 iOS앱의 생산성을 위해 바꾼 것들(2) (0) | 2023.08.31 |
에어비앤비 - 거대한 iOS앱의 생산성을 위해 바꾼 것들(1) (0) | 2023.08.30 |
댓글