Project

    [WatchOS] Tuist로 WatchOS XCode Project 생성하기

    1. WatchOS 개발을 위한 첫 단계 이전까지 iOS App 개발을 위해서 Tuist를 사용했지만, WatchOS App Target으로 Tuist를 생성한 적이 없어서 꽤나 어려웠다. iOS처럼 단순하게 아래처럼 생성하게 된 기본 Project.swift 파일로 destination을 iOS에서 WatchOS로만 바꾸면 해결될 것으로 기대했다. Project는 생성되었을 지 몰라도 정상적으로 빌드 및 실행이 되지 않았다. tuist init {projectName} 이런 삽질을 시간이 지나 까먹어서(..) 다시 하지 않는 불상사를 저지르지 않고자 기록한다! 결론만 보고 싶다면 가장 최 하단에 코드를 남겨 놓으니 참고해주세요! 2. Project.swift 최대한 간결하게 Project.swift를 ..

    [iOS] 메뉴얼은 왜 이미지를 하나만 업로드할 수 있었을까?

    1. 메뉴얼 출생과 함께 시작된 고민 꽤 오랜 시간동안 메뉴얼을 서비스하면서 항상 고민하는 기능이 있었어요. 바로, 이미지를 여러개 선택해서 업로드 할 수 있는 기능입니다. 1-1. 메뉴얼은 왜 이미지를 하나만? 메뉴얼 기획 초기에 타 일기 서비스와의 차별점을 가장 우선적으로 생각했어요. 사실 일기 서비스라는 것은 이미 많은 서비스가 출시되고 많은 사람들이 사용하고 있고, 오랜 시간 사용하던 서비스를 두고 메뉴얼로 오길 바라는 것은 굉장히 어려운 일이었어요. 그리고, 일기를 꼭 일기 서비스에서만 작성하라는 법은 없잖아요? 인스타에 비밀 계정을 통해서 올리기도 하고, 아이폰 기본 메모장, 노션 등 다양한 메모 서비스도 저희에겐 큰 부담이었어요. 특히 인스타그램처럼 사진이 주가 되고 싶지는 않았어요. 줄글과..

    [iOS] 유저에게 앱스토어 리뷰 요청을 해보자

    1. 요구사항 체크 리뷰 요청 기능에 대해서는 꽤나 오랜 시간동안 팀 내에서 이야기가 나왔어요. 별점 5점을 받고자 하는 것도 있었지만, 실제로 유저가 사용하면서 느끼고 있는 생각을 듣고 싶었거든요. 그래서 백업 기능 이후에 리뷰 요청 기능에 대해서 개발하자고 팀원과 이야기 하게 되었고, 제가 백업 기능 개발을 하고 있는 시간에 디자이너 팀원들은 리뷰 요청 기능을 먼저 기획/디자인을 시작했어요. 1-1. UI BottomSheet을 통해서 리뷰 요청 팝업이 뜰 수 있도록 하는 요구사항이 핵심입니다! 어느 하나의 뷰에 종속되지 않았기 때문에, 실제로 어떤 뷰에서 띄워야 하는 지가 가장 중요한 요구사항이라고 생각했는데요. 그러기 위해서는 UX Flow를 참고해 어떤 뷰에서 떠야 하는지 자세히 체크해야, Bo..

    [iOS] UX Writing을 보다 편하게 관리하기 위한 노력

    1. String 관리는 매우 귀찮다.. 첫 앱을 개발할 당시에 길거나 짧은 String을 모오오오두 복붙해서 넣곤 했습니다. 이게 무슨 이야기냐 하면.. 바로 아래와 같이 무식하게 때려 넣는 방법인데요. testLabel.then { $0.text = """ 1. 하단의 [파일 선택하기] 버튼을 눌러주세요. 2. 팝업창에서 불러올 파일을 선택해주세요 메뉴얼의 백업 파일은 '.zip' 형식이에요. 3. [메뉴얼 가져오기] 버튼을 눌러 불러오기를 진행해주세요. 4. 메뉴얼 가져오기가 완료됐어요 :) """ } 이러다 보니, UX Writing이 수정되거나 오탈자가 있을 경우에 수정하기가 매우 번거롭다는 단점이 있었습니다. 물론 아무 생각 없이 쓰윽 긁어서 복붙 해서 넣게 되니까 개발할 당시에는 매우 편리했..

    [iOS] 출시 후 첫 신규기능 <온보딩> 업데이트 후기

    1. 출시 2달 어땠는지? 메뉴얼이 출시된지 약 2달이 지났습니다. 부끄럽지만 매일 4명에서 많게는 13명(!) 정도가 우리 앱을 사용해주고 계십니다. 유료로 출시하게 되면서 내부적으로 조금 더 책임감을 가지고 개발하게 되는 선순환이 되기는 했지만, 아무래도 무료로 출시할 때보다는 유저 유입 자체가 적을 수밖에 없습니다. 신규 유입은 홍보로 해결할 수 있다고 생각 했는데요. 메뉴얼을 설치하고 사용하게 되면서 얼마나 우리 앱에 남아줄까? 하는게 근본적인 해결책이었습니다. 메뉴얼은 "작성한 일기를 다시 읽는 경험"을 가장 중요하게 생각하는 서비스입니다. 다시 읽기 위해서는 어느정도 작성한 일기가 있어야 하는데, 이 부분이 다소 미흡했던 것 같아요. 우리 서비스에서 진입하고 "이정도면 추천 해줄 일기가 많이 ..

    [iOS] 메뉴얼(Menual)은 RIBs를 어떻게 활용했을까?

    1. 메뉴얼은 어떤 구조를 가져야할까 메뉴얼은 RIBs 아키텍쳐를 도입한 첫 번째 사이드프로젝트였기 때문에, 가장 오랜 시간 고민을 했던 것은 "어떻게 구조를 짜야하는가?" 였습니다. 기존에 진행했던 ViewController-ViewModel을 설계하는 것과는 사뭇 다른 개념이었기 때문에, 독립적이고 기능 단위로 만들기 위해서 더욱 노력했습니다. 또, '게시글 작성'과 '게시글 수정'과 같은 비슷한 기능을 하는 것은 하나의 RIB으로 재활용하고 싶었습니다. RIBs를 도입하기 전에, 이 아키텍쳐를 어떻게 활용하면 가장 효율적이게 사용할 수 있을지 고민했던 것 같습니다. 1-1. 기능 단위로 분류해보자 메뉴얼을 작성하고 확인하기 위해서 어떤 RIB이 필요할 지, 먼저 큰 기능 단위로 분류하고자 했습니다...

    [iOS] 일기장 어플리케이션 메뉴얼(Menual) 출시 회고

    올해 초부터 본격적으로 시작한 사이드프로젝트 'Menual(메뉴얼)'이 앱스토어에 12월 24일 크리스마스 이브에 출시되었습니다.🎉 아무래도 사이드프로젝트를 약 1년동안 진행하게 되면서 약간은 루즈해졌음에도 불구하고, 팀원들이 꾸준히 달려와 준 덕에 기획부터 출시까지 잘 해낼 수 있었던 것 같습니다. 1년동안 메뉴얼을 개발하면서 어떻게 진행하게 되었는지, 어떤 방식으로 의사결정이 되었는지, 그리고 기술 스택은 어떤지 회고하는 시간을 가져보고자 합니다. ‎Menual : 나를 새롭게 하는 일기장, 메뉴얼 ‎한 번쯤 생각해본 적 있으신가요? ‘일기는 왜 적어야 하지…’, ‘매일 적어야만 하나…’ 하고요. 아니면 ‘오늘은 정말 적을만 한 일이 없었는데…’ 하고 일기장을 덮으신 날은 없으신가 apps.apple..

    디모다모 앱스토어 리젝 대응기

    홍익대학교 디지털미디어디자인 졸업작품으로 어플리케이션을 개발하고 있습니다. 12월 18일 온라인 졸업전시 기간에 맞추어 어플리케이션 1차 런칭을 준비하고 있는데, 어플리케이션의 상태(?)를 점검하고자 테스트 릴리즈를 앱스토어 심사에 맡겨보았습니다. 약 3달 동안 어플리케이션의 기조를 잡는데 집중했다면, 지금은 실제로 출시가 가능한 상황인지 점검하고자 했습니다. 애플이 과연 어떤 답을 줄지도 굉장히 걱정되기도 했습니다. 아무래도 상용화를 목적으로 하는 첫 번째 어플리케이션이기도 했고, 관련 경험이 전무했기 때문일지도 모르겠습니다. 앱스토어 첫 번째 심사를 진행하면서 겪었던 리젝 사유 대응에 대해서 포스팅하고자 합니다. 앱스토어 심사 기간 앱스토어 심사 기간에는 24시간 또는 48시간 이내에 모든 심사가 진..