일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Human interface guide
- swiftUI
- combine
- MVVM
- 클린 코드
- collectionview
- UICollectionView
- ios
- map
- UITextView
- 리펙터링
- 애니메이션
- SWIFT
- Clean Code
- uitableview
- Protocol
- uiscrollview
- rxswift
- Refactoring
- RxCocoa
- Xcode
- ribs
- 스위프트
- swift documentation
- clean architecture
- Observable
- tableView
- 리팩토링
- HIG
- 리펙토링
- Today
- Total
목록HIG(Human Interface Guidelines) (70)
김종권의 iOS 앱 개발 알아가기
데이터 입력 사용자가 지루하지 않도록 선택 사항을 주고, 그곳에서 선택하게끔 유도 적절한 default값을 제공할 것: 가능성이 높은 필드로 미리 default 설정하여 의사 결정이 최소화되어 편의성 제공 모든 필드 값이 작성되었는지 확인 후, 다음 버튼을 활성화 필드 값을 동적으로 확인하여, 사용자가 입력하는 동시에 어떤것이 틀린지 알 수 있도록 편의성 제공 텍스트필드에 placeholder를 제공하고, placeholder에 "아이디", "패스워드"가 표출된다면 따로 Label을 통해 필드를 설명 x * 참고 https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/data-entry/
Authentication Apple로 로그인을 사용하지 않는 경우: 암호 자동 완성을 사용 입력 시 적절한 keyboard 스타일을 표출하여 데이터 입력을 최소화 Face ID, Touch ID 가능하면 생체인증을 지원: 신뢰, 안전하고 친숙한 인증 방법이므로 사용자에게 편리함을 가져다 주는 이점 여러가지를 제공하지 말고 한 가지 인증 방법을 제공: 사용자 입장에서 인증 방법을 선택할 필요가 없는 경우, 가장 직관적 처음에 Face ID, Touch ID와 같이 하나만 제공한 후 초기 방법이 실패한 경우에만, 비밀번호 요청 인증 방법을 명확히 표출: Face ID를 사용하여 앱에 로그인하기위한 버튼의 title은 "로그인"이 아닌 "Face ID로 로그인"으로 할 것 Face ID, Touch ID를 ..
사용자 데이터 위치 / 건강 / 사진 / 카메라 / 블루투스 / 이메일 등 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: 이전 콘텐츠가 ..
로딩 중 로딩이 발생할 때 명확하게 표출: 가장 좋은 방법은 진행 사항을 표출하는 것이며, 최소한 ActivitySpinner 표출 로딩시간에 유저들에게 플레이나 앱에 대한 교육 소스를 표출 로딩은 각 상황에 맞게 사용할것 로딩의 종류 Activity Indicators Progoress Bars Network Activity Indicator * 참고 developer.apple.com/design/human-interface-guidelines/ios/app-architecture/loading/
* PageControl 코드: ios-development.tistory.com/397 Onboarding (PageControl) 사용해야 하는 이유: 새로운 사용자를 환영 빠르고, 재미있고, 교육적이므로 사람들이 방해받지 않고 앱을 최대한 활용할 수 있도록 경험을 제공 단 "선택적"으로 화면을 바로 넘길 수 있도록 설정하여 번거로움이 덜하도록 설계 Onboarding의 목적 사용자가 앱을 설정하는 것이 아니라 즐길 수 있도록 하는 것 Onboarding화면에는 설정과 같은 세부 정보를 포함하지 말것 Onboarding 표출 횟수는 한번 Onbaording이 두 개 이상이라면, 건너띌 수 있는 방법 제공 재방문 사용자에게는 Onboarding을 다시 보지 않도록 skip 도움이 필요한 내용들을 Onb..
시작화면 제공 사용자에게 앱의 반응이 빠른 느낌을 제공 - 앱이 시작되는 순간 시작 화면을 표시 LaunchScreen화면은 첫 번째 앱 화면과 비슷하고, 주의를 끌지 않는 화면으로 설계 적절한 방향으로 시작되게 설정 특별하지 않고 세로모드에서 가로모드로 회전한 경우, 왼쪽과 오른쪽 관계없이 올바르게 방향 조정 필요 설정 정보를 미리 묻지 않는 것 설정 정보를 미리 묻는것은 특정 사람을 대상으로 앱이 설계된 것이므로, 대부분의 사람이 타겟이 되도록 설계 예시) 사진 저장 설정 정보를 미리 묻는 경우 -> 사진 저장 기능을 사용하지 않는 사용자 대상이 되지 않는 설계 사람들이 앱을 처음 열때 요청하는 정보를 미리 제공하도록 하고 나중에 앱 설정에서 수정할 수 있도록 제공 앱에 '인앱 라이선스 계약 및 면책..