일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- map
- UICollectionView
- swift documentation
- 리펙터링
- Refactoring
- tableView
- Protocol
- 스위프트
- 리팩토링
- collectionview
- clean architecture
- SWIFT
- Observable
- MVVM
- uitableview
- UITextView
- 클린 코드
- uiscrollview
- Clean Code
- HIG
- ios
- 애니메이션
- swiftUI
- 리펙토링
- Xcode
- rxswift
- combine
- RxCocoa
- Human interface guide
- ribs
- Today
- Total
목록SWIFT (948)
김종권의 iOS 앱 개발 알아가기
Picker 사용자들이 선택할 수 있는 스크롤 가능한 목록을 하나 이상 표출 iOS 14+에서는 Date Pickers 제공 (아래 내용 참고) 스크롤에 있어서 예측 가능하고 논리적으로 정렬된 값을 사용 Picker를 표출할 때 화면전환을 하지 않고 Picker는 일반적으로 화면 하단에서 나타나도록 설계 Date Picker iOS 14+ 터치, 키보드를 통해 날짜와 시간 둘 다 선택할 수 있는 인터페이스 DatePicker 추가 datePicker에서 제공하는 모드 날짜: 월 / 일 / 년도 시각: 시간 / 분 / AM / PM 날짜와 시간 카운트 다운 타이머: 최대 23시 59분까지 시간과 분을 표출 공간이 제한되어 있는 경우 간결한 DatePicker 사용 DatePicker 클래스: https:/..
Architecture vs SOLID Architecture는 빌딩, SOLID는 좋은 벽돌 SOLID를 통해서 좋은 아키텍처를 정의 SOLID: 함수와 데이터 구조를 클래스로 배치하고, 이 클래스들을 결합하는 방법에 대한 이론 cf) architecture vs design pattern vs SOLID architecture: 프로그램 내에서 큰 구조로 구성되어 다른 구성 요소들을 관리 방법으로 넓은 개념 design pattern: 특정 유형의 문제를 해결하는 방법으로 좁은 개념 SOLID: design pattern은 특정 문제 유형을 해결하는 개념이고, SOLID는 아키텍처를 위하여 세부 구조를 어떻게 배치하고 결합하는지에 관한 개념 SOLID의 목적 변경에 유연 이해하기 쉬움 많은 소프트웨어..
튜플에서의 비교 연산자 튜플의 type이 각각 같은 경우 비교 가능 let first = (1, "a") > (2, "b") // false let second = (1, "a") > (1, "b") // false let third = (2, "c") > (1, "b") // true Nil-Coalescing 연산자 optional binding이라 하지 않고 Nil-Coalescing하는것을 주의 var data: String? = "test" print(data ?? "default") Nil-Coalescing 연산자와 동일 코드 data != nil ? a! : b One-Sided Ranges Index에서 접근 var names = [1, 2, 3, 4, 5] for name in name..
Int Swift는 현재 플랫폼의 bit에 따라 적용 32bit 플랫폼 -> Int는 Int32와 동일 64bit 플랫폼 -> Int는 Int64와 동일 UInt UInt또한 Int와 동일하게 플랫폼의 bit에 따라 적용 Type Safety, Type Inference swift는 type safe 언어이므로, 컴파일타임에 오류를 표출하므로, 개발 프로세스에서 빠른 오류 포착 용이 만약 타입을 지정해주지 않는 경우 컴파일 타임에 Type Inference // Type Inference let age = 42 // Int로 추론 let pi = 3.141592 // Double로 추론 Type Aliases typealias 키워드는 type의 별칭을 정의 class Map { typealias Zoo..
Page Control indicator image를 통해서 flat 목록 페이지를 표출 스크롤되는 indicator row는 사용자가 원하는 페이지를 찾기 위해 목록을 탐색하는데 도움 인터렉션 - swipe: 왼쪽에서 오른쪽으로 미는 동작 or 오른쪽에서 왼쪽으로 미는 동작 scrubbing 중 페이지 전환에 애니메이션을 삽입을 지양: 사용자들이 매우 빠르게 scrub할 수 있으며, 애니메이션이 들어가면 산만한 시각적 영향 인터렉션 - scrub: page control을 꾹 누른 후 다른 페이지로 이동 Page Control의 indicator 스타일 3가지 Automatic: 사용자가 control과 상호작용 할때만 배경을 표시 page control이 현재 화면의 기본 탐색 control이 아닌 ..
Label 화면 인터페이스 요소를 설명하거나 짧은 메시지를 제공 사용자 입장에서 간결함을 느끼도록 최대한 짧게 유지 사용자가 시스템에서 text size를 변경할 때 반영이 되도록 dynamic type size 적용 string에 관한 애플 가이드 * 참고 https://developer.apple.com/design/human-interface-guidelines/ios/controls/labels/
Stored Property 정의: class, struct에서 instantce의 일부로 저장되는 상수(let) 또는 변수(var) default 값 또는 init을 사용하여 값 할당 lazy property: 해당 property가 사용될 때 초기화 let으로 선언 불가: let은 초기화가 완료 되기 전에 항상 값을 가져야 하므로 property의 초기 값이 인스턴스의 초기화가 오나료 될 때까지 알 수 없는 외부 요인에 의존할 때 사용 property의 초기 값에 복잡하거나 계산 비용이 많이 드는 설정이 필요할 때 or 필요할 때까지 수행해서는 안되는 경우에 사용 lazy 주의 사항: lazy property는 여러 스레드에서 동시에 접근되고, 아직 초기화 되지 않은 경우 한 번만 초기화 된다는 보장..
Edit Menus TextField, TextView, WebView, ImageView에서 요소를 길게 터치하거나 두 번 탭하여 콘텐츠를 선택하고 복사 및 붙여넣기와 같은 편집 옵션 컨텍스트에 적합한 명령어를 표출 일반적인 구성: cut, copy, paste, select, select all, delete 위 명령 중 하나를 선택적으로 비활성화 하는 기능이 존재 image, text와 같은 요소를 선택하지 않는 부분에서는, 메뉴에 copy, paste와 같은 항목이 표출되지 않도록 구현 메뉴의 모양은 변경할 수 없지만 위치를 변경할수 있기 때문에, 중요한 내용이나 인터페이스의 일부를 가리지 않도록 필요의 경우 edit menu의 배치를 조정 edit menu와 동일한 기능을 가진 다른 contro..