일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HIG
- clean architecture
- 클린 코드
- Observable
- Protocol
- MVVM
- 리팩토링
- 리펙터링
- ribs
- rxswift
- swift documentation
- Xcode
- Clean Code
- combine
- 리펙토링
- Human interface guide
- SWIFT
- uiscrollview
- swiftUI
- collectionview
- map
- UITextView
- ios
- uitableview
- 스위프트
- tableView
- UICollectionView
- 애니메이션
- Refactoring
- RxCocoa
- Today
- Total
목록iOS 기본 (SwiftUI) (55)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bfxwc0/btrIdeVPf2i/nsLLkhKRMpkcI8MkZcFLYK/img.png)
목차) SwiftUI의 기본 - 목차 링크 TextField 값을 입력받을 수 있는 컴포넌트 SwiftUI에서는 @State 상태 프로퍼티 하나를 두고 값이 입력되면 여기에도 입력되도록 구현 struct ContentView: View { @State private var username = "" var body: some View { TextField( "User name", text: $username ) } } @FocusState 텍스트 필드의 포커스 (firstResponder) 관리는 @FocusState를 사용하면 매우 손쉽게 코드에서도 제어가 가능 @FucusState에 사용할 텍스트 필드의 타입을 정의 enum Field { case username case email } email 텍스..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8CrD1/btrH75q5AjP/Zyg7yqah1vUI461shrrDZk/img.png)
목차) SwiftUI의 기본 - 목차 링크 Text Text()로 사용 struct ContentView: View { var body: some View { Text("text") } } underline, strikethough, baselineOffset struct ContentView: View { var body: some View { VStack { Text("text1") Text("underline") .underline() Text("strikethrough") .strikethrough() Text("base line ofset(30)") .baselineOffset(30) } } } kerning과 tracking kerning은 문자간의 offset을 조절 tracking은 후행 ..
목차) SwiftUI의 기본 - 목차 링크 View Protocol View 프로토콜 프로토콜이고, body라는 computed property를 가지고 있는 타입 view를 입력할 수 있게하는 인터페이스를 제공하는 역할 @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) public protocol View { associatedtype Body : View @ViewBuilder var body: Self.Body { get } } @ViewBuilder @resultBuilder를 사용하여 정의한 struct 형 @resultBuilder는 swift5.4에서부터 나온 api이며, 개념은 이전 포스팅 글 참고 (@resultBuilder를 사..
Views and Controls View protocol Text, Text ViewModifier TextField TextField ViewModifier, SecureField Font Image SF Symbols Button, ButtonStyle ButtonStyle, PrimaryButtonStyle을 이용한 커스텀 버튼 EditButton, PasteButton Toggle, ToggleStyle을 이용한 커스텀 토글 Picker, PickerStyle DatePicker, ColorPicker Slider Stepper NavigationView, NavigationLink Layout, Presentation HStack, VStack, ZStack, LazySatck List (리프..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EAWsi/btrH1cygKaG/ZUkrHYpIYO7XOpa9bn2PR0/img.png)
App이란? Star라는 앱을 만들면 자동으로 StarApp.swift파일과 ContentView.swift파일이 자동으로 생성 App을 상속받고 있는 StarApp을 확인 import SwiftUI @main struct StarApp: App { var body: some Scene { WindowGroup { ContentView() } } } App이란? 앱의 구조와 동작을 나타내는 타입 App 위에는 @main이라는 어노테이션을 사용하여 앱의 entry point를 명시하여 같이 사용 cf) SwiftUI를 공부하면서 사용할 유용한 단축키 (document 오픈 + 검색): control + cmd + option + / body라는 computed property를 이용하여 앱의 content..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yYv6x/btrIdyGvH7J/LE52UWhu5R7JROrxN1onN0/img.gif)
다른 글) SwiftUI의 기본 - 목차 링크 TextField placeholder와 값을 입력할 수 있는 컴포넌트 사용할땐 @State 프로퍼티를 하나 두고 이 프로퍼티에 바인딩하여 현재 입력값을 상태에 저장 struct ContentView: View { @State private var username = "" var body: some View { TextField( "User name", text: $username ) } } TextField 활용 키보드 타입 .keyboardType(_:) TextField( "User name", text: $username ) .keyboardType(.numberPad) //
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d6ze9f/btrHqo5XBHl/uKNtT2KAu7F5cOK4Akg0DK/img.png)
* 패턴 매칭에서의 some 키워드 (optional unwraping에 사용되는 some 키워드는 이 포스팅 글 참고) Opaque Types (불투명 타입) 불투명 타입 단어 그대로 리턴 타입의 유형을 감추는 방법 protocol앞에 some 키워드를 붙여서 사용 some + { 어느 protocol... } computed property와 method에만 사용이 가능 반환 타입을 구현하는 쪽에서 마음대로 정할 수 있는 방법 ex) SwiftUI에서는 some 키워드를 computed property인 body에 사용 body 구현부에 들어가는 반환타입은 View 프로토콜을 준수하고 있으면 무엇이 오든 ok. struct ContentView: View { var body: some View { ..