uFeatures는 확장성을 지원하고 빌드 및 테스트 주기를 최적화하며 팀의 모범 사례를 보장하기 위해 Apple OS 애플리케이션을 구조화하는 아키텍처 접근 방식입니다. 핵심 아이디어는 명확하고 간결한 API를 사용하여 상호 연결된 독립적인 기능을 구축하여 앱을 구축하는 것입니다.

이 지침은 아키텍처의 원칙을 소개하여 다양한 계층에서 애플리케이션 기능을 식별하고 구성하는 데 도움이 됩니다. 또한 이 아키텍처를 사용하기로 결정한 경우 팁, 도구 및 조언을 소개합니다.

<aside> ❕ Note uFeatures *(microfeatures)*이란 이름은 서로 다른 "백엔드 기능"이 정의된 API를 사용하여 서로 다른 서비스로 실행되어 이들 간의 통신을 가능하게 하는 마이크로서비스 아키텍처(MSA)에서 유래되었습니다.

</aside>

Context

앱은 기능(Feature)으로 구성됩니다. 일반적으로 이러한 기능은 동일한 모듈의 일부이거나 전체 애플리케이션이 정의되는 대상입니다. 팀의 자연스러운 성향은 동일한 대상에서 기능과 테스트를 계속 구축하는 것입니다. 결과적으로 응용 프로그램과 해당 테스트 대상은 버그, 잘못된 컴파일 시간 및 팀 성능으로 나타나는 복잡성이 증가합니다. 좋은 아키텍처처럼 보였던 것이 대규모 코드베이스나 팀에서는 잘 작동하지 않습니다.

이것은 종종 해당 프로젝트에서 작업할 때 좌절의 큰 원인입니다. 우리가 보내는 시간은 플랫폼을 구축하고 실험하는 것보다 컴파일하는 데 사용됩니다.😂

Motivation

µFeatures의 주요 동기는 플랫폼 기능과 도구를 활용하는 대규모 Xcode 코드베이스의 확장성을 지원하는 것입니다. 이러한 문제를 극복하기 위해 고려할 수 있는 다른 솔루션도 있습니다. 오늘날 매우 인기 있는 것은 Javascript의 역동성을 활용하여 개발자에게 코드 기반에서 작업하는 즐거운 경험을 제공하는 동시에 사용자 관점에서 기본 경험을 제공하는 React Native입니다.

우리는 native tools and technologies에 대한 사용이 조만간 우리 프로젝트에 나타날 확장성 문제를 극복하기 위해 최적화될 수 있다고 믿습니다.

Before Reading