관리 메뉴

이 세계에선 내가 개발자?

2023 let us: Go! Summer 찍먹톤에 참여하다! 본문

이모저모

2023 let us: Go! Summer 찍먹톤에 참여하다!

민디고 2023. 6. 12. 14:54

let us: Go! 에서 이번 Summer 프로젝트로 찍먹톤이라는 아주 재미있는 세션을 열었다.

찍먹톤은 말 그대로 찍어먹는 해커톤이라는 뜻이었는데 새로운 기술을 찍어먹어보자! 라는 뜻이었으며 기존 해커톤 처럼 하루 밤을 새서 하나의 프로젝트틀 완성하는 것이 아니라 반 시간 (찍먹톤의 경우는 아침 10시부터 저녁 8시까지 10시간 가량을 개발했다.) 동안 개발을 하게 되었다.

 

이번 찍먹톤의 주제는 WWDC 2023 에서 발표된 기술을 사용해보자! 가 주였기 때문에 WWDC 2023 을 보고 가야했다. 시작날인 6월 6일에는 새벽에 (2시였다..) 일어나서 보기까지 했는데 그 뒤의 세션은 잘 챙겨보지 못해서 찍먹톤 전전날에 부랴부랴 영상과 글을 읽어보았다.

 

찍먹톤이 시작되는 6월 10일, 그 전날 디스코드를 통해 자신의 팀을 확인할 수 있었다. 우리팀은 라면먹는 제이지님(이하 제이지님), 이얏호님, 호세님, 나 이렇게 4명이었다! (들어가자마자 첫 팀으로 바로 내 이름이 보이길래 조금 당황했지만 1팀 좋아 가보자고) 그리고 디스코드에서 미리 아이디어를 이야기할 수 있는 시간이 있었기 때문에 우리는 10시에 디스코드에서 만나기로 했다.

 

어떤 세션과 기술을 감명깊게 들었는지에 대해 이야기를 하다보니까 겹치는 기술들이 몇 개 있어서 우리는 그 부분에 관련된 영상을 쭉 보고 다음날 만나서 자세한 아이디어 이야기를 하기로 했다.

 

그리고 드디어 결전의 날 6월 10일 (두둥) 처음으로 팀원들의 얼굴을 보고 아이디어에 대해 이야기를 나눠보기로 했다.

우리가 선택한 기술은 LiveActivity와 Widget, 이 두가지를 중점으로 아이디어에 대해 이야기해보았다.

열심히 회의한 흔적...

 

여러 아이디어가 나왔는데 그 중 이얏호님이 내신 아이디어가 있었는데 배터리 사용량을 이용한 게임같은 앱이었다.

하지만 현실적으로 실시간으로 배터리 사용량을 가져오기 어려운 점 때문에 해당 아이디어는 기각되었지만 이 아이디어를 이용해 새로운 아이디어가 나왔다.

바로 RPG 형식의 러닝 앱이었다.

 

아이디어 소개

우리 팀은 RunningRPG 라는 이름으로 러닝앱을 만들기로 했다.

간단하게 말하자면 현재 걸음 수를 측정하여 걸음 수 만큼 몬스터에게 데미지를 입힐 수 있으며, 해당 몬스터를 처치할 경우 다음 스테이지로 이동할 수 있는 게임식 만보기앱이었다. 

장비라는 개념의 아이템도 만들어서 현재 나의 데미지를 늘릴 수도 있으며, 재화도 얻을 수 있고 몬스터를 처치하거나 어느 일정 목표까지 도달하면 뱃지도 얻을 수 있는 한마디로 재미있게 운동할 수 있는 앱이었다.

 

LiveActivity, Widget

우리는 위 앱을 LiveActivity와 Widget 을 이용해서 표현하기로 했다.

Dynamic Island를 이용해 실시간으로 몬스터의 체력이 얼마나 깎였는지 알 수 있으며, Widget을 통해 현재 내가 처치한 몬스터의 수, 현재 걸음 수를 보여줄 생각이었다.

 

