본문 바로가기

ios35

[iOS/ UIKit] UIFont Custom - Variable Font와 마주친 문제 프로젝트를 진행하면서 디자이너 분께 디자인 시스템을 전달받았고, 그중에는 타이포그래피를 정리해 둔 폰트 시스템이 있었다. 폰트파일을 불러와서 커스텀 폰트를 사용한 것이 처음이 아니었기에 쉽게 생각하고 진행하였는데예상치 못한 오류를 발견하였다. 계속해서 폰트를 찾지 못하는 오류를 가져왔다.분명 나는 파일을 추가하고, 타겟을 설정하고, 인포 파일 설정까지 끝마쳤는데 왜 오류가 뜨는지 알 수 없었다.. 추가 과정에는 문제가 없었다ㅠ 디자인에 대해 얄팍한 지식을 가지고 있어서 마주친 문제였... 혹시라도 같은 상황을 마주친 사람들이 있다면 힌트를 주고자 정리를 해보았다. 우선 내가 마주친 상황은 커스텀 폰트 생성 시 폰트를 찾을 수 없다는 오류였는데보통 이러한 오류는 인포파일 설정, 혹은 타깃 설정, 파일을 제.. 2024. 7. 3.
[iOS] UIKit 과 SwiftUI 의 차이점 - 명령형과 선언형의 차이 SwiftUI VS UIKit UIKit 명령형 프레임워크 뷰를 직접 생성하고 제어할 수 있어 UI를 좀 더 섬세하게 커스텀 가능 SwiftUI 보다 보다 많은 기능 제공 (단 최신 기술의 경우 SwiftUI의 지원이 더욱 늘어남) SwiftUI 선언형 프레임워크 복잡한 UI도 훨씬 적은 양의 코드로 만들 수 있다는 장점을 가지고 있고 개발과정이 간단함. 다양한 OS 호환이 쉬움. 최신 프레임워크인 만큼 최신 기술들을 지원함 언제 사용하는 것이 좋은가? 커스텀이 많이 필요한가? → UIKit 간단하고 빠르게 앱을 개발하고 싶은가? or 최신 기술을 지원해야 하는가? → SwiftUI 하지만 필요에 따라 두가지를 같이 사용 가능하다! 명령형 프레임워크 VS 선언형 프레임워크 명령형 프로그래밍은 어떻게 할 .. 2024. 4. 3.
[SwiftUI/Realm] Delete 시 invalidated 오류 해결 방안 프로젝트 진행 시 로컬 데이터베이스로 Realm을 사용해 보기로 하였고 간단한 Todo app이었기에 내가 SwiftUI를 진행하면서 늘 해오던 방식대로 ContentView -> TodoView(List) -> RowView로 연결되어 있었고 세 뷰는 가장 상위 앱단위에서StateObject로 선언한 TodoStore 즉 뷰 모델을 environmentObject로 주입시켜준 상태였다. Realm 가이드를 참조하여 기존 Todo 모델을 Object 클래스로 변경하고 ViewModel에 있던 Todo 리스트를 Object 리스트로 변경 후 CRUD를 구현했을 때 ADD까지는 진행이 되었으나 삭제 시 다음과 같은 에러가 발생하면서 앱이 중단되는 상황이 발생했다.Terminating app due to un.. 2024. 4. 3.
ActivitiKit 사용해보기(IOS 16.2 이후 업데이트 버전) Project 시작하기 1. widget Extension 추가 (file - new - target) 2. Info.plist 에 Supports Live Activities 추가 후 값은 Yes로 변경 LiveActivity 구현 LiveActivity 파일 살펴보기 구성을 살펴보면 다음과 같다. 처음에 살펴보면 이게 뭔가 싶다. 아직도 난 이게 뭔가 싶다. 일단 두 개의 구조체 확인 가능하다. ActivityKitWidgetAttributes: 사용될 프로퍼티들 정의 ActivityKitWidgetLiveActivity: 보일 뷰 정의 ActivityKitWidgetAttributes ActivityKitWidgetAttributes : 정적 프로퍼티 (변화하지 않는 값) - name Activit.. 2024. 3. 13.