어느새 올해의 절반이 지나가 버렸습니다. 벌써 7월 중순이 되어 조금 늦은 감이 있지만, 올해의 절반을 어떻게 보냈는지 회고해보는 시간을 갖으려고 합니다. 상반기 계획 작년 12월 애플 아카데미를 마치고, 올해 초가 될 때까지만 해도 하려고 했던 것이 많았는데 대표적으로는 아래와 같습니다. Swift 문법 다지기 코딩 테스트 문제 매일 최소 1문제는 풀기 iOS 개발 면접 준비 iOS(UIKit, SwiftUI) 공부 및 정리하기 Swift Charts, UIButton, UICollectionView, Core NFC, Life Cycle 글또 8기 활동 예치금 까이지 않기 제대로 된 양질의 글 제출하기 가능하면 커피챗 아카데미 및 사이드 팀 프로젝트 이어가기 가능한 빠르게 취업하기 개발자 행사 참여 ..
글또 8기
개인적으로 미디어 플레이에 관심이 많아서 최근 개인 프로젝트로 뮤직 플레이어를 만들어 보기 시작했는데요. 뮤직 플레이어를 만들기 위해 이런 저런 방법을 찾다가 AVPlayer를 사용하기로 했는데, AVPlayer 문서를 보던 중 KVO라는 낯선 단어를 발견했습니다. AVPlayer에서의 간략한 설명으로만 보았을 때는 무언가 상태를 관측하는 듯 한데, 제대로 된 설명이 있지 않아 KVO가 무엇이고, 어떻게 사용할 수 있는지에 대해 공부한 내용을 정리해보려고 합니다. KVO KVO는 Key-Value Observing의 약자로, Delegate나 Notification 등과 같이 특정 이벤트가 발생할 때, 원하는 객체에 이를 알려 적절한 동작을 하는 커뮤니케이션을 위한 패턴 중 하나로, 키-값 관찰이라는 이..
기존에 UIKit에서 UIButton을 사용할 때마다, 버튼의 구성 방법이나 버튼에 클릭 이벤트 등을 주기 위해 selector를 이용하여 @objc 메서드를 사용해야하는 등 약간 불편하기도 하고, 부자연스러운 느낌을 지울 수가 없었는데요. 이번 시간에는 iOS 15 이후에 UIButton의 새로운 구성 방법과 버튼에 이벤트를 주는 방법에 대하여 알아보겠습니다. UIButton 사용자가 앱과 상호 작용할 수 있는 방법 중 하나인 버튼은 앱에서 매우 중요한 UI 요소인데요. UIButton은 사용자의 상호작용에 대한 응답으로 사용자 지정 코드를 실행하는 컨트롤 입니다. UIButton에는 텍스트 레이블, 이미지, 혹은 이 둘을 모두 사용하여 버튼의 목적을 전달할 수 있고, 모양을 구성하여 앱의 디자인에 맞..
이번 시간에는 iOS 면접을 준비하면서 공부한 내용을 정리해보려고 합니다. 질문은 https://github.com/JeaSungLEE/iOSInterviewquestions에서 참고했습니다. 원 질문의 내용은 "실제 디바이스가 없을 경우 개발 환경에서 할 수 있는 것과 없는 것을 설명하시오." 입니다. 개요 iOS 앱을 개발할 때, 실제 모바일 기기를 사용하여 테스트를 하곤 하는데, 이런 모바일 기기가 없을 때 Xcode의 Simulator(이하 '시뮬레이터')를 사용할 수 있습니다. 실제 디바이스가 없는 경우의 개발 환경 위에서 시뮬레이터를 사용하면 실제 디바이스를 대신하여 테스트를 할 수 있다고 했는데요. 시뮬레이터가 실제 디바이스를 흉내내서 유사한 환경에서 실행해준다고 생각하면 됩니다. 이런 실제..
이번 시간에는 Core NFC에 대해 알아보겠습니다. NFC 우선 Core NFC에 대해 알아보기 전에, NFC 기술에 대해 간단하게 알아볼까요? NFC(Near Field Communication)은 이름에서 알 수 있듯 가까운 거리에 있는 장치 간에 정보를 교환할 수 있도록 하는 근거리 무선 통신 기술입니다. 13.56MHz의 주파수를 사용하여 약 10cm 내외의 거리에서 두 전자기기가 서로 통신할 수 있도록 합니다. NFC와 RFID 흔히 NFC를 RFID와 구분하지 못하고 혼동하곤 하는데, 둘은 사실 서로 엄연히 다른 규격입니다. NFC를 RFID의 완전한 서브셋으로 생각하는 경우도 꽤 많은데요. 사실 이 둘은 완벽하게 슈퍼셋 서브셋 관계보다는 서로 교집합 관계에 더 가깝다고 볼 수 있습니다. 다..
이번 시간에는 iOS 면접을 준비하면서 공부한 UIWindow 객체의 역할에 대해 공부한 내용을 정리해보려고 합니다. 질문은 https://github.com/JeaSungLEE/iOSInterviewquestions에서 참고했습니다. 원 질문의 내용은 "UIWindow 객체의 역할은 무엇인가?" 입니다. 개요 우리가 일반적으로 iOS 앱의 UI를 구성할 때, Storyboard를 사용하는 방식과 Storyboard 없이 코드로 UI를 구성하는 방식을 사용할 수 있습니다. 직접적으로 UIWindow라는 개념을 처음 접하게 될 때는 아무래도 Storyboard 없이 코드로 UI를 구성하게 될 때가 아닐까 싶은데요. 처음 코드로 UI를 작성할 때, UIWindow라는 게 뭔지도 모르고 일단 코드로 UI를 작..
iOS UIKit으로 프로젝트를 진행하다보면 ViewController의 여러 생명주기를 접하게 되는데, 이 생명주기에 대해 제대로 알지 못하고 그냥 되는대로 사용하고 있는 것 같아서 이번 시간에는 ViewController의 생명주기(Life Cycle, 라이프 사이클)에 대해 공부한 내용을 정리해보겠습니다. 개요 일반적으로 우리가 사용하는 모바일 앱들은 하나 이상의 화면으로 이루어져 있습니다. 즉, 하나의 앱은 최소 하나 이상의 ViewController(이하 '뷰 컨트롤러')를 갖고 있다는 것인데요. 이 뷰 컨트롤러는 각각의 뷰 컨트롤러마다 생명주기를 갖고 있습니다. 생명주기는 각각의 뷰 컨트롤러가 화면에 나타나거나 사라질 때, 즉 화면이 전환될 때 호출되는 함수들을 의미합니다. ViewContro..
지난 시간에 이어 이번에는 Swift Charts(이하 '스위프트 차트')에 대해 코드와 함께 세세하게 살펴보도록 하겠습니다. 지난 글의 내용을 모르셔도 상관 없지만, 여기를 클릭하셔서 지난 글을 보고 오시면 이해에 더 도움이 됩니다. 개요 지난 시간에 보았듯, 스위프트 차트는 WWDC에서 애플이 공개한 SwiftUI 프레임워크입니다. 먼저, 스위프트 차트를 사용하여 개발하기 위해서는 Xcode 14 버전 이상이 필요하며, 지원하는 대상 OS는 iOS 16, iPadOS 16, macOS 13, Mac Catalyst 16, tvOS 16, watchOS 9 이상에서 지원합니다. 지난 시간에 스위프트 차트는 마크(marks), 스케일(scales), 축(axes), 범례(legends) 등의 구성 요소를..
진행 중이던 프로젝트에 막대형 그래프 모양이 필요해서 iOS로 차트를 그리는 방법을 찾다가 공부한 내용을 정리합니다. 이번 시간에는 Swift Charts에 대해 애플의 공식 문서 예제를 따라하며 가볍게 훑어보겠습니다. 개요 Swift Charts(이하 '스위프트 차트')는 WWDC 2022에서 애플이 공개한 SwiftUI 프레임워크입니다. Apple의 Swift Charts 문서에서는 스위프트 차트를 "데이터를 유용한 시각화 자료로 변환하기 위한 강력하고 간결한 SwiftUI 프레임워크로, 스위프트 차트를 사용하면 최소한의 코드로 효과적이고 커스터마이징할 수 있는 차트를 만들 수 있다"고 소개하고 있습니다. 스위프트 차트는 마크(marks), 스케일(scales), 축(axes), 범례(legends)..
다시 글또를 시작하며 글또를 다시 시작했다. 지난 7기에 처음 합류하게 된 "글또"는 "글 쓰는 또라이가 세상을 바꾼다"라는 약간은 파격적인 센스의 이름을 가진 개발자 글쓰기 모임인데, 지난 7기에서는 도중에 흐지부지 하게 되어 이번에는 다시 제대로 시작해보자는 생각으로 8기를 시작했다. 7기때 처음에는 정말 열심히 해보고자 하는 마음이 컸다. 한 4번(8주) 정도 였나, 열심히 글을 쓰고 제출을 했었는데(물론 도중에 패스권을 쓰긴 했지만) 아카데미 일정에, 공모전에 해커톤이다 뭐다 하면서 이것저것 한꺼번에 다 하려다보니 어느새 글 쓰는게 뒷전이 되어버렸고, 한번 흐름을 놓치니 다 놔버리고 싶다는 생각만 들어서 그 다음부터는 제대로 참여하지 않았던 것 같다. 분명 시작할 때는 의욕 넘치고, 이것저것 써보..