일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리펙토링
- Xcode
- 클린 코드
- SWIFT
- uitableview
- ribs
- uiscrollview
- Observable
- 리펙터링
- clean architecture
- Human interface guide
- Protocol
- 스위프트
- UITextView
- ios
- combine
- swift documentation
- tableView
- Refactoring
- MVVM
- RxCocoa
- collectionview
- UICollectionView
- rxswift
- Clean Code
- HIG
- map
- swiftUI
- 리팩토링
- 애니메이션
- Today
- Total
목록HIG (58)
김종권의 iOS 앱 개발 알아가기
LaunchScreen 앱의 첫 번째 화면과 거의 동일한 디자인을 지향 거의 동일하면 자연스러운 플래시 경험을 줄 수 있지만 앱 실행시 완료될 때 보이는 요소가 다르다면, 사용자 입장에서 어색한 영향을 끼치는 점 존재 화면이 거의 비슷하다면 사용자 입장에서는 시간이 덜 걸려, 빠르다고 생각하는 긍정적인 영향 선사 시작화면에 텍스트를 포함하지 말것: Launch Screen은 Localizable되지 않으므로 텍스트 금지 Launch Screen화면은 광고하는 화면이 아니므로 브랜딩 로고나 기타 요소를 포함하지 않고 단색으로만 표시하여 사용 대부분의 앱에서는 로고를 Launch Screen으로 사용하는데, 잘못된 접근방법 Launch Screen의 핵심은 사용자 입장에서 앱을 시작하는데 최소한의 로딩을 경..
다크 모드 iOS 13+ 이상에서 시스템 전체 모양을 다크 모드로 선택 가능 배경은 Views, Menu, Control에 비해 더 어두운 팔레트를 사용하고 컨텐츠는 밝은색으로 하여 돋보이도록 표출 시력이 낮은 시각장애인은 대비가 낮은 텍스트를 읽기 힘들기 때문에 다크 모드에서 대비를 증가하는 것이 필요 다크 모드 색상 되도록이면 dynamic system color를 사용: 다크 모드는 동적이므로, pop over나 modal sheet와 같이 인터페이스가 위로 덮을 때 덮는 View의 색상들이 자동으로 (조금 밝게)변경되므로 hard coding 지양하고 dynamic system color 사용 modal 시 덮는 View의 색상 변경: Base -> Elevated dynamic system co..
색상 color를 systemGray, systemDark처럼 지정하지 않고, dynamic system color를 사용할 것 dynamic system color는 다양한 환경 변수, 릴리즈마다 다른 부분을 자동으로 매핑되는 장점이 존재하므로 앱 전체적으로 보색을 사용하지 않고 파스텔을 사용: 산만하지 않고 조화를 이루도록 하기위함 앱 로고와 어울리는 제한된 색상을 사용: 브랜딩화 하기위함 앱 전체에서 interface UI 색상 컨셉을 미리 선택: ex) Note앱의 interface 색상은 노란색, 캘린더앱은 빨각색 interface UI와 일반 UI와 색상 대비를 할 것: 사용자가 어디를 탭하면 동작하는지 쉽게 알기 위함 가급적 system 색상으로 사용: 시스템에서 자동으로 다크모드도 대응되므..
브랜딩 훌륭한 앱은 글꼴, 색상, 이미지를 모두 연관시켜서 고유한 브랜드 아이덴티티를 표현 브랜딩 방법 세련되지만 눈에 띄지 않도록 설계: 앱 내부의 인터페이스에서 앱 아이콘의 색상을 사용하는 것이 좋은 방법 ex) 위 메모앱과 같이, 앱 아이콘의 색에 노란색과 흰색이 있을 때 실제 앱 내부의 내용에도 노란색, 흰색으로 구성 iOS가 아닌 다른 플랫폼에서 사용가능하더라도, 앱이 iOS앱처럼 느껴지도록 직관적이고 탐색하기 쉽도록, 브랜딩이 우선되어 iOS가 아닌 느낌을 주는 것을 지양하기 위해 희석되지 않게끔 주의가 필요 앱 이름이나 이미지에 Apple 상표가 표시되어서는 안되는 점을 주의 * 참고 https://developer.apple.com/design/human-interface-guideline..
애니메이션 과도한 애니메이션이나 불필욯나 애니메이션은 사용자로하여금 몰입형 경험을 방해하는 효과 (산만해지는 효과 존재) 물리적 법칙에 자연스러운 경험을 제공: 화면 상단에서 아래로 슬라이드 후 다시 위로 슬라이드하여 닫을 수 있어야 사용자에게 자연스러운 경험을 제공 몰입을 위해 일관된 애니메이션이나 기본으로 제공되는 애니메이션을 사용 * 참고 https://developer.apple.com/design/human-interface-guidelines/ios/visual-design/animation/
평가 요청 평가를 요청할 때 특정 온보딩중이 아닌 특정 생산성 작업을 완료했을때 요청: 섣부른 평가는 사용자에게 거부감을 느끼게 하는 부정적인 효과 시간에 민감한 작업중이나 스트레스가 많은 작업을 수행할 때 평가 요청을 지양 평가 요청 시기는 최소 1 ~ 2주 간격 평가 UI 시스템에서 제공하는 UI 사용: 사용자에게 친숙한 UX 버튼이나 기타 컨트롤을 사용하여 피드백을 요청x * 참고 https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/ratings-and-reviews/
알림 앱 이름이나 아이콘을 따로 포함하지 않아도, 시스템에서 각 알림 상단에 이 정보를 자동으로 표출 알림을 보완하기 위해 소리 제공 - UNNotificatinoSound 알림 세부 정보 보기에 4개의 작업 단추가 포함될 수 있고, 앱을 열 필요가 없는 시간 절약 작업을 수행할수 있도록 제공 * 참고 https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/notifications/
제스처 표준 제스처 사용을 지향: 사용자들은 익숙한 제스처를 선호하며 다른 방법을 배우는 것은 좋아하지 않은 성향 표준 제스처가 아닌 경우, 앱의 복잡성 증가 표준 제스처 확인 (중요): https://developer.apple.com/design/human-interface-guidelines/ios/user-interaction/gestures/ edge화면에 존재하는 기본 제스처 (swipe back, home으로 이동)를 방해하지 않도록 설계 swipe back을 통해 뒤로가기 제스처를 제공 여러 손가락 제스처를 사용하여 경험을 향상 표준 제스처 중 대표적인 것 Tap: '>' 아이콘은 누를 경우, 상세화면으로 이동 drag: edit모드에서 cell 이동 Swipe: cell을 왼쪽으로 스와이..