Project
Workade
팀 구성 💪
개요 📃
워케이션이라는 주제를 정하면서 서울에서만 일할 수 있다는 고정관념을 깰 수 있는 인사이트를 줄 수 있는 앱을 만들고자 했습니다. 워케이션을 통해 전국 각지에서 일하고 있는 사람들을 보여주면서 워케이션에 대한 부담감과 걱정을 덜어주고 가이드 정보를 통해 워케이션에 대해 좀 더 친해질 수 있는 서비스를 의도했습니다.
사용한 기술 및 라이브러리 🛠️
구현한 기능 ✨
메인홈 UI 및 인터렉션
워케이션 공유오피스 갤러리 UI 및 이미지 패치 기능
디자인 시스템 코드화
처음엔 iOS 개발 환경에서 자주 쓰이는 라이브러리를 다수 채택해 좀 더 익혀보자가 우리의 기술적인 성장 목표였지만. 여러 멘토님들을 찾아가 대화를 해보며 수정된 결정 사항은 최대한 라이브러리를 배제한 채로 개발하는 것으로 수정했습니다. URLSession를 잘 다뤄보지 않은 채로 Alamofire를 다루는 것도, 더 추상화를 시켜 Moya를 사용하는 것도, 반응형 프로그래밍의 필요성을 몸소 느끼지 않은채로 Rx를 사용하는 것도 순서가 잘못된 학습 방식이라고 생각했고, 가능한 한 바닐라로 구현하는 것을 목표로 삼고 개발했습니다.
UI Interaction
스티커를 브랜딩 핵심 요소로서 잡으면서 단일 계층에서 동일한 방향성을 지닌 UI 요소끼리 뭉쳐놓은 그룹을 구역으로 분리하고, 계층의 특권은 스티커에게만 주는 디자인을 구현하려고 노력했습니다. 의도를 잘 표현하기 위해 UIViewControllerAnimatedTransitioning을 통해 트렌지션을 커스텀해 구현하였습니다.
Reactive Programming
초반에는 해당 Binder만으로도 문제없이 코드를 짤 수 있었으나 상태 관리 문제나 operator의 부재로 한계를 느끼고 Combine을 부분적으로 적용해서 구현했습니다.
Network Layer
NetworkManager를 싱글톤으로 구현하고 새로운 동시성 API(구조화된 동시성, MainActor 등등..)를 사용했습니다. 해당 PR에 많은 conversation이 오가고 공을 기울인 터라 더더욱 기억에 남는 결과물입니다.
2023.01.04
Yaehoon Kim