본문 바로가기

전체 글

(42)
CocoaPods vs Carthage vs Swift Package Manager 코코아팟(CocoaPods) 장점 사용하기 쉽다. Dynamic, Static 라이브러리를 모두 지원한다. (1.5.0 버전 이상) 의존성의 의존성까지 자동으로 관리해준다. 누구나 쉽게 어떤 의존성이 애플리케이션에 있는지 알 수 있다. pod outdated 명령어로 쉽게 새로운 버전이 있는지 체크할 수 있다. 거의 대부분의 라이브러리가 코코아팟을 지원한다. 👍 단점 라이브러리를 다운받아 설치(pod install or update)하는데 오랜 시간이 걸린다. 프로젝트를 빌드 할 때마다 모든 팟 라이브러리가 같이 빌드되므로 다른 도구를 사용할 때 보다 프로젝트 빌드 시간이 느리다. 카르타고 (Carthage) 장점 Dynamic, Static 라이브러리를 모두 지원한다. (0.30.0 버전 이상) 의존성..
[iOS] 클래스의 모든 프로퍼티들이 궁금할 땐? 디버깅을 하다보면 특정 인스턴스에 어떤 프로퍼티들이 어떤 값들로 할당되어 있는지 로그로 남겨 한 눈에 보고싶을 때가 있습니다. 이 때 사용하면 유용한 방법을 공유하도록 하겠습니다! extension NSObject { func properties() -> [String] { var results: [String] = [] var count: UInt32 = 0 let myClass: AnyClass = self.classForCoder // 프로퍼티들 리스트 조회 let properties = class_copyPropertyList(myClass, &count) for index in 0..
MIT License 란? 오픈소스 라이선스에 대해 오픈 소스를 사용하다 보면 매우 흔하게 MIT License 라 칭해져 있는 것을 발견할 수 있습니다. 그렇다면 그 많은 오픈 소스들을 MIT에서 모두 만든것일까? 결론 부터 말하자면 아닙니다. MIT License (엠아이티 라이선스) 의 경우, 미국 매사추세츠 공과대학교(MIT)에서 해당 대학의 소프트웨어 공학도들을 돕기 위해 개발한 라이선스입니다. 이 라이선스의 내용을 요약해보면, (참조: MIT 허가서) 1) 이 소프트웨어를 누구라도 무상으로 제한없이 취급해도 좋다. (단, 저작권 표시 및 이 허가 표시를 소프트웨어의 모든 복제물 또는 중요한 부분에 기재해야 한다.) 2) 저자 또는 저작권자는 소프트웨어에 관해서 아무런 책임을 지지 않는다. 정리 이해가 쉽도록 정리하자면 MIT 라이선스가 표기되어..
[iOS] NSPredicate 문법 정리 NSArray를 필터링 할 때, CoreData를 사용할 때 Predicate 문법을 사용하여 필터링 하곤 합니다. 이 때 주로 사용하는 문법들을 정리해보겠습니다. let request: NSFetchRequest = Entity.fetchRequest() let predicate = NSPredicate(format: "id == %@", id) request.predicate = predicate CoreData에서 데이터 조회(fetch)할 때 사용하는 방식은 대부분 위와 같을 것 입니다. NSPredicate 생성자 중 format 문자열에 검색조건을 지정하는 방법을 주로 사용합니다. format 문자열은 대소문자를 구별하지 않습니다. Predicate Keyword 들은 대문자로 작성하는 것이 ..
[iOS] fullScreen? overFullScreen? over가 붙으면 무엇이 다를까 (UIModalPresentationStyle) UIViewController의 속성중에 modalPresentationStyle 란 것이 있습니다. 해당 뷰컨트롤러가 모달 형식으로 띄워질 때의 스타일을 지정할 수 있는 것이죠. var modalPresentationStyle: UIModalPresentationStyle { get set } 스타일로 지정할 수 있는 타입의 기본값은 .automatic 이고 지정할 수 있는 값은 총 11가지가 있습니다. 이 중에서 .fullScreen과 .overFullScreen, .currentContext와 .overCurrentContext 처럼 prefix로 over가 붙으면 어떤 차이가 있는지 알아보려고 합니다! 정의를 먼저 살펴보면, 차이점은 presentation style 과 view presentat..
[iOS] 로컬 푸쉬 알림 구현 방법 (Local Notification) Swift로 로컬에서 푸쉬 알림을 어떻게 띄우게 구현하는지 알아보도록 하겠습니다. 기본 구조 Local Notification은 크게 3가지 파트로 나뉩니다. content, trigger, request 입니다. 이 세가지를 통하여 Local Notification을 쉽게 구현할 수 있습니다. Content content는 사용자에게 어떤 내용을 보여줄지에 대한 정보를 담고 있습니다. title, body, badge number, userInfo, attachments 등이 있습니다. userInfo는 예상하다시피 원하는 정보를 모두 담을 수 있는 Dictionary 입니다. 알림을 사용자가 눌렀을 때, userInfo에 들어있는 정보를 접근하여 활용할 수 있습니다. Trigger trigger에는 ..
[리뷰] 키크론 K4 (Keychron K4) 맥용 기계식 키보드 리뷰 + 타건 영상 킥스타터(Kickstarter)를 통해 후원하여 약 3개월 정도의 기다림 끝에 받은 키크론 K4 키보드를 리뷰해보겠습니다! 9월에 후원하였고 10월에 마감이 되고 12월에 받았으니 약 3개월 정도 소요되었습니다. 제가 후원하여 받은 제품은 K4 RGB Backlight Aluminium Keyboard Optical Red Switch 입니다. 요걸로 선택한 이유는 그냥 가장 비싸서..? 입니다. 이왕 주문하는거 제일 비싼게 제일 좋겠지.. 하고 선택하였습니다. 😎 키보드 가격은 $99 이고 국제 배송비 포함하여 총 후원료는 $111 였습니다. 스위치는 개인적으로 적축을 선호해서 망설임없이 선택하였습니다. 저는 주로 맥을 이용하고 있기에 맥과 호환되는 기계식 키보드라는 점에서 매우 만족스러웠습니다. 윈도..
[Cocoapods] pod install? pod update? 제대로 알고 쓰자 많은 사람들이 pod install 을 코코아팟 프로젝트를 처음 세팅할 때 딱 한 번 쓰고 pod update 는 그 이후에 사용된다고 생각합니다. 그러나 전혀 그렇지 않습니다! 😝 이번 포스팅에서 pod install 과 pod update 를 정확히 알아보도록 하겠습니다. pod install pod을 프로젝트에 세팅하기 위하여 맨 처음에 사용됩니다. 하지만 Podfile의 pod을 추가, 수정, 삭제할 때에도 사용됩니다. pod install 명령어를 실행하면 새로운 pod을 다운받고 설치합니다. 그리고 각 pod 마다 설치된 버전을 Podfile.lock 에 기록해 놓습니다. Podfile.lock은 설치된 pod들의 버전을 계속 추적하여 기록해놓고 유지시키는 역할을 합니다. pod install..