일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uiscrollview
- clean architecture
- SWIFT
- 리팩토링
- 리펙토링
- UICollectionView
- ribs
- HIG
- Observable
- rxswift
- 클린 코드
- 애니메이션
- uitableview
- 스위프트
- tableView
- collectionview
- Protocol
- ios
- Xcode
- Human interface guide
- Clean Code
- combine
- swiftUI
- RxCocoa
- map
- swift documentation
- UITextView
- Refactoring
- MVVM
- 리펙터링
- Today
- Total
목록HIG (58)
김종권의 iOS 앱 개발 알아가기
파일처리 사용자 입장에서 파일 시스팀에 대해서 생각하지 않도록, 앱이 파일과 함께 동작하는 경우 파일 처리를 가능한 한 줄여야 베스트 자동 저장을 사용: 사용자에게 명시적으로 파일을 저장하도록 하지 않고 작성 중 앱을 종료해도 자동으로 저장된 상태를 유지 사용자는 모든 장치에서 사용하도록 기대하고 있으므로 로컬 전용 저장이 아닌 iCloud와 같은 서비스를 통해 클라우드 기반 파일 저장소 지원 UI는 새로운 아이콘이 아닌, 시스템 아이콘을 통해 직관적인 경험을 제공 파일에 관한 내용은 미리보기를 통해, 해당 앱이 backgound에 가지 않아도 확인 할 수 있도록 제공 (위 사진 참고) 다른 앱과 파일 공유 기능 제공 * 참고 https://developer.apple.com/design/human-in..
피드백 사용자들이 앱이 수행하는 작업을 파악하고 다음에 수행 할 수 있는 작업을 발견하고 작업 결과를 이해하는데 도움 다른 콘텐츠랑 어울리도록 비슷한 색상으로 설정할 것 (위 화면은 다크모드이므로 회색으로 하면 더욱 best) 불필요한 경고를 되도록 지양: 필수 정보가 포함되지 않은 경고를 너무 많이 보게되면 향후 경고를 무시하는 방법을 빠르게 배우게 되는 현상 존재 * 참고 https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/feedback/https://developer.apple.com/documentation/uikit/drag_and_drop
데이터 입력 사용자가 지루하지 않도록 선택 사항을 주고, 그곳에서 선택하게끔 유도 적절한 default값을 제공할 것: 가능성이 높은 필드로 미리 default 설정하여 의사 결정이 최소화되어 편의성 제공 모든 필드 값이 작성되었는지 확인 후, 다음 버튼을 활성화 필드 값을 동적으로 확인하여, 사용자가 입력하는 동시에 어떤것이 틀린지 알 수 있도록 편의성 제공 텍스트필드에 placeholder를 제공하고, placeholder에 "아이디", "패스워드"가 표출된다면 따로 Label을 통해 필드를 설명 x * 참고 https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/data-entry/
사용자 데이터 위치 / 건강 / 사진 / 카메라 / 블루투스 / 이메일 등 iOS 14.5+ 부터 IDFA(IDentifier for Advertising)에 접근하려면 App Tracking Transparency 접근 요청이 필요 App Tracking Transparency, DIFA 개념 참고 데이터 접근 요청 관련 내용은 App Store에서 표출되도록 미리 정보를 제공 필수: App store connect에서 설정 App Store에 권한 정보가 표출된 카카오내비 앱 예시 안내문구 앱이 데이터를 수집하는 방법과 이유를 모호하지 않게 설명 - 두 가지가 들어가 있지 않으면 reject 사유 나쁜 예1) "더 나은 경험을 위해서는 마이크 접근이 필요합니다." - 이유가 모호한 문장 나쁜 예2) ..
화면전환 스타일의 종류 Hierarchical Navigation > NavigationViewController 목적지에 도달할 때까지 화면 당 하나를 선택하는 방식 다른 목적지로 이동하려면 back하여 되돌아왔던 길을 돌아가고 다시 시작하여 다른 선택하여 이동 ex) 설정, 메일 앱 Flat Navigation > TabBarController 여러 콘텐츠 카테고리간 전환 ex) 음악, App Store Content Driven or Experience-Driven Navigation 콘텐츠를 자유롭게 이동 or 콘텐츠 자체가 탐색을 정의 ex) 몰입형 앱 - 게임, 도서 Navigation 주의할 점 swipe back 기능을 넣어서 편의를 줄것 사용자가 익숙하며 직관적으로 알고 있는 표준 탐색 ..
Modality란 사용자의 이전의 컨텍스트와 별개이며 종료하려면 명시적인 작업이 필요한 임시 모드로 컨텐츠를 표시하는 기술 Modal의 장점 modal view - 사용자들이 독립적인 작업이나 밀접하게 관련된 내용에 집중할 수 있도록 분리하는 기능 alert modal - 사용자들이 중요한 정보를 받고 필요한 경우, interaction할 수 있도록 하는 기능 Modal의 presentation style Sheet: 기존 콘텐츠를 부분적으로 덮고 커버되지 않은 모든 영역을 흐리게 처리하여, 기존 콘텐츠에 상호 작용을 방지하는 스타일 사용하는 경우 - 복잡한 작업을 수행할 수 없는 비 몰입형 모달 컨튼츠 버튼을 누르거나 swipe하여 modal view를 닫는 형태 Full Screen: 이전 콘텐츠가 ..
* PageControl 코드: ios-development.tistory.com/397 Onboarding (PageControl) 사용해야 하는 이유: 새로운 사용자를 환영 빠르고, 재미있고, 교육적이므로 사람들이 방해받지 않고 앱을 최대한 활용할 수 있도록 경험을 제공 단 "선택적"으로 화면을 바로 넘길 수 있도록 설정하여 번거로움이 덜하도록 설계 Onboarding의 목적 사용자가 앱을 설정하는 것이 아니라 즐길 수 있도록 하는 것 Onboarding화면에는 설정과 같은 세부 정보를 포함하지 말것 Onboarding 표출 횟수는 한번 Onbaording이 두 개 이상이라면, 건너띌 수 있는 방법 제공 재방문 사용자에게는 Onboarding을 다시 보지 않도록 skip 도움이 필요한 내용들을 Onb..
시작화면 제공 사용자에게 앱의 반응이 빠른 느낌을 제공 - 앱이 시작되는 순간 시작 화면을 표시 LaunchScreen화면은 첫 번째 앱 화면과 비슷하고, 주의를 끌지 않는 화면으로 설계 적절한 방향으로 시작되게 설정 특별하지 않고 세로모드에서 가로모드로 회전한 경우, 왼쪽과 오른쪽 관계없이 올바르게 방향 조정 필요 설정 정보를 미리 묻지 않는 것 설정 정보를 미리 묻는것은 특정 사람을 대상으로 앱이 설계된 것이므로, 대부분의 사람이 타겟이 되도록 설계 예시) 사진 저장 설정 정보를 미리 묻는 경우 -> 사진 저장 기능을 사용하지 않는 사용자 대상이 되지 않는 설계 사람들이 앱을 처음 열때 요청하는 정보를 미리 제공하도록 하고 나중에 앱 설정에서 수정할 수 있도록 제공 앱에 '인앱 라이선스 계약 및 면책..