Starbucks Caramel Frappuccino
본문 바로가기
  • 그래 그렇게 조금씩

SwiftUI107

1. sorted / filter / map / compactMap ⭐️sorted / filter / map / compactMap⭐️ 고차함수를 통해 배열을 좀 더 효율적으로 활용하는 방법을 알아보자. 먼저 예제를 위한 코드 MODEL // Created by Toughie on 2023/05/20. // import SwiftUI // MARK: MODEL struct UserModel: Identifiable { let id = UUID().uuidString let name: String let point: Int let isVarified: Bool } VIEWMODEL // MARK: VIEWMODEL final class ArrayModificationViewModel: ObservableObject { @Published var dataArray: [Us.. 2023. 5. 21.
0. Identifiable / Hashable ⭐️Identifiable / Hashable⭐️ 코딩하다 보면 자주 만나는(채택하는 경우가 많은) Identifiable, Hashable 프로토콜에 대해 정리해보자. Identifiable Protocol '식별 가능한 타입' 채택한 타입은 고유한 식별자를 가지고 있어야함. (id) id는 유니크한 값을 가지는 속성임. 컬렉션/테이블 뷰 등에서 데이터의 각 항목을 식별하기 위해 프로토콜이 요구됨. // Created by Toughie on 2023/05/20. // import SwiftUI struct MyModel: Identifiable { let id = UUID().uuidString let title: String } struct IdentifiablePrac: View { let dat.. 2023. 5. 20.
[61] .submitLabel / .onSubmit ⭐️.submitLabel / .onSubmit⭐️ 텍스트필드에서 입력을 끝내고 키보드의 return 버튼을 커스텀 할 수 있는 .submitLabel() 모디파이어와 return 버튼이 눌렸을 때 특정 액션을 취할 수 있는 .onSubmit() 모디파이어가 iOS15 이후 추가되었다. // Created by Toughie on 2023/05/14. // import SwiftUI struct OnSubmitLabel: View { @State private var myText: String = "" var body: some View { TextField("PlaceHolder", text: $myText) //다양한 기본 옵션 제공 .submitLabel(.go) //클로저 안에 원하는 액션을 추가.. 2023. 5. 14.
[60] @FocusState / TextField ⭐️@FocusState / TextField⭐️ 온보딩 페이지나 로그인하는 단계에서, 키보드가 자동으로 올라오고 입력을 마치면 다음 텍스트필드로 이동하며, 빈칸이 있으면 빈칸으로 커서가 이동하는 것은 매끄러운 사용자 경험에 큰 도움이 된다. 이를 구현하기 위한 @FocusState에 대해 알아보자. @FocusState는 *포커스 상태(focus state)를 관리하기 위해 사용되는 프로퍼티 래퍼이다. *포커스 상태 - 사용자가 특정 뷰나 컨트롤에 '입력 포커스를 주었는지' 나타내는 Bool값이다. @FocusState를 활용하면 포커스가 되는 시점에 특정한 동작을 수행하도록 구현할 수 있다. 아래 예시를 통해 살펴보자. 1. 화면에 진입하면 잠시 뒤에 키보드가 자동으로 올라오며 아이디 입력창에 입력 .. 2023. 5. 14.
[59] Badge 뱃지 ⭐️Badge 뱃지⭐️ // Created by Toughie on 2023/05/13. // import SwiftUI struct BadgePrac: View { var body: some View { TabView { Color.red .tabItem { Image(systemName: "flame.fill") Text("Fire") } .badge(0) Color.green .tabItem { Image(systemName: "tree.fill") Text("Tree") } .badge("New") Color.blue .tabItem { Image(systemName: "drop.fill") Text("Water") } .badge(7) } } } //Int뿐만 아니라 String도 가능하다. S.. 2023. 5. 13.
모델? 뷰모델? 프로젝트를 진행하다가 모델과 뷰모델에 대한 경계가 애매한 느낌이 들어서 모델과 뷰모델에 대해 매우 간단하게 요약해보는 시간. struct Singer { var bestSongName: String var memberCounts: Int } class SingerStore: ObservableObejct { @Published var singerList: [Singer] = [] } SwiftUI에서 모델(Model)은 애플리케이션에서 사용되는 데이터와 해당 데이터를 처리하는 논리를 캡슐화하는 객체. 모델은 일반적으로 데이터를 유지 관리하고, 데이터를 검색하고, 수정하고, 삭제하는 작업을 처리한다. 모델은 앱의 다른 부분과 독립적으로 작동하며, 뷰나 컨트롤러에 대한 정보를 가지고 있지 않는다. 예시에서,.. 2023. 5. 13.