각자 2명씩 팀을 나눠 역할을 분배한 후 작업을 시작했는데, 나는 호세님과 함께 다이나믹 아일랜드를 맡게 되었다.

한번쯤은 해보고 싶었기 때문에 신나는 마음을 가지고 작업을 시작하게 되었다.

 

Dynamic Island 

우선 Dynamic Island를 만들기 위해서는 info.plist 에서 Live Activity를 활성화 시켜줘야한다고 한다.

그리고 Taget에 Widget Extension 를 추가해준다.

Dynamic Island를 만들고 UI를 구성하는 부분은 다른 분들의 블로그를 많이 참고하여서 하였다.

 

다이나믹 아일랜드 쪽에 값을 연결하고 (request) , 업데이트 하고 (update), 끝내는 (end) 부분은 WWDC 2023에서 발표했던 세션 중 하나에서 제공한 샘플 앱공식 문서를 참고하여 작업하였다.

 

신기했던 게 그저 ContentState에 값을 넣어주고, activity에 request만 해주면 바로 다이나믹 아일랜드 쪽에 값이 넣어진다는 것이 굉장히 신기했다. 무언가 따로 연결해주지 않아도 request라는 함수만 불러주면 되니까 처음하는 나도 쉽게 할 수 있었던 것 같다.

update도 마찬가지였다. 바뀐 값에 대한 부분을 update로 넘겨주기만 하면 바로 바로 반영이 되는게 신기했다.

 

다만 시간이 부족해서 사용 방법에 대해 완벽히 이해하고 사용한 것이 아니라 조금 아쉬움이 남아있다.

내가 다시 다이나믹 아일랜드를 이용한 앱을 만들게 된다면, (하겠지? 그럼.. 아마도?) 좀 더 자세히 이해하고 싶다는 생각도 들 정도로 너무 겉만 핥은 것이 아닌가 하는 생각도 들기도 했다.

 

다음에 자세히 알 수 있는 기회가 생긴다면 정리해서 블로그 포스팅을 해보고 싶다!

 

후기

SwiftUI를 거의 처음써보는 거나 마찬가지였고, 다이나믹 아일랜드도 처음 만져보는 것이기 때문에 시행착오를 많이 겪으면서 작업을 시작했다.

또 문제가 4명이서 작업하다보니 깃허브를 이용해 코드를 머지하는 작업에서 많은 충돌과 우여곡절과 좌절이 있었지만 호세님과 이얏호님이 깃 천재라 다행이다.... 🥲

 

찍먹톤에서 좋았던 점은 평소에 써보고 싶었지만 써보지 못했던 기술을 이번 기회에 써봐서 좋았고, 누구보다도 먼저 신기술을 써봄으로써 나중에 누군가가 이거 써본사람? 했을 때 자신있게 손들 수 있게 되었다는 점인 것 같다.

 

또 새로운 사람들과 만나서 커뮤니케이션을 하고, 작업하는 재미도 있었고, 나에게 부족한 것을 알게 되어 해당 부분에 대해 공부를 더 해야겠다고 느끼게 된 아주 좋은 기회였다.

 

열심히 만들어서 최우수상!!이라는 좋은 결과도 얻게 되었고, 좋은 인연도 얻게 되었으니 정말 좋은 기회가 아니었나 싶다. 다음에 이런 기회가 또 있다면 주저하지 않고 참여하고 싶을 만큼 재미있고, 유익했던 하루였다.

 

우리는 이 아이디어가 정말 좋다고 생각하고, 발전 가능성이 많이 보였기 때문에 찍먹톤 이후에도 보강하여 출시!! 까지 해보기로 했다.

출시되는 그날이 정말 기대가 될 정도로 마음에 드는 아이디어였다.

 

마지막으로 1팀짱!

'이모저모' 카테고리의 다른 글

[Xcode15] 바이너리 업로드 시 'No Account for Team' 에러  (0) 2023.11.02
KWDC 2023에 참여하다!  (2) 2023.07.24