swift

SwiftData 알아보기
목차SwiftData란?SwiftData 구조SchemaModelContainerModelContextCRUDBindable이번 포스팅은 WWDC23에서 발표된 SwiftData 를 알아보려고 합니다.바로 알아봅시다!SwiftData란?SwiftData란 애플에서 제공하는 로컬 저장소 프레임워크입니다. iOS 앱을 만들때 로컬 저장소로 많이 사용하던 프레임워크로는 애플의 퍼스트파티 프레임워크인 Core Data, 서드파티 라이브러리로인 Realm 등이 있었습니다. 저는 Realm만 써왔었는데, Core Data 보다 속도가 2배 빠르고 사용법이 간단해 빠르게 적용하기 좋아 Core Data 대신 Realm을 채택했었습니다. SwiftData는 Realm 대신 채택할 이유가 생길까요? 한번 SwiftDat..
![[알고리즘] 구간 합, 누적 합(Prefix Sum)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F89wgm%2FbtsFGkSxSfA%2FujwBNMn2R7MvKVrbHPSUsk%2Fimg.png)
[알고리즘] 구간 합, 누적 합(Prefix Sum)
목차 누적 합이란? 언제 사용할까? 예시 및 코드 누적 합이란? 누적 합이란 수열 An에 대해서 각 인덱스까지의 구간의 합을 구하는 것을 누적 합이라고 합니다. 예를 들어 [1, 2, 3, 4, 5] 라는 배열이 있을 때, 각 구간까지의 합을 구하는 배열인 [ 1, 3, 6, 10, 15] 을 구한다고 가정해보면 아래와 같이 2가지로 구할 수 있습니다. [ 첫번째 방법 ] 1 1+2 1+2+3 1+2+3+4 1+2+3+4+5 매번 현재 인덱스까지의 값을 반복하며 더해주기 [ 두번째 방법 ] 1 1+2 3+3 6+4 10+5 이전 인덱스까지의 누적합에 현재 값을 더해주기 어떤게 더 효율적일까요? 배열의 갯수인 n을 늘려 [1, 2, ..., 99999, 10000]로 비교해보겠습니다. [ 첫번째 방법 ] ..

XCode Archive 시 has no member Error 발생
목차포스팅 동기Archive 시 Type '' has no member '' 문제 발생문제될만한 곳 확인하기문제 해결 포스팅 동기개인 앱을 만들다가 어느정도 완성되기도 했고, 햅틱 반응 테스트가 필요해 테스트 플라이트에 올려보기로 했다.그런데 시뮬레이터나 실기기 연결에선 잘되던 빌드가 아카이빙에서만 빌드 에러를 뱉는 문제가 발생했다.해당 문제를 정리하는 것부터 문제의 원인까지 차근차근 접근하다보면 해결되지 않을까 싶어 포스팅하게 되었다. Archive 시 Type '' has no member '' 문제 발생 위 사진처럼 에러가 나는데, 실제 파인더 경로에 가보면 정상적으로 파일들이 있고 해당 코드부분을 눌러보면 에러메시지가 사라진다.(에러 메시지가 사라지는게 가장 의문..) 문제될만한 곳 확인하기가장..

UITableView 로 가사 기능(트래킹, 하이라이팅, 탐색) 개발 기록
왁타버스 뮤직 앱을 개발하면서 가사 기능을 구현했던 내용을 기록하기 위해 작성한 글입니다.요구사항 및 결과 화면1. 가사 트래킹 기능: 시간이 흐르면 재생중인 가사가 가운데로 스크롤되어야 함2. 가사 하이라이팅 기능: 재생중인 가사를 하이라이팅해야 함3. 스크롤 가사 탐색 기능 : 가사를 스크롤하면 멈춘 위치의 가사를 재생 기능 구현 트래킹 기능1. JSON 으로 받아온 가사를 가사 딕셔너리로 변환가사를 요청하면 아래와 같은 형식의 json이 날아옵니다.[{"identifier":"1","start":17.17,"end":19.9,"text":"기억나 우리 처음 만난 날","styles":""},{"identifier":"2","start":19.9,"end":23.77,"text":"내게 오던 너의 ..
![[Gradient Animation] AngularGradient Border 애니메이션 넣기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp9qP5%2FbtrMVIk7US7%2FADdNlaaJzP2TDEJR4gHOQK%2Fimg.gif)
[Gradient Animation] AngularGradient Border 애니메이션 넣기
1. 이미지 리사이징struct ContentView: View { var body: some View { Image("IU") .resizable() .scaledToFit() .frame(width: 300) .mask { RoundedRectangle(cornerRadius: 12) } }} 2. 그림자 추가struct ContentView: View { var body: some View { Image("IU") .resizable() .scaledToFit() .frame(width: 300) .ma..
![[EventKit] 캘린더에 이벤트 추가하기(with. Async/await)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4Gk2q%2FbtrMTEXt5TU%2FxAoOLDPucX7xxpuQTkkkS1%2Fimg.gif)
[EventKit] 캘린더에 이벤트 추가하기(with. Async/await)
Introduction to Calendars and RemindersIntroduction to Calendars and Reminders The EventKit framework helps you access users’ Calendar and Reminders information. Although two different apps display users’ calendar and reminder data, the same framework manipulates the data. Similarly, the dadeveloper.apple.com EventKit 공식 문서 간단 해석주관적일 수 있습니당 틀린 내용이 있으면 댓글로 달아주세요! EventKit는 사용자의 기존 캘린더 및 미리 알림 데이터..