Reflectly는 Flutter를 사용하여 Android 및 iOS에서 멋진 모바일 환경을 빠르게 실행합니다.

Reflectly는 인공지능을 사용하여 사용자가 일상적인 생각과 문제를 구조화하고 돌아보도록 도와줍니다. Reflectly는 모든 상황에 적용할 수 있는 일기 쓰기 방식을 제공하기보다는 각 사용자에게 맞춤화된 일기 환경을 제공하여 사용자가 자주 다시 돌아오고 정신 건강이 일상의 일부가 되도록 격려합니다.

iOS에서 Reflectly가 처음 출시되었을 때 Android 버전의 앱에 대한 관심도가 높았습니다. 소규모 팀은 두 플랫폼을 지원하고 성장하는 사용자층에 빠르고 일관되며 멋진 경험을 제공하는 데 여러 어려움에 직면했습니다. Reflectly가 아름다운 디자인과 사용자 환경에 자부심을 갖고 있다는 점을 고려하면, Reflectly팀이 새로운 솔루션을 찾아야 한다는 사실을 분명히 알 수 있었습니다.

진행한 작업

심각한 문제에도 불구하고 Reflectly iOS 앱은 빠르게 사용자층을 구축하고 있었습니다. 전체 코드베이스를 포기하고 처음부터 시작하기로 결정하기 전에 6개월 동안 기존 구현을 수정하기 위해 노력했습니다.

처음에는 가장 안전한 솔루션이 두 개의 새로운 네이티브 앱을 빌드하는 것처럼 보였지만 두 명의 엔지니어만 이 접근 방식을 취하면 소용이 없습니다. 공동 설립자이자 CTO인 다니엘 베스터가드는 "별도의 Android 앱을 구축할 여력이 없었기 때문에 앱을 중단하거나 iOS 앱에만 집중하는 것을 심각하게 고려했습니다."라고 설명했습니다.

그 때 팀은 Flutter를 발견했습니다. CTO이자 공동 설립자인 다니엘 베스터가드는 다음과 같이 말했습니다. "잠시 동안 Flutter로 실험한 후 팀은 크로스 플랫폼 일관성, 거의 즉각적인 스테이트풀(Stateful) 핫 리로드, 훌륭한 도구, 플랫폼의 고성능에 매료되었습니다."라고 말했습니다. 팀은 또한 Flutter의 "쉽고 읽기 쉽고 문서화가 잘된 코드"에 높이 평가했습니다.

그 순간, 바로 뛰어들기로 했습니다. Reflectly의 두 엔지니어가 Flutter 코드의 첫 줄을 작성한 지 불과 2.5개월 만에 Reflectly 2.0이 Android와 iOS 모두에 대해 동시에 출시되기 시작했습니다. 이 기간 동안 앱을 완전히 재작성할 수 있었을 뿐만 아니라 전체 프리미엄 정기 결제 구현 및 맞춤 상태 관리 솔루션 등 몇 가지 대규모의 새로운 기능도 개발할 수 있었습니다.

결과 및 학습

Reflectly 2.0은 다양한 Android 및 iOS 기기에서 많은 긍정적인 피드백을 받았으며, 많은 사용자가 앱의 새롭고 세련된 디자인과 디자인을 높이 평가했습니다. Flutter로 앱을 다시 출시한 후 Android Reflectly 앱은 Play 스토어에서 평균 별표 평점 3.2점에서 평균 4.3으로 급격히 상승했습니다. 이 앱은 Apple의 'New Apps We Love' 목록에도 소개되었습니다. 팀은 원래 낮은 평점의 주된 이유가 Flutter로 해결할 수 있었던 비정상 종료, 버벅거림, 미적 불일치 때문이라고 생각합니다. "요약하면, [Flutter 출시] 이후 Android 다운로드 수 수십만 건, 어쩌면 수백만 건이 Flutter 덕분에 앱을 유지하고 안정화하며 iOS와 기능 패리티를 갖출 수 있게 해준 데서 크게 기인한 것이죠."라고 베스터가드는 말합니다.

Flutter는 모든 픽셀을 직접 페인트하므로 팀은 플랫폼 간의 렌더링 차이에 대해 걱정할 필요가 없었습니다. 이제 공통 코드베이스를 유지 관리하면서 적절한 경우 iOS 및 Android 전용 UI를 작성할 수 있습니다. 이제 개발팀 전체를 하나의 고품질 환경에 전념할 수 있게 되면서 Reflectly는 개발 시간이 50% 감소하는 효과를 얻었습니다. 덕분에 격주 출시가 아닌 주간 출시로 전환하고 두 플랫폼에서 동시에 새로운 기능을 출시할 수 있게 되었습니다.

Flutter 정보

Flutter를 사용하면 누구나 하나의 코드베이스로 어느 화면에서나 멋진 앱을 빌드, 테스트, 배포할 수 있습니다. 지금 시작하기