WWDC25의 여정 ✈️

more

[SSC] Distinguished Winner로 선정된 나의 앱 개발 이야기💭 + 약간의 팁!

앞선 포스팅에서 나는 Swift Student Challenge 2025 Distinguished Winner로 선정되었다는 소식을 전했다.교수님들께 연락드리고, 학과 사무실에 메일을 보내고, 답장을 받는 과정이 반복될수록"아, 나 진짜 쿠퍼티노 가는구나!"라는 생각이 점점 현실로 다가온다. ㅋㅋ이번 포스팅에서는 내가 스스챌에서 어떤 앱을 제출했는지 그 이야기를 해보려고 한다! 1. 아이디어 선정올해 1월, 외할머니께서 병원에 입원하셔서 병문안을 갔다.그런데 할머니께서 나에게 올 때 한자노트 좀 사오라고 하셨다.응? 한자노트? 갑자기 왜? 🤔할머니는 파킨슨병을 앓고 계셨고, 병원에서 재활 치료의 일환으로 큰 글씨를 쓰는 연습을 하고 계셨기 때문이다.재활 치료 방법은 간단했다.한자 노트의 칸을 가득 채우..

WWDC25 2025.04.02 5

[SSC] Swift Student Challenge 2025 Distinguished Winner로 선정되다!🎉

바로 어제! Swift Student Challenge 2025 결과가 공개되었다.새벽 2시쯤에 나올 것 같아서 기다리다가 딱 메일이 와서 확인했는데 ....응?..... You Did it ...? Distinguished......? Winner...??  손이 떨리고 심장이 두근거렸다.와 나 미국 가는거야?안 믿겼다. 어안이 벙벙했다. 사실 아직까지도 그렇다 ㅋㅋㅋㅋ You’ll also receive:An official certificate from Apple to commemorate your achievement.One year of individual membership in the Apple Developer Program.An opportunity to take an App Develo..

WWDC25 2025.03.29 1

iOS 공부 기록 ✏️

more

[UIKit] Command SwiftCompile failed with a nonzero exit Code 오류 해결

1. 문제상황댓글 안에 있는 드롭다운 버튼을 클릭했을 때 Input 이벤트 로직을 정의하고 있었다. 드롭다운 내에는 top, bottom 두개의 버튼이 들어가있고, 내 댓글인지 아닌지의 여부도 반영하면 총 4가지의 분기처리를 해주어야 했다. Input { let commentDropdownDidTap: Observable}Output { let showCommentSpoilerAlertView: Observable Observable, Int)> let showCommentImproperAlertView: Observable Observable, Int)> let myCommentEditing: Observable let showCommentDeleteAlertView: Observabl..

UIKit 2024.11.15 0

[RxSwift] throttle과 debounce의 차이점을 알아보자!

사이드 프로젝트 개발 중, 코드리뷰로 버튼 input 이벤트에 대해 " throttle 말고 debounce 를 사용한 이유를 알 수 있을까요 ?! "라는 리뷰를 받았었다.음 .. 그러게요? 나 왜 debounce를 사용했지? throttle과 기능적 차이점은 어떤 게 있을까?잊지 않기 위해 글로 남겨보고자 한다.  debounce관찰 가능한 항목을 다른 항목을 방출하지 않고 특정 시간대를 경과한 경우에만 방출합니다.only emit an item from an Observable if a particular timespan has passed without it emitting another item. 내가 적용한 코드를 예시로 살펴보자. ViewModel 에서 Input으로 좋아요 버튼 클릭 이벤트를..

RxSwift 2024.10.17 0

[SwiftUI] Non-constant range: not an integer range

사이드 프로젝트 개발하는 도중, 서버에서 받아온 유저들의 랭킹 리스트들을 스크롤뷰에서 보일 수 있게 하는 과정에 Non-constant range: not an integer range 라는 경고문을 맞딱드렸다. homeViewModel의 totalRank를 RankingView에서 rankingList로 받아와 아래의 ForEach문에서 rankingList.indices 를 통해 인덱스로 접근하여 해당 배열을 순회하도록 했다.해당 경고가 어떤 의미의 경고인지 알아보고, 어떻게 하면 경고를 없앨 수 있을지 알아보자! 왜 ForEach(rankingList.indices)를 사용했을까?이유는 단순했다. 해당 스크롤뷰의 각 row에는 유저의 현재 등수, 유저의 닉네임, 점수 총 3개를 보여줘야 했다.이때 ..

SwiftUI 2024.06.12 0

[UIKit] ImageView.contentMode에 대해 알아보자!

자꾸 까먹는 나를 위해 .. !ImageView의 contentMode에 있는 scaleAspectFit, scaleAspectFill, scaleToFill에 대해 정리해보고자 한다!scaleAspectFit- 이미지 비율을 유지하면서 뷰의 사이즈에 맞게 이미지를 늘리는 옵션.- 이미지가 뷰를 꽉 채우지 못해서 남는 부분은 투명 처리가 된다. scaleAspectFill- 이미지 비율을 유지하면서 뷰의 사이즈에 맞게 이미지를 꽉 채우는 옵션.- 이미지의 어떤 부분은 잘려서 보일 수도 있다. scaleToFill- 전체 이미지가 다 나올 수 있도록 필요하다면 비율을 깨뜨리면서 뷰의 사이즈에 맞게 이미지를 꽉 채우는 옵션.- 이미지는 다 나오나 이미지의 비율이 깨질 수 있다.  정리 비율 유지화면 꽉 채움..

UIKit 2024.05.29 0

Apple Developer Academy @POSTECH 3rd 🍎

more

