Search
Duplicate
♻️

2020년 1월 Let’s Swift in 판교 후기

Created
2020/01/16
Tags
Community
Programming
Retrospect
2020년의 첫 Let's Swift in 판교에 참여했습니다. 드디어 iOS개발자 커뮤니티에서도 정기적으로 나갈 수 있는 행사가 생겨서 너무나 기쁩니다. 설레는 마음을 안고 참여했는데, 기대이상으로 훨씬 많은 것들을 얻어 갈 수 있는 시간이었습니다.

GameplayKit으로 상태표시 UI 쉽게 만들기

노수진님께서는 당연히 게임개발에만 사용될 것 같은 GamePlayKit에 상당히 범용적으로 쓸 수 있는 많은 API가 있다는 것을 알려주셨습니다. 예컨대 뷰의 대부분은 몇 개의 상태를 표현하는 상태기계로 볼 수 있기 때문에 GKStateMachine과 GKState라는 클래스를 활용해 로직을 훨씬 풍부하고 깔끔하게 표현할 수 있습니다.
GKStateMachine뿐만 아니라,  GamePlayKit자체를 다시 바라봐야 할 것 같습니다. 사실 대부분의 앱에서 제공하고자 하는 UX는 게임을 많이 참고하기 때문에, GamePlayKit에서 제공하는 여러 API에서 얻어갈 수 있는 인사이트가 적지 않을 것 같습니다.
사실 발표만 들었을 때는 언뜻 잘 이해가지 않았던 부분도 있었는데, 노수진님께서 https://github.com/nsoojin/VoiceControlSample-iOS 에 올려주신 코드를 찬찬히 살펴보고 고쳐보다보니 의도가 훨씬 잘 이해되었습니다. https://www.slideshare.net/soojinro9/gameplaykit-ui 의 슬라이드를 보신 후에, 꼭 코드도 함께 보시는 걸 추천드려요.
UI개발에 있어 스토리보드를 써야 하는지 코드를 사용해야 하는지는 iOS개발자들 사이에서 굉장히 첨예한 주제 중 하나입니다. 이 주제에 대한 논쟁은 감정적으로 흐르는 경우도 많지요. 그래서 그런지, 어떤 도구를 사용할지에 대한 결정을 주로 개인의 취향에 근거해 내리는 경우가 많습니다.
하지만 정낙천님께서는 이제는 어떤 상황에서 어떤 도구를 골라야 하는지에 대해, 더 이상 취향 에만 의존할 것이 아니라 충분한 근거를 가지고 결정해야 한다고 주장하셨습니다. 즉, 프로토타이핑 용이성, 코드재활용 용이성 등 다양한 척도에서 각 도구의 점수는 조금씩 다르고, 각 팀에서 어떤 척도를 더 중요하게 생각하는지 고민하고, 그 고민의 결과를 바탕으로 개발도구를 골라야 한다는 것이지요.
특히 낙천님께서는 초기개발은 프로토타이핑과 코드분할에 유리한 스토리보드를 사용해 개발하고, 이후 퍼포먼스 이슈가 생겼을 때 CoreAnimation을 끌어들이는 플로우를 best-practice로 제시하셨습니다. 이는, 어떤 도구로 개발 하든, 중간에 상황이 바뀌었을 때 적절한 도구로 갈아 탈 수 있도록 프로젝트를 관리해야 가능하겠지요. 본인이 직접 커다란 프로젝트를 이러한 워크플로우로 개발한 사례를 제시해주셔서 재미있게 들었습니다. 참조: 낙천님의 발표자료
또한 스토리보드로 작업 할 때 가장 거슬리는 것 중 하나가 merge-conflict인데, git lfs의 locking 기능 및, storyboard의 locking기능을 활용하여 merge-conflict를 예방 할 수 있다는 내용도 굉장히 흥미로웠습니다.

마무리

너무 크지 않은 규모여서 그런지, 더 밀도있고 재미있는 질의응답이 많이 오고 갔던 것 같습니다. 좋은 행사를 준비하시느라 애써주신 스텝분들과, 양질의 지식을 공유해주신 발표자 분들께 다시 한 번 감사말씀 드립니다!