분류 전체보기(208)
-
[Xcode] Xcode에서 quick help를 사용해보자
Xcode에서 option을 누른 채로 클릭을 하면, 해당 인스턴스, 프로퍼티, 메서드에 대한 정보를 얻을 수 있다. 아래와 같은 창을 Quick help(주석 설명)이라 하는데, 이거를 직접 만들려면 어떻게 해야 하는지 방법을 알아보자. 기본은 /** */ 기호를 사이에 내용을 추가해주는 방식으로 사용한다. 위치는 Quick help를 표시하고 싶은 곳 바로 위에 작성하면 된다. (클래스를 정의하려면 클래스 바로 위에, 클래스 내 메서드를 정의하려면 클래스 내 메서드 바로 위에) 이렇게 정의하면, 이렇게 보이게 된다! 이때, Summary는 가장 상단에서 해당 내용을 요약하는 글을 작성하는 부분 Declaration은 프로퍼티나 메서드의 정의 부분을 보여주는 부분 Discussion은 자세하게 내용을 ..
2021.12.20 -
[iOS] UIColor와 CGColor의 차이점을 알아보자
최근, 다크 모드 대응에 관해서 빡세게 공부를 하고 있는 와중에 UIColor가 들어가는 부분과 CGColor과 들어가는 부분이 엄격하게 구분되어 있는 것을 보고 이 두개의 차이점이 궁금해졌다. 그래서 오늘은 한번 UIColor와 CGColor의 차이점을 알아보려 한다. 일단, 공식문서를 살펴보면 UIColor는 색상 데이터와 불투명도를 저장하는 개체, CGColor는 색상 해석 방법을 지정하는 색상 공간과 함께 색상을 정의하는 구성요소 집합이라는 설명이 쓰여 있었다. 아직, 감이 잘 안오지만, 더 직접적으로 비교해보자. 가장 크게 비교할 수 있는 부분이 등장했다. UIColor는 우리가 정말 많이 그동안 다루었던 UIKit 프레임워크의 하위 요소, 즉 User Interface를 다루는 곳에서 지정하는..
2021.12.17 -
[CJ UNIT 5기] #3 - 중학생들에게 레고로 코딩을 가르친다고?
정말 오랜만에 쓰는 회고 글이다. 유닛 활동을 하게 된 지 벌써 4개월이란 시간이 흘렀고, 모든 수업이 끝난 지금은 마지막 해단식만을 앞두고 있는 상태이다. 정말 시간이 어떻게 흘러갔는지 모르겠다. (벌써 수료를 앞두고 있다니....ㅠ) 아무튼, 그래서 오늘은 지난 13주간 진행했던 유닛에서의 Lego STEAM 수업을 회고하는 글을 써보려고 한다. 그럼 출발~~~~💨 (혹시나 지난 회고 글을 읽지 않은 사람이 있다고??? 당장 아래 글도 읽고 옵시다 ^__^) [CJ UNIT 5기] #1 - CJ SW창의캠프 대학생 봉사단 최종 합격 후기 이번 2학기를 휴학을 하기로 결심하고, 힐링도 하면서, 여유롭지만, 알차게, 올 하반기를 보내기 위해 계획을 짜보게 된다. 그 계획중 하나는 바로, 하반기 대외활동에..
2021.12.17 -
[Library] Alamofire의 단점을 보완한 네트워킹 라이브러리, Moya
1️⃣ Moya? 보통 iOS에서 네트워킹을 구현할 때는 URLSession을 사용하게 된다. 그리고 그 URLSession을 이용한 네트워킹을 조금 더 간편하기 위해, 앞에서도 다룬 적이 있는 Alamofire 라이브러리를 보편적으로 사용하곤 했다. 하지만, 이 Alamofire 라이브러리는 코드의 유지보수와 유닛 테스트(각 부분마다 정확하게 동작하는지 확인하는 절차 -> 모든 함수 단위단위마다 로그를 찍어볼 수 없으니)가 힘들다는 단점이 있었다. 그래서 등장한 것이 바로 이 Moya 라이브러리이다. Moya는 URLSession을 추상화한 Alamofire를, 다시 추상화한 라이브러리로 Network Layer를 템플릿 화해서 재사용성을 높이고, 개발자가 request, response에만 집중을 하..
2021.12.17 -
[UITapGestureRecognizer] UILabel을 클릭가능하도록 만들기
원래 액션 이벤트를 담당하는 UI 요소는 "버튼"이다. 하지만 iOS 개발을 하다 보면, 경우에 따라 일반 뷰에나 이미지 뷰, 라벨에도 버튼을 구현해야 할 때가 생기게 된다. 오늘은 이럴 경우에, 버튼이 아닌 요소에도 Action을 어떻게 표현할 수 있는지 알아보려 한다. (코드에서는 UILabel을 예시로 들지만, 요소를 다른 걸로 바꿔주기만 하면 모두 응용해서 사용 가능하다.) 전체적인 기능 구현에 대한 프로세스는 아래와 같다. 1️⃣ Action을 주고 싶은 요소에 대해 Outlet을 만든다. 2️⃣ UITapGestureRecognizer를 이용해 클릭을 인식할 수 있도록 만든다. 3️⃣ 클릭했을 때, 구현할 코드를 함수에 작성한다. 4️⃣ isUserInteractionEnabled를 true로..
2021.12.17