로컬 알림 로컬 알림(로컬 푸시)는 앱 내부에서 미리 만든 특정 메시지를 iOS의 알림 센터를 통해 전달하는 방법으로, 앱이 종료되어 있거나 백그라운드 상태일 때도 메세지를 전달할 수 있는 방법 중 하나입니다. 로컬 알림은 iOS 스케줄러에 의해 발송되는데, 앱 내부에서 미리 메세지를 구성한 후 발송될 시간을 iOS 스케줄러에 등록해 두면 해당 시각에 맞추어 자동으로 발송합니다. 따라서 특정 시각에 뭔가를 알려주도록 처리할 때에도 로컬 알림을 사용할 수 있습니다. 로컬 알림은 주로 앱 델리게이트 클래스에 생성하게 되면 앱이 백그라운드 상태에 있을 때에도 알림을 줄 수 있어, 사용자의 이목을 집중시킬 수 있는 효과를 가질 수 있습니다. 과거에 로컬 알림을 처리하는 객체는 UILocalNotification..
이 앱은 Apple Developer Academy @ Postech에서 진행한 MC3 프로젝트 때 개발한 앱입니다. 인원도 4명으로 제일 적었고, 해야할 것들도 매우 많았지만,,, 완벽한 팀원들 덕분에 배포까지 완료하였습니다 ㅎㅎ 하지만 배포 과정에서 여러 가지 우여곡절이 많았고, 사실 아직 심사 중이기 때문에 리젝을 당할 수도 있지만,, 배포 과정을 직접 진행한 과정을 정리해두고 싶어서 포스팅을 하고자 합니다. 우선 처음으로 배포 과정을 진행해보았는데, 배포 해보고 싶다는 저의 의견을 들어주신 팀원분들 감사드립니다 ^_^ (꾸벅) 과정 앱스토어 커넥트에 추가하기 우선 앱 스토어 커넥트에 들어가 본인의 계정으로 로그인한 뒤, 나의 앱을 선택해줍니다. + 버튼을 통해 신규 앱을 생성해줍니다. 앱 정보 입..
메모리 구조 이번 포스팅은 Swift의 메모리 구조에 관한 내용입니다. 사실 지금까지는 메모리 관리를 신경쓰지 않고 프로젝트들을 진행했었는데, 이번 기회에 공부하여 다음부터는 해당 내용을 적용할 수 있도록 하는 것이 목표입니다. 메모리(RAM)공간은 4가지로 나뉘어져 있습니다. 코드 영역, 데이터 영역, 힙 영역, 스택 영역 다음은 4가지 공간들에 대한 특징입니다. 코드 영역 코드 영역에는 우리가 작성한 소스 코드가 기계어 형태(이진수)로 저장됩니다. CPU는 이 곳에 저장된 명령어를 가져가서 처리합니다. 프로그램의 시작부터 종료까지 메모리에 남아있으며, 컴파일 타임에 결정되고, Read-Only 형태로 저장됩니다. (Read-Only 형태라면 중간에 코드가 변경되지 않기 때문입니다.) 데이터 영역 데이..
코코아팟을 설치할 때 에러가 나타나서 이와 관련된 해결 방법을 작성하고자 합니다. 사실 코코아팟 자체의 설치는 어렵지가 않습니다. 그저 터미널에 해당 명령어를 입력해주면 됩니다. sudo gem install cocoapods 그런데 제 맥북에서 다음과 같은 에러가 발생하였습니다. Building native extensions. This could take a while... ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension. current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.15.5/ext/ffi_c /System/Library/Frameworks/Ruby.fra..
cocoapods CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 96 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly. 코코아팟이란 Swift와 Objective-C 코코아 프로젝트의 종속성 관리자입니다. 코코아팟은 96,000개의 라이브러리를 가지고 있으며 3백만 개의 앱에서 사용되고 있고, 당신의 프로젝트를 우아하게 확장시켜 줄 수 있다고 합니다(23년 8월 16일 기준). 코코아팟은 Ruby로 제작되어 있는데, 기본 Ruby는 MacOS에서 제공해..
NavigationStack A view that displays a root view and enables you to present additional views over the root view. iOS 16버전부터 업데이트된 NavigationStack에 대해 알아보고, 그와 관련된 예시를 보여드리겠습니다. NavigationStack은 기존의 NavigationView를 대체할 것으로, 루트 뷰를 보여주고, 루트 뷰에 대한 추가적인 뷰를 보여주는 것입니다. 사실 이름에서 알 수 있듯 화면을 네비게이션 형태로 넘겨주는 것인데, 스택의 방식을 사용하여 넘겨주는 것입니다. 스택의 특징과 같이 Push, Pop, Pop to root view 등의 개념을 인지하고 있다면 매우 유용합니다. @MainAc..
ViewModifier A modifier that you apply to a view or another view modifier, producing a different version of the original value. protocol ViewModifier Overview ViewModifier 프로토콜은 어떠한 뷰에서도 적용할 수 있는 재사용 가능한 modifier를 생성하는 것입니다. 예를 들어 SwiftUI를 통해 View를 만들 때, 글자 크기나 폰트 등이 공통적인 특성을 가지는 경우가 있습니다. 이러한 경우에 코드를 작성할 때 각각의 특성을 모두 작성하게 된다면, 코드의 가독성이 떨어지고 비효율적이게 됩니다. 따라서 이러한 공통적인 특성을 묶어서 관리하고 원할 때마다 해당하는 공통적인..
지원 동기 지원 동기는 우선 예전부터 애플 제품을 좋아하고, 애플이라는 브랜드에 되게 관심이 많았는데, 애플에서 주관하는 프로그램이 있다고 하여 떨어져도 경험삼아 지원해보자는 마인드로 지원을 하게 되었습니다. 2022년 기준으로는 서류 마감일이 11월 30일이었나? 그래서 학기 중에 병행하기에 좀 힘들었는데, 그래도 틈 날 때마다 조금씩 적어서 제출하였습니다. 2023년도에는 Batch1과 Batch2로 나누어서 지원자를 모집한다고 하였습니다. 이 글을 보시는 분들은 Batch2를 준비하시는 분들이실 것 같습니다. 1차 전형 1차는 서류 전형이었는데, 자기소개(최대 250단어), cv파일, 포트폴리오를 제출하는 것이었습니다. 근데 자기소개가 250자가 아닌 250단어였습니다,,, 저는 250자로 이해하고..