취미로 하는 수영을 가지고 앱을 만들어보자 라는 다짐으로 혼자 프로젝트를 시작했습니다. 앱 기능 중 피트니스 앱 처럼 수영 데이터를 보여주는 기능을 만들기 위해 HealthKit을 사용하게 됐습니다.공식문서나 다른 글을 봐도 HealthKit steps 정도만 사용하는 경우가 많아서 이번 기회에 삽질한 내용을 정리합니다.기본 설정먼저 프로젝트 생성 후먼저 App Target으로 이동해서 HealthKit Capability를 추가해줍니다.두 개의 체크박스는 그냥 데이터를 fetch하는데는 필요가 없기 때문에 그냥 넘어가도 됩니다. 그래도 간략하게 정리하자면.. 질병 정보 읽기 권한 체크, 레코드 갱신시 백그라운드에서도 동작하게 허용하는 체크입니다.plist에도 권한 체크를 위한 메시지를 설정해야 합니다!..
GitHub - EST-iOS-TEAM2/Dietto: ESTSoft Final 팀프로젝트ESTSoft Final 팀프로젝트. Contribute to EST-iOS-TEAM2/Dietto development by creating an account on GitHub.github.com 이전 프로젝트에서 내부 DB가 필요할 때 CoreData를 주로 사용했는데SwiftData도 알아두면 추후에 마이그레이션 하기 좋을 거 같아 iOS 17 부터 사용할 수 있는 SwiftData를 이번 기회에 도입해보기로 결정했다. CoreData보다 쉽게 모델을 정의하고, 비슷하게 CRUD를 할 수 있는점 덕분에 SwiftData 도입에 어려운것은 없었다!난관에 봉착한 때는 CoreData처럼 BackgroundCont..
Multi-Threading?짧은 시간에 복잡하고 많은 작업을 실행하여 사용자에게 좋은 경험을 제공하기 위해,작업을 여러 프로세스에서 동시에 실행시키는 병렬 처리 방법!iOS에서도 역시 Multi-Threading을 지원한다. iOS에서 사용하는 Multi-Threading대표적인 3 가지!GCD (Grand Central Dispatch)Operation, OperationQueue (NSOperation)Swift Concurrency먼저 하나씩 알아보자! GCD (Grand Central Dispatch)https://developer.apple.com/documentation/dispatchGCD는...iOS 8.0+저수준 큐 기반멀티코어 환경과 멀티스레드 환경에서 최적화된 프로그래밍을 할 수 있..
고차함수 (High order function)다른 함수를 매개변수로 받거나 반환하는 함수를 의미한다.클로저와는 다르다 (클로저는 이름이 없는 익명함수) 고차함수가 매개변수로 받는 함수가 클로저일때가 많아서 헷갈릴수는 있지만, 고차함수 안에서 클로저를 자주 사용하는 것 뿐 같은 개념은 아니다.특징가독성함수형 프로그래밍 스타일재사용성 높음maplet numbers = [1, 2, 3, 4, 5]let twoTimesNumbers = numbers.map{ $0*2 }//[2, 4, 6, 8, 10]각 요소에 동일한 연산을 적용해 새로운 배열을 반환한다.for-in문과 비교했을 때 차이는 없지만, 속도면에서 차이가 있다. (요소가 많을수록 차이 남)flatMaplet numbers = [[1, nil], [..
정의ARC(Automatic Reference Counting)는 메모리 구조에서 힙 영역을 관리한다.Swift에서 힙에 메모리를 할때는 참조타입을 생성할 때 자동으로 할당하게 된다.ARC는 할당된 메모리가 더 이상 필요하지 않을 때 자동으로 해제한다.C++에서는 new, delete 키워드를 통해 클래스 인스턴스를 생성할 때 메모리를 할당, 해제 한다.특징컴파일 시점에 언제 참조되고 해제되는지 결정되어 런타임때 그대로 실행된다.장단점장점개발자가 참조 해제 시점을 파악할 수 있음RunTime 시점에 추가 리소스가 발생하지 않음단점순환 참조 발생 시 영구적으로 메모리가 해제되지 않을 수 있음MRC? ARC?둘 다 Reference Counting을 하지만, Manual, Automatic의 차이가 있다.M..