본문 바로가기

분류 전체보기151

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.
Git) stash 명령어로 파일을 임시 저장하기 목차 머리말 stash을 배우기 전과 후의 모습 stash 이전 stash 이후 긴급한 문제 발생 시 (1) 작업 중인 브랜치에서 바로 대응 → 브랜치 기능과 관련이 없는 부분을 포함한 채로 커밋을 남겨 푸쉬 (2) 다른 빈 파일/페이지에 해결 내용을 일일이 저장 후 브랜치로 분기하여 나중에 붙여넣기 git stash 하여 문제 해결한 코드를 임시저장 → 다른 브랜치로 분기하여 이를 적용 → 달라진 브랜치에서 푸쉬 포스팅 이유 a) feature branch에서 작업 중 긴급한 문제 발생 Git에서 feature/stamp-list-UI 브랜치에서 작업을 하고 있었다. 스탬프목록 화면에 대한 UI 구현 #23 하지만 도중에 긴급한 문제를 발견했다. 이대로 계속 코드만 늘어나면 해당 branch 기능에서 .. 2023. 10. 17.
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.
(MapKit) Info.plist에 있는 사용자 위치 접근 요청 6가지 머리말 포스팅 목적 Info.plist - Information Property List에 있는 위치 접근 요청 6가지에 대한 요약 MapKit에서 사용자 위치에 대한 접근을 요청하기 위해 Information Property List를 살펴 보았는데 아래처럼 6가지가 나왔다. 각각의 요청이 무엇인지 궁금해서 이를 요약하여 간단하게 표로 정리해 보았다 사용자 위치 접근 요청 6가지 종류 요청 메시지 내용 iOS/macOS 공식 문서 링크 Always and When In Use Usage Description App Background 실행 시 위치 정보 접근 (항상) iOS 11.0+ NSLocationAlwaysAndWhenInUseUsageDescription Always Usage Descript.. 2023. 10. 4.
Swift) 클로저의 캡처와 참조 타입 머리말 포스팅을 하게 된 이유 클로저는 그저 이름이 없는 함수인가? 내가 기존에 사용하던 클로저는 그저 이름이 없는 함수, 함수의 이름을 짓기 귀찮을 때 사용하는 중괄호 `{}` 정도로만 여겼다. 하지만 수업 내용을 들으면서 단순히 클로가 함수의 기능을 넘어 값을 캡처하는 참조 타입이라는 것을 배웠는데 이를 정리하기 위해 포스팅을 하게 되었다. 클로저의 정의 공식 문서에 정의된 클로저는 다음과 같다. Group code that executes together, without creating a named function. 이름이 있는 함수를 만들지 않은 채, 같이 실행되는 코드의 묶음 Closures | Documentation 클로저의 추가적인 기능, 캡처(capture) 공식 문서의 서문에서 정의를.. 2023. 8. 31.
[UIKit] CLLoaction 톺아보기 보호되어 있는 글 입니다. 2023. 8. 23.
[Swift] didSet과 값 타입, 참조 타입의 인스턴스 머리말 글을 쓴 이유 내가 쓴 코드 // // VideoViewController.swift class VideoViewController: UIViewController { // 검색창과 테이블 뷰가 존재 -> searchBar에 didSet을 하면 왜 안될까? @IBOutlet weak var searchBar: UISearchBar! @IBOutlet weak var videoTableView: UITableView! // 검색 결과를 담은 videoList의 값이 변할 때마다 테이블 뷰를 업데이트 var videoList = [Video]() { didSet { videoTableView.reloadData() } } // 검색 결과(API 요청/응답)에 따라 videoList 배열에 새로 결괏값.. 2023. 8. 22.
[Swift] For-in Loop과 forEach Method의 차이점 머리말 for-in과 forEach는 그 생김새나 쓰임이 매우 비슷하다. 심지어 개발자 공식 문서에서 forEach를 설명할 때 for-in loop를 언급하면서 이를 정의한다. forEach의 정의 forEach(_:) Calls the given closure on each element in the sequence in the same order as a for-in loop. 주어진 클로저에 대하여, 시퀀스의 각 요소를 for-in 루프와 같은 순서로 호출한다 forEach(_:) | Apple Developer Documentation 그렇다면 두 개념의 차이는 무엇이고 실제 코드에서는 어떻게 다를까? 자세히 알아 보자. 차이점 둘에 대한 차이점은 바로 루프(loop; 반복문)와 클로저(clos.. 2023. 8. 17.
[Git] git 명령어 시 한글 깨짐 문제 머리말 Git 관련 문제 git status 명령어 입력 시 한글 깨짐 아래처럼 git status를 하는데 한글만 \354 \235처럼 이스케이프 문자로 깨져서 나오게 되어 알아볼 수 없는 문제가 발생했다. 원인 quotepath와 "unusal" 문자 quotepath는 경로의 이름(pathname)이 특별한(unusal) 경우에 이를 다르게 표현하는 git의 기본 설정이다. 특별한 경우는, 경로의 이름에 쌍따옴표("), 이스케이프 문자(\n, \t 등등)나 바이트의 크기가 0x80(8진법으로 80) 이상의 문자는 git에서 "unusal" 문자로 판단한다. 따라서 이를 수정해주면 된다. 해결책 명령어 입력 아래와 같은 명령어를 입력하면 해결이 된다. git config --global core.qu.. 2023. 8. 1.
반응형