일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mvc
- swift
- CS
- 구름톤 유니브
- 학과별커뮤니티
- collectionview
- ios
- snkit
- RxSwift
- 이론
- Kingfisher
- 동시성
- 프로토콜
- WeatherKit
- 스트럭트
- uikit
- 라이브러리
- 네트워크
- observable
- async
- 반응형
- SwiftUI
- 기초문법
- 실습
- 캐시
- 세종대학교
- 대표
- 옵셔널
- 토이프로젝트
- struct
- Today
- Total
목록Swift 이론 (70)
스윞한 개발자

안녕하세요 이번 시간에는 Swift로 개발을 진행할때 사용할 패턴들에 대해 개념을 정리해보았습니다! 저는 일단 기본적으로 모든 프로젝트를 진행할때, MVC 패턴으로 구현을 했는데요! 이번 기회에 MVVM 패턴에 대해 공부하고 정리해서 앞으로 진행할 졸업 작품과 다양한 프로젝트, 과거에 했던 프로젝트도 정리 해보도록 하겠습니다! * MVVM(Model, View, Viewmodel) 기존의 uikit는 mvc를 따르고 있습니다. MVC(Model View Controller) Clean Architecture의 핵심은 바깥쪽 레이어가 안쪽 레이어에 대한 정보는 알아도 되지만, 안쪽 레이어는 바깥쪽 레이어에 대해 최대한 몰라야 한다는 것입니다. 외부 사항은 서비스가 완성이 되어 배포한 후에도 교체 및 수정의..

이번 포스팅에서는 UICollectionView에 대해 정리해보겠습니다. UICollectionView란? 1. Grid 형 UI를 구현할 수 있는 수단 2. 메모리절약을 위해 view를 재사용 함 3. Delegate 패턴을 활용하여, delegate/dataSource를 구현하여 UI 구현 4. UICollectionViewLayout을 상속하여 UI의 배치를 선언 할 수 있음 >> 기본으로 제공되는 것 : UICollectionViewFlowLayout, UICollectionViewCompositionalLayout !! UICollectionView를 위와 같이 간단하게 4가지로 정의할 수 있습니다! 4번의 특징이 UITableView와 가장 큰 차이점이라고 볼 수 있습니다. 테이블 뷰는 사용자..

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을 통한 ..

이번 포스팅은 간단한 스위프트 기초문법입니다 !! 자료형을 체크하고 캐스팅하기 위한 문법들입니다ㅎㅎ 스위프트에서는 다양한 방법으로 변수나 상수의 자료형을 체크할 수 있습니다. 1. is 연산자로 자료형 확인 'is' 연산자는 변수나 상수가 특정 자료형과 호환되는지 확인하는데 사용됩니다. 이 연산자는 부울 값을 반환합니다. let value: Any = 5 if value is Int { print("value is an Int") } else if value is String { print("value is a String") } else { print("value is of an unknown type") } 2. as 연산자로 타입 캐스팅 'as'연산자는 변수나 상수의 자료형을 변환하는데 사용됩니다...

스위프트에서 프로토콜 조건은 제네릭 타입의 제약 조건을 정의하는 데 사용되는 개념입니다. 제네릭 함수나 타입을 선언할 때, 특정 프로토콜을 준수하는 타입만을 제네릭으로 받도록 제한하고 싶을 때 사용됩니다. func someFunction(parameter: T) { // 함수 내용 } struct SomeStruct { // 구조체 내용 } 와 는 제네릭 타입 T가 각각 SomeProtocol와 AnotherProtocol 프로토콜을 준수하는 타입으로 제한되도록 정의한 것입니다. func findIndex(of valueToFind: T, in array: [T]) -> Int? { for (index, value) in array.enumerated() { if value == valueToFind {..

스위프트에서의 toggle은 부울 값을 반전시키는 메서드입니다. toggle은 주로 불리언 변수나 프로퍼티의 값을 반전시키는 데 사용됩니다. var isOn = false isOn.toggle() // 이제 isOn은 true가 됨 class ToggleExample { var isEnabled = true func toggleState() { isEnabled.toggle() } } isEnabled 프로퍼티의 값을 toggle 메서드를 호출함으로써 반전시킬 수 있습니다. Collection 프로토콜을 채택한 컬렉션(배열, 집합 등)의 요소들 중에서 특정 값을 반전시키는 데에도 사용될 수 있습니다. var numbers = [1, 2, 3, 4, 5] let index = 2 numbers[index]..

싱글턴 패턴! 에 대해 포스팅해보겠습니다. 싱글턴 패턴은 객체 지향 프로그래밍에서 사용되는 디자인 패턴 중 하나로, 어떤 클래스가 단 하나의 인스턴스만을 생성하도록 보장하는 패턴입니다. 이 인스턴스는 어디서든 접근 가능하며, 전역적으로 공유되는 자원을 관리하거나 중복 생성을 피하기 위해 사용됩니다. class Singleton { static let shared = Singleton() // 유일한 인스턴스를 저장하는 정적 속성 private init() { // 초기화 코드 } func someFunction() { // 메서드 내용 } } 위의 코드에서 shared 라는 정적 속성을 사용하여 유일한 인스턴스를 생성하고자 저장합니다. 생성자 private init()를 통해 외부에서의 직접적인 인스턴스..