본문 바로가기

이상/iOS

[iOS] Easy to Auto Layout = SnapKit (ft.유의점) iOS 화면을 개발할 때 SnapKit을 사용하면 정말 편하다 (혼자 공부하거나 토이 프로젝트를 할 때 무조건 사용하는 편이다) SnapKit GitHub에도 첫 줄에서 이렇게 설명한다 SnapKit is a DSL to make Auto Layout easy on both iOS and OS X. DSL은 Domain-Specific Language, 도메인 특화 언어라는 뜻이고 AutoLayout? 그럼 그냥 SnapKit 써~ 이거 좋아, 아~주 좋아~ 대충 이런 말이다 내가 느낀 SnapKit이 쓰이게 되는 레퍼토리는 이렇다 Storyboard로 화면 개발 > 프로젝트가 비대해지면서 화면 수도 많아지고 복잡해짐 > Storyboard도 무거워지면서 Storyboard 파일을 열기조차 싫어짐 > 하.. 더보기
[iOS] pod install 시 'Oh no, an error occurred.' 집에서 git에 올렸두었던 토이 프로젝트를 시간날 때마다 보려고 회사 맥에 받았다 cocoapods을 1.13.0 으로 버전업 후 pod install을 실행했지만 실패 스크롤을 쭉 올려보니 Oh no, an error occurred. 가 찍혀있었다 Googling... 구글링해보니 실리콘 맥으로 넘어오면서 생기는 이슈들 중 하나인 듯 했다 우선, 해결 방법 (선택)sudo arch -x86_64 gem install ffi (필수)arch -x86_64 pod install 참고1 https://stackoverflow.com/a/67312715/13973840 Load error while trying to install cocoapods in MacBook Air running OSX 11.2.2.. 더보기
[iOS] ‘Unable to install 앱이름’ 에러 처리 현재 진행 중인 프로젝트에서는 고객사가 애플 개발자 계정을 주지 않아서 (그룹 초대 또한) 프로비저닝 프로파일을 받아서 작업을 하고 있다 iOS 개발자가 Xcode에서 개발하기 가장 편한 환경은 해당 개발자 그룹에 속한 계정을 가진 상태로 개발하는 것이다 (계정을 받거나 내 계정을 초대하거나) 하지만 이곳은 adhoc, appstore용 프로파일을 줬고 등록된 테스트 기기가 없어서 나의 테스트 기기로 등록 요청을 해서 테스트 기기는 등록된 상태이다 이 상태로 Run을 하면 Unable to install 앱이름 팝업이 뜨면서 실행되지 않는다Detail 내용을 살펴보면 실행할 수 있는 프로비저닝 프로파일을 찾을 수 없다고 한다 발버둥 첫번째Apple Configurator에서 프로파일 밀어넣기Mac에서 A.. 더보기
[iOS] APNs 푸시 키 발급 애플 개발자 프로그램 멤버십 구독 후 먼저 푸시 기능을 사용하기 위해 APNS 푸시 키를 생성했다 푸시 관련해서 필요한 것은 푸시 키 또는 푸시 인증서인데 푸시 인증서는 주기적으로 갱신해야하는 번거로움이 있고 푸시 키는 한 번 만들어 놓으면 갱신할 필요는 없지만 애플 개발자 계정(팀)당 2개만 생성할 수 있다 푸시 인증서 1년마다 갱신 앱 별로 발급 및 관리 푸시 키 갱신X 계정에 속한 모든 앱에서 사용 한 번 발급 받으면 동일한 키는 재발급 불가 애플 개발자 사이트의 계정 > 인증서, 식별자 및 프로파일 > Keys 로 들어간다 Create a key 클릭 키 이름 입력 후 Apple Push Notification service(APNs) 선택 Register를 클릭하면 키 생성 완료 다운로드 버튼을.. 더보기
[iOS] 애플 개발자 프로그램 등록하기 이번 달부터 새로운 프로젝트에 투입이 되었다 이 년만의 프로젝트 투입이라 아주 파이팅이 넘치는 마음으로 들어왔는데… 역시는 역시다 업계 특성상 투입되는 조직은 대부분 뻣뻣하고 유연하지 못하다 개발을 위해 프로비저닝 프로파일을 요청했으나 이주가 넘는 기간이 지나고 나서야 발급이 되었다 그래도 이 부분은 프로젝트를 개인 계정으로 따로 만들어서 선개발을 진행하면 되기 때문에 그러려니 하고 넘어갔다 하지만 테스트 단말도 나오지 않았기 때문에 내 개인 아이폰을 테스트 단말 등록 요청했는데 이것도 언제 될지 모른다 언제부턴가 애플 개발자 프로그램 멤버십을 구매하지 않으면 Xcode 내 Signing & Capabillities의 Capabillity에 Push Notification이 나오지 않았고 현재 작업 중인.. 더보기
[iOS] UIScrollView(Horizontal) 만들기 (+ SnapKit 사용법) 이전에 작성했던 UIScrollView 글의 제목을 Horizontal이라고 해놓고 본문에는 Vertical 내용을 작성한 걸 얼마 전에 알고 급히 제목을 수정했다. 그래서 이번에는 Horizontal 방향의 UIScrollView를 사용하는 법과 추가로 SnapKit에 대한 내용을 작성한다. Horizontal 이든 Vertical 이든 어차피 같은 UIScrollView이고 방향을 어떻게 할 것이냐에 따라 고정되는 축만 달라진다. Vertical일 때는 세로로 스크롤 해야하므로 width 가 고정이었으므로 Horizontal일 때는 가로로 스크롤 해야하므로 height 가 고정이다. 아래와 같이 height 가 80인 Horizontal 방향의 UIScrollView를 만들어 보자. 1. UIView.. 더보기
[iOS] Generic을 사용해보자 (feat. ApiManager) 평소 앱을 만들 때 서버와 통신하는 부분은 ApiManager 클래스에 request 종류만큼 메소드를 만들어 사용했다. 그런데 어떤 회사의 기술면접에서 이런 상황이 있었다. 면접관: 보통 api 부분은 어떤 식으로 구현하나요? 나: 중복되는 부분을 제외하고 필요한 api 개수만큼 만듭니다. 면접관: 서로 다른 api가 만 개면 만개 다 만드나요? 나: (? 멘붕...) 네... 면접관: 그렇죠... 돌아는 가죠... 사실 언젠가 잠깐 고민을 했던 부분인데 그때는 왜 그냥 넘겼을까. 면접이 끝나고 집에 돌아오는 길에 T라는 것이 타입에 대해 자유로운 느낌이었다는 게 문득 생각이 났고 집에 오자마자 검색을 해보니 처음 Swift 공부할 때 강의에서 본 Generic이라는 놈이 있었다. 그리고 기존에 만들었.. 더보기
[iOS] 디자인 패턴 - MVC iOS 개발을 처음 시작하고 2년 정도는 정말 주먹구구식으로 개발을 했던 것 같다.지금도 '이제는 그렇지 않다'라고 딱 잘라 말할 순 없지만 클래스를 만들 생각조차도 못했었고 그냥 모조리 ViewController에 때려박았었다. 그러다 팀장님이 하시던 프로젝트를 갑자기 넘겨받게 됐는데 그때 처음 디자인 패턴이 이런거구나라는걸 느꼈다. MVC 패턴으로 구성돼있었는데 그 패턴 그대로 베껴서 내가 만들었던 프로젝트들을 다시 만들어봤다. 처음엔 디자인 패턴? 그런게 필요한가? 그냥 돌아가면 되지라는 생각으로 개발했었는데진짜 멍청하고 바보같은 생각이었다 MVC를 적용하니 정리정돈이 깔끔하게 되는 것 같은 느낌이 들었다. 이렇게 디자인 패턴은 소스를 깔끔하게 정리해 유지보수를 쉽게 할 수 있고 각 부분의 역할 분.. 더보기