일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- combine
- HIG
- 리펙터링
- MVVM
- Clean Code
- 스위프트
- rxswift
- RxCocoa
- swiftUI
- ribs
- Observable
- 클린 코드
- ios
- uitableview
- UITextView
- Xcode
- 리팩토링
- 애니메이션
- clean architecture
- UICollectionView
- 리펙토링
- Refactoring
- Human interface guide
- swift documentation
- uiscrollview
- Protocol
- collectionview
- tableView
- SWIFT
- map
- Today
- Total
목록2022/08 (30)
김종권의 iOS 앱 개발 알아가기
목차) SwiftUI의 기본 - 목차 링크 Stepper struct Stepper where Label : View 아래 Stepper 생성자를 이용하여 구현 public init( @ViewBuilder label: () -> Label, onIncrement: (() -> Void)?, onDecrement: (() -> Void)?, onEditingChanged: @escaping (Bool) -> Void = { _ in } ) onIncrement와 onDecrement에서 쓸 @State 프로퍼티 준비 @State private var value = 0 let colors = [ Color.orange, .red, .gray, .blue, .green, .purple, .pink ] @Vi..
목차) SwiftUI의 기본 - 목차 링크 Slider struct Slider where Label : View, ValueLabel : View Slide(value:in:onEditingChanged:)를 사용하여 구현 value - 초기값 in - 범위 onEditingChanged - 변경되었을때 호출되는 클로저 struct ContentView: View { @State private var value = 30.0 @State private var isEditing = false var body: some View { VStack { Slider( value: $value, in: 0...100 ) { editing in isEditing = editing } Text("\(value)") ...
목차) SwiftUI의 기본 - 목차 링크 * Picker, PickerStyle 개념은 이전 포스팅 글 참고 DatePicker DatePicker 사용 방법 DatePicker 생성자에 이름, 선택 할 @State date 프로퍼티, 날짜를 표시할것인지 시간을 표시할것인지 선택 struct ContentView: View { @State var date = Date() var body: some View { DatePicker( "DatePicker", selection: $date, displayedComponents: [.date] ) } } 시간 정보를 표출하고 싶은 경우, displayedComponents 인수인 배열에 .hourAndMinute 추가 DatePicker( "DatePicke..
설정 실물 디바이스를 사용할 때, 맥북 사파리에서 디바이스의 웹뷰에 접근할 수 있는 권한 허용 디바이스 > 설정 > Safari > 고급 > 웹 속성 On 맥북에서 Safari 개발자 모드 보이게끔 활성화 Safari 메뉴 > `메뉴 막대에서 개발자용 메뉴 보기` 체크 테스트 * 테스트에 사용할 프로젝트는 이전에 알아본, 웹뷰와 자바스크립트 통신 포스팅 글에서 사용한 프로젝트 앱을 실행하여 웹뷰를 띄우고, Safari 메뉴 중 개발자용 > 해당되는 기기 > 웹뷰 클릭 (about:black나 웹뷰 이름이 따로 존재) (시뮬레이터나 디바이스로 테스트해도 무방하며, 테스트에는 시뮬레이터를 사용) 콘솔에서 네이티브로 message를 보내는 테스트도 가능 아래 메시지를 입력하고 엔터를 치면, Xcode에서 메시..
특정 문자 형태와 일치하는지? regex를 문자열을 정의한 후, regex와 확인하려는 문자 형태를 비교하여 확인 확인하는 방법은 range(of:options:)라는 String 메소드 사용 문자열내에서 특정 문자열이 존재하면 해당 문자열의 범위(NSRange)를 리턴하는 메소드 let regex = "[0-9]" let isContains = "2".range(of: regex, options: .regularExpression) != nil // true 정규식 예제 문자열 일부가 일치 문자열 범위는 대괄호 사용 [] let regex1 = "[0-9]" let test1_1 = "1".range(of: regex1, options: .regularExpression) != nil let test1..
목차) SwiftUI의 기본 - 목차 링크 Picker 개념 상호 배타적인 값들을 선택할때 사용하는 UI Picker는 아래처럼 선언되어 있는 구조체 특징은 SelectionValue가 Hashable이라는 것 struct Picker where Label : View, SelectionValue : Hashable, Content : View @State로 selectionOption을 주고 클로저 안에 Text를 삽입 앞에 들어가는 문자열 인수는 List와 같이 사용할때 표출 (아래에서 계속) var options = ["옵션1", "옵션2", "옵션3", "옵션4"] @State private var selectionOption = 0 Picker("Select Choice", selection: ..
목차) SwiftUI의 기본 - 목차 링크 Toggle 토글은 Label 타입을 가지고 있는 형태 struct Toggle where Label : View 토글을 사용할 땐, 토글이 켜져 있는지 여부를 결정하는 Bool 속성에 바인딩하여 사용 struct ContentView: View { @State var toggle1On = false var body: some View { VStack { Toggle(isOn: self.$toggle1On) { Text("@State Toggle: \(String(self.toggle1On))") } } } Toggle 클로저에 Text가 아닌 Label 사용도 가능 Toggle(isOn: self.$toggle5On) { Label("Flag", systemI..
1. Concurrent Programming - NSLock, DispatchSemaphore 사용 방법 2. Concurrent Programming - DispatchSemaphore로 코틀린의 CompletableDeferred 구현방법 3. Concurrent Programming - DispatchQueue의 serial, concurrent, async, sync 이해하고 사용하기 4. Concurrent Programming - Thread Safe Array 구현방법 (DispatchQueue의 barrier 사용) 5. Concurrent Programming - OperationQueue로 동적으로 작업 추가, 취소하는 모듈 구현방법 Operation Queue 동시성 프로그래밍에서 ..