| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 리팩토링
- swiftUI
- MVVM
- uiscrollview
- tableView
- 스위프트
- 리펙토링
- UITextView
- swift documentation
- Human interface guide
- 클린 코드
- map
- SWIFT
- rxswift
- scrollview
- 애니메이션
- collectionview
- ios
- ribs
- RxCocoa
- Observable
- Clean Code
- UICollectionView
- Protocol
- uitableview
- Xcode
- clean architecture
- HIG
- combine
- Refactoring
- Today
- Total
목록ios (1133)
김종권의 iOS 앱 개발 알아가기
Slider 엄지 손가락이라고하는 컨트롤이 있는 가로 트랙 손가락으로 슬라이드하여 미디어 재생 중 화면 밝기와 같은 최소값과 최대값 사이 설정 슬라이더의 값이 변경될 경우 최소값에서 부터 엄지 손가락 사이의 트랙 부분이 색상으로 채워지는 형태 UISlider 사용 슬라이더 트랙 양쪽에있는 이미지를 한눈에 비교가 되는 이미지를 삽입 ex) 이미지 크기를 조정하는 Slider: 왼쪽에는 작은 이미지 아이콘, 오른쪽에는 큰 이미지 아이콘 사용 Slider를 사용하여 오디오 볼륨을 조정하는 것을 지양 볼륨 지정은 MPVolumeView를 사용: 볼륨 지정 Slider와 오디오 출력 장치를 변경하기 위한 컨트롤이 내장되어 있는 View * 참고 https://developer.apple.com/design/hum..
LSP 부모 클래스의 객체 대신에 자식 클래스의 객체로 치환해도 프로그램의 행위에 변화를 주지 않아야 한다는 원칙 자식 클래스 or 구현체를 만들 때, 상위 타입의 객체로 치환해도 문제가 없는지 파악해야 한다는 의미 인터페이스를 구현한 구현체 역시도 LSP원칙을 준수 목적: 치환 가능성을 조금이라도 위배하면, 추후 상당량의 별도 메커니즘이 필요 정사각형 - 직사각형 문제 사각형의 하위 타입으로 정사각형으로 구성하면 LSP위배 User입장에서는 Interface인 Reactangle의 성격을 생각하고 사용하지만, Square에서의 성격이 다른경우가 존재하면 오류 발생 그 오류를 해결하기 위해서는 상당량의 별도 매커니즘이 User에 필요하게 되는 악순환 발생 예시) setH, setW 호출 후 넓이 계산하는..
* Pull-Down Menu는 Context Menu와 유사하므로 주의: https://ios-development.tistory.com/540?category=980570 [iOS - HIG] 45. Context Menus Context Menus 상황에 맞는 메뉴를 제공하여 인터페이스를 복잡하게하지 않고 화면 항목과 관련된 추가 기능에 엑세스 할 수 있도록 표출 Peek and Pop: long touch 시 실행 사용 가이드: https://developer.appl.. ios-development.tistory.com Pull-Down Menus iOS14+ 현재 컨텍스트에서 유용한 작업 목록을 나열하는 메뉴 메뉴를 표시하는 버튼 근처에 메뉴가 열리므로 사용자들이 수행중인 작업 간의 관계를 즉..
Progress Indicator 앱이 콘텐츠를 로드하거나 긴 데이터 처리 작업을 수행할 때까지 사용자가 정적 화면을 보는게 아닌, indicator를 보는 형태 Activity Indicators Refresh Content Controls과 구분 회전하는 Activity Indicator 사용자가 얼마나 오래걸릴지 예측할 수 있게끔 Activity Indicator보다는 Progress bar를 지향 사용자들은 정지된 화면을 보고 프로세스가 중단되었다고 느끼므로, 항상 Activity Indicator를 움직이도록 설정 작업이 완료 될때까지 기다리는 동안 사용자에게 유용한 정보를 제공 Progress Bars 왼쪽에서 오른쪽으로 채워지는 트랙 형태 앱이 바쁜 것처럼 보이도록 부정확한 진행 정보를 표출..
OCP 개념: 기능이 추가될때 소프트웨어 개체는 확장을 하는 방향이며, 변경은 최소화 더욱 정확한 개념: 의존관계를 잘 설정하여 특정 항목이 변경되어도 중요한 interactor같은 컴포넌트는 변경하지 않아도 되는 형태 목적: 시스템을 확장하기 쉬운 동시에 변경으로 인해 시스템이 너무 많은 영향을 받지 않도록 하는 것 OCP 아이디어 아이디어: A, B 관계에서 A컴포넌트에서 변경 발생 -> B컴포넌트는 수정하지 않는 방법? B컴포넌트가 A컴포넌트에 의존하고 있지 않으면 해결 의존성을 관리하려면 Interface를 통해 의존 관계를 변경 예시 View에서 변경 -> Presenter 보호 Presenter에서 변경이 발생 -> Controller 보호 View, Presenter, Controller, ..
모듈 구현 시 응집도를 높이기 위한 방법 외부에서 읽기만 가능하고 변경은 내부에서만 가능한 property 설정 public private(set) 사용 -> swift에서 get메서드가 필요없는 이유 private(set) 자세한 개념 참고 class Person { public private(set) var name: String init(name: String) { self.name = name } } var jake = Person(name: "jake") print(jake.name) // jake jake.name = "wiki" // error 발생 Computed Property의 용도 getter / setter 용도의 computed property storedProperty는 언더바를..
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의 목적 변경에 유연 이해하기 쉬움 많은 소프트웨어..
