iOS
-
Xcode 15 firebase firestore 에서 컴파일 에러 발생할 때iOS 2023. 12. 2. 01:56
편법 주의 ⚠️ Xcode 14대에서 15로 올리고 나니, 아래 코드부분에서 An attribute list cannot appear here 에러가 발생하면서 컴파일이 되지 않을 때. // Public constant ABSL_CONST_INIT extern "C" const int64_t kFIRFirestoreCacheSizeUnlimited = Settings::CacheSizeUnlimited; ABSL_CONST_INIT 코드를 지워봅시다. xcode에서는 잠겨서 수정이 안 된다면 텍스트 편집기나 다른 파일로 열어서 삭제,,, // Public constant extern "C" const int64_t kFIRFirestoreCacheSizeUnlimited = Settings::CacheS..
-
APNs 를 통한 Push 알림 이해하기iOS 2022. 12. 7. 21:57
오늘은 개개인이 갖고 있는 아이폰 디바이스에 푸시 알림이 오는 과정에 대해 알아보려고 합니다. 앱 개발자의 관점에서 살펴봅니다 :) 먼저 푸시가 전송되는 큰 흐름을 간략하게 보고 블라인드로 남아있는 부분을 하나씩 알아보겠습니다. 흐름 이해하기 개별 디바이스에 직접적으로 푸시 알림을 보낼 수 있는 주체는 오직 APNs 뿐입니다. APNs 란 Apple Push Notification server 의 약자로 즉 애플만이 직접적으로 디바이스에 푸시 알림을 보낼 수 있습니다. 따라서 저희는 APNs 에게 우리 앱에 푸시를 보내줘! 라고 요청해야 합니다. 이 요청이 유효한지 보고 APNs 가 푸시를 보낼지 말지를 판단합니다. 이 요청 또한 정해진 규격에 맞게 APNs 와 연결한 후에 가능하고, 이를 위해 APNs..
-
Xcode 여러 버전 설치 후 git 문제iOS 2022. 5. 13. 14:14
아래와 같은 에러가 나온다면, git에서 제대로 된 Xcode 경로를 찾지못해 발생하는 에러입니다. xcrun: error: active developer path ("/Users/~~~/Xcode13.2.app/Contents/Developer") does not exist Use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools, or use `xcode-select --install` to install the standalone command line developer tools. See `man xcode-select` for m..
-
UITextField clear button customiOS 2021. 10. 25. 22:02
UITextField 에서는 기본적으로 clear 버튼을 제공하는데요, 이걸 커스텀 하려면 어떻게 하는지, 이때 또 어떤 문제가 있었는지 알아보겠습니다 :) 기본 clear button 우선 기본적인 clear 버튼은 clearButtonMode를 통해 만들어줄 수 있습니다. textfield.clearButtonMode = .whileEditing 이렇게 4가지 모드가 있는데 각각은 보시면 아시겠죠?? 아무튼 이걸 설정해주면 이렇게 clear 버튼이 나타나고, 버튼을 눌러 clear 동작까지 알아서 해줄 수가 있습니다. clear button custom 문제는 저 clear 버튼을 커스텀 할 수가 없다는 겁니다.. (아니 🍎 쓰는김에 좀 더 쓰지...) 제 문제는 저 어두운 배경에서 clear 버튼이..
-
Playground using Algorithms PakageiOS 2021. 10. 24. 14:42
오늘은 플레이그라운드에서 원하는 pakage를 import 해서 쓸 수 있는 방법을 알아보도록 하겠습니다! 이번에 새로 나온 내장 메소드들이 너무 좋아서 사용해보려고 했는데 이걸 위해선 import Algorithms 가 필요한데요! 플레이 그라운드에서 이게 안되는거죠.... 오늘은 이걸 해볼거에요! 먼저 Playground 자체만 가지고는 패키지를 추가할 수가 없습니다 ㅠㅠ 전체적인 방법을 먼저 간략히 소개해드리면 workspace 생성 -> 여기에 포함되는 playground 생성 -> swift-algorithms 패키지 추가 이게 끝입니다. 간단하죠! 바로 해볼게요! workspace 생성 xcode를 켜서 workspace 만들어줍니다! playground 생성 이제 여기서 플레이그라운드를 생성..
-
RIBs) tutorial3iOS 2021. 6. 26. 17:01
uber 공식 튜토리얼을 따라가면서 제 나름대로 정리한 내용입니다. 보다 정확한 내용은 원문을 참고해주시고 오류나 수정사항이 있으면 알려주시면 감사하겠습니다. 🙇🏻♂️ 전체 코드를 보시려면 여기로 ;) ⚠️ 우버 튜토리얼의 순서를 그대로 따라가지 않습니다. 이전 튜토리얼에서 부터 만들어나갑니다. 목표 이번엔 각 플레이어의 스코어 확인 화면, 무승부 처리 같은 추가 기능들을 추가합니다. 이건 부수적인거고 핵심적으로 - build 메소드를 통해 자식 RIB에 동적으로 의존성을 주입하는 방법 - DI tree를 사용해 정적으로 의존성을 주입하는 방법 - RIBs LifeCycle을 사용해 Rx Stream을 관리하는 방법 에 대해 배워봅니다. 이번 튜토리얼부터는 Rx 개념이 조금 들어갑니다. Dynamic ..
-
RIBs) tutorial2-2iOS 2021. 6. 26. 14:12
uber 공식 튜토리얼을 따라가면서 제 나름대로 정리한 내용입니다. 보다 정확한 내용은 원문을 참고해주시고 오류나 수정사항이 있으면 알려주시면 감사하겠습니다. 🙇🏻♂️ 전체 코드를 보시려면 여기로 ;) ⚠️ 우버 튜토리얼의 순서를 그대로 따라가지 않습니다. 이전 튜토리얼에서 부터 만들어나갑니다. TicTacToe 이제 진짜 게임을 시작할 차례입니다. 앞선 LoggedOut → LoggedIn 과 비슷합니다. 이번엔 OffGame → TicTacToe로 OffGame 에서 Start Game 버튼이 눌리면 TicTacToe RIB으로 이동시켜줍니다. 똑~~같습니다. 먼저 TicTacToe RIB을 만들어줍니다. 당연히 뷰가 있는 RIB 이겠죠? 원래 튜토리얼에는 틱택토 게임이 구현된 TicTacToe R..
-
RIBs) tutorial2iOS 2021. 6. 26. 00:13
uber 공식 튜토리얼을 따라가면서 제 나름대로 정리한 내용입니다. 보다 정확한 내용은 원문을 참고해주시고 오류나 수정사항이 있으면 알려주시면 감사하겠습니다. 🙇🏻♂️ 전체 코드를 보시려면 여기로 ;) ⚠️ 우버 튜토리얼의 순서를 그대로 따라가지 않습니다. 이전 튜토리얼에서 부터 만들어나갑니다. 목표 자식 RIB과 부모 RIB 통신 부모 interactor에서 자식 RIB attaching/dettaching View-less RIB 생성 view-less RIB이 dettaching될 때 cleaning up view 정리 부모 RIB이 처음 로드될 때 자식 RIB attaching RIB 라이프사이클 이해하기 RIB Unit testing 프로젝트 구조 그림과 같은 RIB tree를 구성하려고 합니..