Socket Cluster란 Socket 통신을 지원해주는 iOS 라이브러리다. 해당 라이브러리는 PubSub기능을 지원한다. iOS앱에서는 백그라운드로 이동하는 경우 Socket연결을 보장하지 않기 때문에 해제하는 것을 권장한다. 그러므로, 다시 Active상태가 되었을 때 Socket연결을 시도한다. 이런 운영체제의 환경으로 인하여, 재연결을 시도할 때 수신하지 못한 메시지가 전달되지 않거나 앱의 특정상태에서는 백그라운드에서도 Socket연결을 해제하지 않아야하는데 해제되는 경우를 대비해야 한다.
Tuist는 프로젝트 구조에 대한 복잡성을 제거하여 Xcode프로젝트를 쉽게 처리할 수 있도록 하는 것을 목표로 하는 도구입니다.
iOS 개발자가 소수인 경우나, Objective-C라이브러리 중 SPM을 지원하지도 않는 라이브러리가 있는 경우 등인 경우 gitattribute기능을 활용하여 Xcode프로젝트파일 충돌에 대한 대응을 진행할 수 있다.
하지만 버전이 발전함에 따라 Tuist에서도 Objective-C SPM을 지원하지 않는 라이브러리에 대한 대응하는 방법들이 존재해서 검토를 해보았다.
지난 주는 기존의 토이프로젝트를 Tuist로 변경하는 작업을 진행해보았다. 3버전과 4버전의 코드와 tuist 명령어가 매우 달라서 처음 버전 설정을 명확히 지정해야겠다.
토이프로젝트에서 아키텍처패턴을 적용하기 위해서 Clean Architecture에 대한 내용을 공부했다.
Clean Code 문서를 먼저 읽어보고 iOS에서 Clean Architecture를 적용한 프로젝트를 분석했다.
Clean Architecture는 역할에 따라 레이어를 분리하고 각 레이어는 종속성패턴을 지켜 영향도를 제거하도록 해주는 아키텍처패턴이다.
여러 장점들에 대해서 생각해보았고 티스토리블로그에 관련 글을 작성했다.