본문 바로가기

iOS 프로젝트8

프로젝트 경진대회 발표 및 회고 (feat. MVVM-C x Clean Architecture & Git Flow) 머리말 - 네트워크 요청과 응답을 중심으로 한 "라이트 서비스 레벨 프로젝트(LSLP)"의 경진대회를 진행했다. - 여기서 나는 이번에 프로젝트에 처음 적용한 MVVM-C with Clean Architecture와 Git Flow에 대해 발표를 진행했다. 클린 아키텍처 키노트 회고 아키텍처에 치우쳐져 기능은 부족하지 않았는가 프로젝트 초반에 아키텍처에 대한 탐구 및 적용하는데 시간을 많이 소모했다. 반대 급부로 제한된 시간 내에 할 수 있는 기능을 모두 활용하지 못해 아쉬웠다. 그래도 장려상 (4등)을 수상해서 아키텍처 설계 및 Git flow 관리에 높은 점수를 준 멘토님들과 동기들에게 감사함을 느낀다 :) 2023. 12. 22.
LSLP x Network) refresh 요청에 의한 자동 로그인 구현 (feat. Coordinator & Moya) GitHub PR 링크 토큰 갱신 요청 및 응답 결과에 따른 자동 로그인 구현 #26 2023. 12. 15.
RxSwift) 이메일 검증 네트워크 요청하기 (feat. withLatestFrom & flatMap) 머리말 구현 화면 이번에 구현한 화면은 아래와 같다. 이메일을 입력하여 확인 버튼을 누르면 해당 이메일이 사용가능한지 아닌지에 대한 반응형 화면이다. RxSwift Observable Flow 이번에 적용한 Observable에 대한 흐름을 아래처럼 그려보았다. 본문에서 주제 별로 끊어서 설명할 예정이다. GitHub PR 링크 회원 가입 - 이메일 검증 요청과 응답 메시지에 따른 반응형 UI 구현 #5 아마 아직 Private일테지만, 나중에 Public 전환 시 볼 수 있을 것 같다 :) 본문 0) ViewModel 구조 입력 값으로는 텍스트(이메일)과 버튼 클릭(확인 버튼 클릭)을 받고, 출력 값으로 해당 텍스트가 적절한지, 응답 메시지는 무엇인지를 다시.. 2023. 11. 18.
LSLP) RxSwift를 이용한 반응형 이메일 입력 화면 구현 (feat: MVVM & BehaviorRelay) 목차 머리말 구현 화면 MVVM 개념 복습 MVVM x Input-Output x RxSwift에 대한 블로그 링크 RxSwift로 MVVM 패턴에서 반응형 이메일 입력 화면 구현하기 0) 개요 ViewController(이하 VC)에서 화면으로 받은 입력 값을, ViewModel(이하 VM) Input의 인스턴스인 "input"으로 받고 있다. 입력 값은 viewModel(VM의 인스턴스)의 transform 메서드를 거쳐 가공되어 출력 값(output; Output의 인스턴스)이 된다. 출력 값은 다시 VC의 화면에 보여진다. 1) ViewController x input 화면의 입력 값을 뷰모델의 로직으로 전달하기 VM의 Input 타입에 대한 인스턴스를 input(텍스트 필드와 버튼 클릭)으로 받.. 2023. 11. 15.
git reset으로 APIKey 유출 되돌리기 - GitGuardian has detected the following Google API Key 머리말 급하게 날라온 Git 관련 이메일 Google API Key를 업로드 Git에서 feature 브랜치로 기능 구현을 마치고 GitHub로 git push를 진행한 직후 아래와 같은 이메일이 발송되었다. 😱😱😱 여태 잘 주의하다가 새롭게 기능을 추가하면서 API Key가 유출되는(!) 문제가 발생했다. 구글에서 제공한 Info.plist에 API Key가 있는 줄은... 꿈에도 몰랐다 순간 식은 땀이 흐르면서 막막함이 들었지만 원인을 분석해서 차례차례 해결해나갔다 🔥 GitHub Repository의 Private 전환 & 문제의 git log 찾기 1) GitHub repository를 "Private"으로 전환하기 일단 해당 Repository가 Public으로 공개된 상태라면 곧바로 비공개 상.. 2023. 11. 12.
AppStore) iOS 앱스토어 버전 체크 오류와 Git Flow (feat. hotfix & bundleId) 목차 머리말 문제 발생 오류 상황 설정 화면에서 최선 버전을 체크할 때, 최신 버전임에도 업데이트 하기라는 UILabel이 뜨는 문제가 발생했다. iOS 앱스토어 버전 체크와 Git Flow 긴급한 HOTFIX 브랜치 분기 아래와 같이 `HOTFIX` 브랜치를 만들었다. 앱 개발 하면서 처음으로 HOTFIX를 써 보았다. * HOTFIX/check-appstore-version develop (END) URL 요청 테스트 및 수정 문제) 번들 아이디에 대문자가 포함될 경우 버전이 아직도 `1.0`인 것을 알 수 있다... (도대체 왜...🥲) 해결-1) 번들 아이디의 대문자를 소문자로 변경할 경우 번들 아이디를 소문자로 바꾸면 해결-2) 번들 아이디가 아닌 애플 아이디로 변경할 경우 코드에서 URL 수.. 2023. 11. 1.
iOS MapKit) 저장 버튼 클릭 시 어노테이션 방문 처리 (feat. addObserver & removeObserver) 목차 머리말 구현 내용 기능 버튼 클릭 시 DB 저장 & 방문 처리 모달창 변화 & 어노테이션 선택 여부 GIF 내용 post 메서드에 의한 `addObserver` (1) annotation의 데이터 저장 `saveAnnotationToRealm` (2) annotation 변경 `toggleAnnotation` 뷰의 생명 주기에 따른 annotation의 선택 여부 결정 (1) 뷰가 나타나려고 할 때 (viewWillAppear) → selectAnnotation (2) 뷰가 사라지려고 할 때(viewWillDisappear) → annotation 선택 해제 deselectAnnotation GitHub PR 링크 annotation 저장 시 realm에 .. 2023. 10. 13.
(앱 개발/MapKit) 사용자 위치와 annotation 사이의 거리에 따라 모달창 띄우기 or 내리기 머리말 포스팅 이유 GitHub에 올린 PR을 좀 더 자세히 풀어 쓰면 좋을 것 같아서 포스팅을 하게 되었습니다. 요약 (1) 사용자 위치와 가장 가까운 annotation과 거리를 계속 계산하여 도착 뷰가 뜨도록 구현했습니다. (2) 또한 도착 뷰의 생명 주기에 따라 annoaation의 선택 또는 선택 해제하도록 하였습니다. 기능 1 기능 2 Annoation에서 멀어지면 해당 Annotation을 선택 해제 및 모달창 내리기 Annoation에서 멀어지면 해당 Annotation을 선택 해제 및 모달창 내리기 📌 Annoation에서 멀어지면 해당 Annotation을 선택 해제 및 모달창 내리기 사용자 위치와 가장 가까운 Annoation과의 거리가 35m 이상일 경우 해당 Annotation을 .. 2023. 10. 11.
반응형