전체 글

전체 글

    [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. 의존성 관리에 관심을 가지게 된 계기 우리가 만든 UX/UI로 앱을 만들고 싶다는 상상 하나로 개발을 시작한 디자인 전공생이 벌써 3년차 iOS 개발자가 되었습니다. 그간 많은 것들을 보고 배웠지만 특히 이해가 잘 가지 않는 분야가 있었는데요. 바로 의존성 관리(의존성 주입, 역전)였습니다. 의존성 관리에 대해 어떤 계기로 관심을 가지게 되었는지 적어보고자 합니다. 작년까지만 해도 의존성 관리에 대해서는 굉장히 소홀했던 것 같습니다. 사실 의존성 관리에 대한 고민을 깊게 하지 않았고, 어떻게 풀어내야 할 지도 감이 오지 않았습니다. 그랬던 제가 의존성 관리에 관심을 가지게 된 계기는 모듈화와 TDD였습니다. 회사에서 테스트 코드를 작성하지 않고 일정에 치여 개발을 하다보니 사이드 이펙트와 이슈에서 ..

    [iOS] LayoutDriven UI

    1. LayoutDriven UI에 들어가기 앞서.. 우리는 iOS에서 UI를 그리거나 업데이트할 때 아래와 같은 이슈를 많이 겪으셨을 것 같아요. 아래의 문제가 모두 UI의 문제라고 볼 수는 없지만, 분명 로직에 따라 UI 업데이트를 요청했는데 반영되지 않는 것이 가장 큰 이슈 같습니다. 🆕 뱃지가 있는 UI를 눌렀는데 뱃지가 사라지지 않음 📩 메세지를 읽었는데 '읽음' 으로 상태가 바뀌지 않음 ✅ 버튼을 눌렀는데 Pressed 상태로 바뀌지 않음 ☠️ UI를 업데이트 하다가 메인쓰레드에서 동작하지 않아 앱이 죽음 이런 상황의 공통점은 로직에 따라 UI 업데이트가 되지 않음으로 볼 수 있습니다. 이러한 문제점은 대부분 UI를 업데이트하는 코드가 바깥에 따로 존재하기 때문이라고 생각합니다. UI를 작은 ..

    디자인 전공자가 개발자를 선택한 이유

    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..