일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- WeatherKit
- 세종대학교
- Kingfisher
- 동시성
- 캐시
- 옵셔널
- 프로토콜
- 스트럭트
- async
- CS
- 반응형
- swift
- ios
- 네트워크
- 토이프로젝트
- 구름톤 유니브
- 학과별커뮤니티
- 라이브러리
- collectionview
- 기초문법
- RxSwift
- SwiftUI
- mvc
- 대표
- uikit
- 실습
- snkit
- observable
- 이론
- struct
- Today
- Total
목록SwiftUI (6)
스윞한 개발자

안녕하세요! 또 새로운 주제로 포스팅을 해보려고 합니다! 오늘의 주제는 "@Observable 매크로의 내부 동작과 ObservableObject와의 비교"입니다! 오늘 포스팅에서는 WWDC23에서 소개되고 iOS17부터 본격적으로 사용할 수 있게 된 @Observable 매크로에 대해 파해쳐보겠습니다! # ObservableObject의 한계 SwiftUI가 처음 등장했을 때, 상태 관리를 위해 ObservableObject 프로토콜과 @Published 속성 래퍼를 사용했습니다.저 또한 아직까지 뷰모델에서 ObservableObject와 @Published를 자주 사용하는 거 같습니다. ObservableObject의 특징을 보면1. ObservableObject는 참조 타입인 클래스에서만 사용이 ..

안녕하세요! 오늘은 제가 iOS 앱 개발을 하면서 정말 중요하다고 느낀 SwiftUI 뷰 렌더링 최적화 기법에 대해 이야기해보려고 합니다. 최근에 불투명 타입과 Type Erasure에 대한 글을 썼었는데요, 이번엔 조금 더 실용적인 내용을 가져왔습니다! SwiftUI로 앱을 개발하다 보면 처음엔 모든 게 신기하고 간단해 보이지만... 앱이 복잡해질수록 성능 문제가 눈에 띄기 시작하죠. 특히 화면이 버벅거리거나 스크롤할 때 프레임이 떨어지는 현상은 사용자 경험에 치명적이라고 생각합니다. 제가 처음에 SwiftUI에 대해 공부했을 때는, 렌더링? 뷰가 언제 다시 그려지고 언제 안 그려지는지는 전혀. 생각해보지 못했습니다. 아~~ 그냥 그려지는구나! 어? 돌아가네.. 라고만 생각하고 프로젝트를 만들기 급..

안녕하세요! SNKit 개발 일지 이후에 오랜만에 다른 주제로 돌아온 거 같습니다 ㅎㅎ 요즘에 SwiftUI에 대해 다시 공부를 시작했는데요! 보면 볼수록 늘 새롭고 짜릿한... SwiftUI.. 제가 처음에 SwiftUI를 시작했을 때는 강의만 듣고 구현하기에 급급했는데요,,, some,, AnyView... 등등그냥 구현하기 위해 왜 쓰는지도 모르고 사용했었죠.그래서 오늘은! Swift Opaque Type vs Swift Type Erasure에 대해 비교해 보고 정리해 보겠습니다!두 가지 중요한 개념인 Opaque Type과 Type Erasure은 정보를 추상화하는 방법이지만, 사용 목적과 동작 방식에는 중요한 차이가 있습니다. 우선 타입의 정보를 추상화한다... 결국 타입의 정보를 숨기는 과..

# 1. Combine 이란?반응형(Reactive) 프로그래밍의 개념을 기반으로 개발된 프레임워크입니다. 반응형 프로그래밍은 데이터 스트림과 변화의 전파에 관련된 선언형 프로그래밍 패러다임입니다. 1. 데이터 스트림(반응형 프로그래밍) - 시간에 따라 만들어진 일련의 이벤트 ex ) 탭 이벤트 스트림 2. 선언형 프로그래밍 - "무엇(What)"에 집중 - 결과에 집중하도록 구체적인 행위에 집중 - 행위를 정의하고 그 행위에 데이터를 전달 - 가독성과 유지보수 향상 * 반응형 프로그래밍 기반 패턴 Observer Pattern관찰자 : 주체의 상태의 변화를 감지하기 위해 주체를 구독주체(대상) : 관찰자에게 상태가 변할때마다 알림 # Combine 정의 살펴보기From WWDC, A unifi..

SwiftUI에서 MVVM 패턴으로 앱을 개발하기 위해서는 다양한 프로퍼티 래퍼를 활용하는게 중요합니다! 여러 프로퍼티 래퍼들에 대해 알아보겠습니다 ㅎㅎ SwiftUI의 Property Wrappers 1. @State SwiftUI에서 상태를 처리하는 방법 뷰의 상태를 저장하는 프로퍼티로 상태 관리 주체는 해당 뷰 기본적으로 Private 선언, 다른 뷰와 값을 소통하려면 Binding이용 값이 변경될 때마다 UI 업데이트 2. @Binding 뷰의 상태를 바인딩하는 방법 상위 @State 변수 전달받아 하위 뷰 캐치, 변화감지/연결 Binding은 다른 뷰가 소유한 속성을 연결하기 때문에 소유권/저장공간 X 3. ObservableObject 클래스 프로토콜로 관찰하는 어떠한 값이 변경되면 변경사항을..

SwiftUI와 UIkit 중에서 고민하시는 분들이 많으실텐데요! 이번 포스팅에서는 SwiftUI의 특징과 장점/단점에 대해 간단하게 정리해보았습니다! SwiftUI란? 특징 SWift 언어로 모든 플랫폼에서 앱에 대한 UI와 동작을 선언해주는 프레임워크 (아이폰, 아이패드, macOS, 비전OS) 상태 중심 프레임워크 Xcode 12, ios 13 이상부터 지원 Less code, Better code, EveryWhere(어디서든 적은 코드로 더 나은 앱을 개발하자) 장점과 단점 장점 선언적 구문 : 어떻게 보다 무엇을 하고 싶은지 선언하고 시스템이 선언에 따라 자동으로 처리 간결한 코드로 가독성 향상 및 유지보수 용이 손쉬운 View 조합을 통한 구현 : 레고 Modifier Chaning을 통한 ..