목록iOS (10)
iOS 개발일지
여러분! 셀 선택 시 UI 변경을 ViewController에서 하고 있지는 않았나요? 저는 그동안 TableView나 CollectionView가 선택되었을 때, 항상 didSelectRowAt과 didSelectItemAt만 사용했었거든요. 그러다... 가벼운 UI만 수정하면 되는 쉬운 작업인데, 굳이 ViewController가 알아야 할까? 라는 생각이 든 거죠. 가능하다면 Cell 내에서 변경시키면 좋겠다고 생각해서 알아보니 가능하더라구요...?! 정말 별거 아니지만 코드를 조금이라도 덜 쓰고, 조금이라도 직관적으로 쓰고 싶은게 개발자 마음이잖아요~ UITableView에서는 setSelected 메서드를, UICollectionView에서는 isSelected 프로퍼티를 override 해 사..
LiveActivity란 앱 내의 정보를 잠금화면에서 보여줄 수 있는 기능입니다! ActivityKit을 사용하며, iOS16.1 이상 버전에서 사용 가능합니다. 배달의 민족에서 많이 보셨을 것 같은데요~ 뭔가 신기술같고... 멋있고... 이쁘지 않나요? 저는 개인적으로 좋아하던 기능이라, 직접 구현하려니 조금 신났네요ㅋㅋㅋㅋㅎ 아무튼, 단계별로 따라오면 전혀 어렵지 않습니다! widget 자 우선 File -> New -> Target을 선택하고~ Widget을 검색해 추가해줍니다. Include Live Activity를 꼭 체크해주세요! 그리고 plist에 가서 Supports Live Activities를 추가하고, Value를 YES로 바꾸면 기본 셋팅은 끝! 각 파일 설명 AppIntent :..
평소와 같이 소스트리로 commit하고, push 하려는 순간... 갑자기 에러가 났다며 푸시가 되지 않았다. 사람 겁먹게 모든 태그를 쫙 보여주지만, 문제가 있는 곳은 [rejected] 한 곳! ! [rejected] Korea(3.3.4) -> Korea(3.3.4) (already exists) updating local tracking ref 'refs/remotes/origin/Release' error: failed to push some refs to 'http://~~~.git' hint: Updates were rejected because the tag already exists in the remote. Branch 'Release' set up to track remote bran..
WebView를 통해 이니시스 통합인증을 구현하려고 하니, 성공/실패에 대한 감지와 처리를 ViewController에서 해야 하네..? 인증에 성공 여부에 따라 WebView에서 던져주는 이벤트가 없으니, 인증 프로세스가 종료되었을 때 이동되는 URL에 따라 성공인지 실패인지 감지해야 했다. 다행히 WKNavigationDelegate에서 이러한 상황에 쓸 수 있는 함수를 제공해주니, 바로 사용해보도록 하자! func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { if let url =..
보호되어 있는 글입니다.
Objective-C를 공부하게 될 줄은 몰랐는데, 해야만 하는 상황이 생겼다. 오래된 언어라서 그런지 마땅한 강의도 없고, 회사에 있는 10년도 더 된 책을 읽으며 공부하고 있다. 읽다가 이해가 가지 않는 개념은 구글링해서 여러 블로그도 참고하고, 그렇게 읽기만 하다가... 역시 코드는 쳐봐야 맛이지! 간단하게 일단 쳐봤다. 공부해본 언어라곤 Python 한스푼과 Swift밖에 없는 나에게 너무 생소한 생김새였다. 세미콜론부터가... 이름에서 유추할 수 있듯이 C 언어를 기반으로 만들어졌다고 하니, C 를 아는 사람에게는 이해가 더 수월할 수도 있겠다. 보다시피 objc 파일은 이렇게 h와 m으로 나누어진다. 선언과 구현을 한번에 하는 swift와는 다르게, objc는 선언을 헤더 파일에서 쫘르륵 하게..
개발을 하다보면 필연적으로 비동기/동시성 프로그래밍의 필요성을 느끼게 된다. 개인적으로는 배너 스크롤 뷰를 만들었을 때 가장 와닿았었다. 그냥 조금 빨라졌당! 정도가 아닌, 정말 절실할 정도의 속도 차이가 있었다. GCD와 DispatchQueue 그럼 이러한 비동기/동시성 프래그래밍은 어떻게 하느냐! 선입선출을 하는 Queue에 Task를 저장하면, GCD가 스레드를 적절히 생성해 Queue에 담긴 Task를 분배해준다. 여기서 GCD에서 관리하는 Queue의 이름이 DispatchQueue이다. 음...! 너무 어려우니 패스트푸드점으로 예시를 들어보자! 44회차 정리 - GCD 를 읽고 오면 이해가 더 편할 것이다. 비동기 프로그래밍 비동기 프로그래밍은 여러 일을 동시에 처리해야 할 때 매우 효율적이..
SDK (Software Development Kit) 소프트웨어 개발 키트 개발자에게 다른 프로그램에 추가하거나 연결하여 커스텀 앱을 제작할 수 있는 기능을 제공하는 도구 모음 SDK를 통해 광고 및 푸시 알림을 포함한 다양한 기능을 시스템에 추가하여 앱을 향상시킬 수 있음 Framework 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것 프레임워크의 규칙에 따라 코딩하는 것으로, 앱의 흐름을 통제하기 때문에 해당 코드에 대한 제어권은 프레임워크에 있음 프레임워크 코드가 사용자의 코드를 호출 Library 특정 작업을 위해 쓰인 변수, 함수 등의 모음 여러가지의 유용한 함수가 담겨져있는 라이브러리를 이용해 내가 코드를 컨트롤 하는 것..