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주) 정도 였나, 열심히 글을 쓰고 제출을 했었는데(물론 도중에 패스권을 쓰긴 했지만) 아카데미 일정에, 공모전에 해커톤이다 뭐다 하면서 이것저것 한꺼번에 다 하려다보니 어느새 글 쓰는게 뒷전이 되어버렸고, 한번 흐름을 놓치니 다 놔버리고 싶다는 생각만 들어서 그 다음부터는 제대로 참여하지 않았던 것 같다. 분명 시작할 때는 의욕 넘치고, 이것저것 써보..
어느덧 아카데미를 수료한지 2주가 지났다. 수료한 후에도 포항에 남아있을 때에는 아직 수료했다는 것이 잘 실감이 나지 않았는데, 포항을 떠나온지 약 2주만에 내가 아카데미를 정말 마쳤구나 하고 이제야 실감이 나는 것 같다. 올해 3월 14일 아카데미의 첫 세션이 시작되었다. 세션 시작 직전까지 계속 아카데미에서는 과연 무엇을 하는가에 대해서 "다른 부트 캠프들처럼 'lecture' 형식으로 무언가를 가르쳐줄까?", 아니면 "계속 개발만 하면서 배우는 걸까?", "도메인, 디자인, 개발 분야를 다 뽑으니까 각자 일을 분담해서 뭔가를 만드는걸까?" 등등 혼자 추측만 하고 있었다. 결론적으로 아카데미는 다른 부트 캠프들처럼 'lecture' 형식의 무언가는 없다. 간간이 워크샵으로 무언가를 알려주긴 하지만, ..
서론 최근 Apple Developer Academy @POSTECH에서의 두 번째 팀 프로젝트(MC2)를 마치고, 세 번째 팀 프로젝트(MC3)를 시작했다. 그동안은 팀 프로젝트 사이에 개인 프로젝트가 있었는데, 이번에는 개인 프로젝트 없이 바로 새로운 팀 프로젝트로 들어갔다. 항상 새로운 팀 프로젝트가 시작되면 초반에는 기획 단계라서 개발을 전혀하지 않게 되는데, 이렇게 많은 개발자들과 디자이너들 기획자들이 모인 환경일 때 최대한 많은 프로젝트를 해보고 싶어서 친한 친구와 둘이서 팀으로 사이드 프로젝트를 시작했다. 이번 사이드 프로젝트는 위젯이 주요 기능 중 하나였는데, 위젯을 추가하면서 공부한 내용을 정리해보고자 한다. WidgetKit WidgetKit은 iOS의 홈 화면과 Today View, ..
(2024.03.31) 이 글은 과거 버전의 Localization 지원 방식을 설명하고 있습니다. Xcode 15 이후의 환경에서 Localization을 다루는 방법을 알아보고자 하신다면 [iOS] String Catalog - Xcode 15 이후의 iOS 앱에서 다국어 지원하기 (feat. Localization)를 참조하시길 추천합니다. Apple Developer Academy @POSTECH에서 두 번째 공식 팀 프로젝트(이하 MC2)가 끝났다. 이번에 우리 팀은 초등학생 저학년을 대상으로 한 환경 관련 앱을 만들었는데, 한국 초등학생 뿐만 아니라 글로벌한 초등학생들을 대상으로하자 하여 다국어를 지원하는 앱을 만들게 되었다. 이번에는 하나의 고정된 언어가 아닌 다국어를 지원하는 방법에 대해 ..
Apple Developer Academy @POSTECH에 들어온지 어느덧 3달이 되었다.아카데미에서 첫 번째 팀 프로젝트와 개인 프로젝트를 마친 후에 개인적으로 사이드 프로젝트를 진행하고, 또 아카데미의 두 번째 팀 프로젝트에 들어오면서 개인적으로 느낀 점은 어떤 서비스에서 API 등으로 통신을 하지 않는다면 한정된 정보와 기능만을 가지게 될 것이고, 그렇기 때문에 서비스에서 API를 호출하고, 데이터를 주고 받는 것이 매우 중요한 것 같다는 것이었다.그래서 Swift에서 HTTP로 통신하는 방법을 찾아보았고, 그 중에서 URLSession을 사용하여 HTTP로 통신하는 방법에 대해 공부해보려한다. URLSession우선 URLSession이 무엇인지에 대해 설명하자면, URLSession이란 HTT..
시작에 앞서 시작하기에 앞서 내 주변 사람들이 이 글을 본다면 "쟤 또 일 벌였어?"라는 반응일지도 모르겠다. 항상 뭔가 하고 싶은 욕심만 앞서서 일만 잔뜩 벌여놓고, 그 많은 일들을 소화하느라 항상 스트레스받는 이 습관이 이번에도 또 도진 것 같다. 부디 내 주변 지인들이 이 글을 본다면 "네가 벌인 일이니까 너 알아서 해!"라는 말보다는 "그래도 잘 할 수 있을 거야~ :)"라며 다독여 주길 바란다. 글또? 본격적으로 글또와 인연을 말해보자면 올해 2월로 넘어간다. 2월의 나는 한창 네이버 커넥트의 '부스트캠프 AI Tech 3기' 과정 NLP 트랙을 듣고 있던 캠퍼였다. (지금은 나왔지만.. 😭) 부스트캠프에는 정말 많은 마스터분들이 계셨는데, 그 중 러닝마스터로 '변성윤'님이 계셨다. 당시 성윤님..
몇 년 전에 네이버 블로그를 운영했던 적이 있다. 당시에는 좋아하는 가수의 팬질을 하며 정보나 내 덕질을 기록하는 팬 블로그로 사용했었는데, 별거 없는 조촐한 블로그에 생각보다 많은 방문자가 들어와서 즐겁게 블로그 활동을 했다. 블로그 레이아웃을 예쁘게 꾸미고, 또 다른 팬들과 소통하기 위해 게시물도 올리고, 블로그를 위해 억지로 머리를 쥐어짜서라도 하루에 하나씩 꼭 글을 썼던 기억이 있다. 아주 어릴 때부터 글을 쓰는 걸 좋아했는데, 특히 일기처럼 내가 있었던 일, 아니면 내가 오늘 느꼈던 감정같이 나에 대해 기록을 남기는 것을 좋아했다. 물론, 누구한테도 보여주진 않았지만.. 'ㅅ' 올해 초에도 블로그를 시작하겠다고 호기롭게 도전했다. Github Page로 블로그를 시작했었는데, 글은 한 2개인가 ..