[Apple Developer Academy @POSTECH] 애플 디벨로퍼 아카데미 3기 합격 수기 😜

안녕하세요. 현재 Apple Developer Academy @POSTECH 3기를 수료 중인 구리스입니다. 저는 현재 포항공과대학교에서 공부를 하고있고 두 달 후에 아카데미 수료 예정입니다. 미루고 미루다가 이제서야 작성하네요 .. 😓 현재 애플 아카데미를 준비하고 있는 분들에게 조금이나마 이 글이 도움이 되면 좋을 것 같습니다.  아카데미 지원 이유대학교 3학년을 시작할 무렵, 같은 과 친구가 애플 디벨로퍼 아카데미 2기를 하고 있다는 사실을 알게 되었고, 그때 쯤에 관심을 갖기 시작했습니다. 그 당시 막연하게 3학년이 끝나면 휴학은 1년 하고 싶다 .. 근데 휴학 1년을 알차게 보내기 위해선 어떻게 해야지? 라는 생각에 가득 차 있었습니다. 1년이란 시간이 길다면 길고 짧다면 짧은 시간이라고 느꼈..

[HIG-Widgets] Teams앱 UX 분석을 통한 HIG 정리 - 5주차 스터디

MC2 마지막주 이슈로 인해 4주차 스터디는 쉬어가고 5주차 스터디가 진행되었다.5주차 스터디의 앱은 Teams였고, 평소 아카데미에서 정보를 공유하는 커뮤니티로 모두 해당 앱을 사용한다.Teams앱을 사용하면서 불편했던 점이나 궁금했던 점에 대해 알아보고, 그에 대한 해결책을 HIG를 통해 찾아보는 시간을 가졌다!Pain Pointpain point 라기 보단 .. 팀즈의 위젯 기능이 있는지 살펴보다가 오 있네? 근데 약간 이상하다 싶어서 델고 와봤다. 다른 어플들처럼 특정 테스크를 보여주거나 액션을 유도하는 것이 아닌 시간과 이모지?를 보여주는 위젯이었다.참고로 팀즈에서 잠금화면에서의 위젯은 없었다.더보기다른 앱 위젯 예시크기는 작은 정사각형, 직사각형, 큰 정사각형 3개로 구성되어있었지만 보여주는 ..

[HIG-Sheets] 아고다 앱 UX 분석을 통한 HIG 정리 - 3주차 스터디

Pain Point숙소 하이라이트에 대한 각 내용들이 나열되어있고 내용 오른쪽에 information 버튼이 있어서 클릭했더니 별 내용도 없는 게 바텀 시트로 구현이 되어있었다.별 내용도 없는데 왜 굳이 바텀시트로 구현해서 유저가 2번 클릭하도록 했을까? .. 별로 도움도 되는 내용도 아님 ..그리고 바텀시트 높이도 너무 짧아서 생각보다 읽기가 너무 불편했다.X 버튼의 위치가 오른쪽이 아닌 왼쪽에 있다. 우리가 익숙한 위치는 오른쪽이라고 생각했는데? 그래서 난 바텀시트를 내릴 때 저 X 버튼을 사용하지 않고 뒷 배경화면을 클릭해서 내려가도록 했다. Sheets시트는 사람들이 현재 컨텍스트와 밀접하게 관련된 범위가 지정된 작업을 수행하는 데 도움이 됩니다. A sheet helps people perfor..

[HIG-Tabbars] 맥도날드 딜리버리 앱 UX 분석을 통한 HIG 정리 - 2주차 스터디

Pain Point맨 처음 홈 탭을 보면 크으게 주문조회 버튼과 주문하기 버튼이 있다. 주문 조회 버튼을 누르면 사용자의 주문 내역을 조회할 수 있고 주문하기 버튼을 누르면 메뉴를 볼 수 있는 화면으로 넘어간다. 첫번째, 홈 탭의 주문 조회 버튼과 주문 조회 탭의 기능이 똑같다. 화면 구성도 똑같기 때문에 주문 조회 버튼을 누르면 그냥 주문 조회 탭이 selected되었다는 게 나와야 하는데 그렇지 않고 두개가 다른 뷰처럼 작동한다.두번째, 주문하기 버튼도 마찬가지로 메뉴 탭과 같은 기능을 한다. 다행히도 해당 기능은 메뉴 탭이 selected 되었다는 게 표시는 된다.결론적으로 내가 띠용했던 점은 홈 탭에 엄청 크게 주문 조회, 주문하기 버튼이 있는데 굳이 탭바에도 같은 기능을 하는 탭을 넣었어야만 했..

[HIG-Toggle] 코레일톡 UX 분석을 통한 HIG 정리 - 1주차 스터디

현재 나는 애플 디벨로퍼 아카데미에서 나 포함 6명의 러너들과 함께 "히그히구"라는 HIG 분석 스터디를 진행하고 있다.매주마다 하나의 앱을 정해서 각자 느꼈던 Pain Point를 정리하고 HIG 문서를 통해 개선점을 찾고 있다.스터디 1주차는 코레일톡 앱을 선정했고 나는 Toggle에 대해 정리했다.  Pain Point첫번째,할인,정기권 탭을 클릭하면 코레일에서 제공해주는 특가 상품 목록을 볼 수 있다.이때, 토글 버튼을 통해 사용자가 구매 가능한 상품만 볼 수 있도록 하였는데 토글을 selected 한 뒤 다시 unselected를 하면 토글이 갑자기 사라진다….. 개어이없음!사라질거면 대체 왜 토글 버튼을 둔 것일까 ..?두번째,사용자가 구매 가능하지 않은 상품은 버튼이 활성화되지 않다는 걸 나..