일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 하향식 접근
- 설계 재사용
- 알고리즘
- OOP
- 추상화
- 합성
- 의존성
- OCP
- 객체지향
- 책임주도설계
- dip
- 상속 조합 폭발적 증가
- '기존 설계 재사용
- 다형성
- 오브젝트
- 런타임 의존성
- 일관성 있는 협력
- 믹스인
- 행동 호환성
- iSP
- Swift#flatMap#map#Monad#함수형 프로그래밍#Optional
- 유여난 설계
- 유연한 설계
- 서브 타이핑
- 객체 생성 사용 분리
- 상속
- 메서드를 통한 해결
- Apple # HIG #iOS15 #iOS14 #Human #Interface #Guidelines #Apple developer # Apple human interface guidelines
- 컴파일 타임 의존성
- 명령-쿼리 분리
- Today
- Total
목록HIG(iOS14) (23)
도니의 iOS 프로그래밍 세상
주기적으로 알람을 보낼 때도 있고, 중요한 정보를 언제든지 보낼 수 있다. 이때 디바이스가 사용 중 혹은 lock 상태이든 간에 notification center에서 보내주게 된다. 알람은 로컬 와 remote가 존재하며 local은 디바이스에서 기원하고 보내진다. remote notification을 하려면, push notification이라고 하는 서버로부터 오는 것이며 서버를 직접 운용해야 한다. 그렇지 않으면 푸시 notification을 받을 수 없기 때문이다. Notification의 동작 방식은 두 가지로 존재하고 커스텀 한 디테일 뷰가 존재한다. detail view에는 네 개의 버튼을 넣을 수 있다. 메일 같은 게 왔을 때 actionable notification을 네 개까지..
iOS13이후로, iPad가 multiple window를 지원하기 시작했습니다. task manager에서도 보면 두 개의 사파리가 존재하는 등 기본적으로 애플이 제공하는 수 많은 앱들은 멀티태스킹 환경을 지원하고 있다. 통합버전이었던 아이폰과 아이폰 용 OS가 iOS와 iPad OS로 분리되었다. iPad 전용 OS와 macOS와의 중간인 Catalyst라는 것이 존재하게 되어, iPad 용으로 만들어서 Catalyst를 통해, 조건을 만족시킨다면 맥에서도 구동할 수 있게 되었다. iPad에서 멀티윈도 작동시키기 아이패드 앱들은 콘텐츠를 제공하기 위해서 두 가지 타입의 윈도를 사용한다. primary window는 모든 앱의 오브젝트에 대한 접근과, 그것들과 관련된 액션을 통해서 앱의 완전한 계층..
1. 외부로 나가는 오디오에 대해서 적절하게 반응해야한다. 때때로 우리앱이 다른 앱이나 시스템 그자체로 나오는 오디오에 의해서 방해를 받을 수 있다. 전화가 오거나 시리가 음악을 재생한다면 앱의 오디오를 방해할수있다. 그러한 상황에서, 앱이 사람들의 기대를 충족시킬만한 대응을 해야한다. 음악, 팟캐스트, 오디오북들을 재생하는 것과 같은 주요 오디오 방해요인들에 대해서, 앱은 무기한으로 오디오를 멈추게 된다. GPS 알림과 같이 더더욱 짧은 알람에서, 우리의 앱은 오디오 볼륨을 일시적으로 낮추거나, 그것의 오디오를 멈추거나 혹은 방해가 끝날때 오디오가 재개됩니다. 2. 백그라운드에서 사용자가 시작한 task를 마무리시켜야한다. 누군가 작업을 시작할 때, 그들은 다른앱으로 전환하더라도 이전 앱의 작업이 ..
multitasking 중 하나인 slide over의 예시 멀티태스킹 기능을 특별히 구현해야 하는 것은 없고 Os에서 제공하는 기능으로서 잘 사용할 수 있도록 준비를 해두면 된다. iOS3까지는 멀티태스킹이라는 것이 존재하지 않았다. 전면에 나온 앱 외에 앱 스위칭을 할 시, 작은 메모리를 잡고 있지만 아무것도 할 수 없었지만 iOS4부터 가능했고, 9부터 여러 기능들이 추가되었다. 그리하여 iOS3 이전과 iOS4 이후 그리고 ipad 큰 화면을 잘라서 사용하게 되면서 앱에서 준비해야 할 것들이 늘어났다. 멀티태스킹은 iOS 디바이스에 있는 멀티태스킹 인터페이스를 통해서 하나의 앱에서 다른 앱으로 언제든지 전환할 수 있도록 한다. ipad에서, 멀티태스킹은 slide over, split view..
AR 기술의 대표적인 예시 증강 현실(Augmented Reality) AR은 가상의 물체를 현실 세계와 매끄럽게 혼합함으로써, 매력적이고 몰입하게 만드는 경험을 제공할 수 있다. 현실 세계의 스크린을 나타내기 위해서 카메라를 사용할 때, 앱은 물체가 정말로 존재할 것 같은 환영을 만들어, 이러한 환영을 가진 3차원 가상물체를 겹쳐놓는다. 앱이 제공하는 경험에 따라서 사람들은 물체를 다른 각도에서 보고, 제스처나 움직임을 사용하면서 물체들과 소통하기 위해서 기기를 조정할 것이며, 여러 명이 다른 사람들과 AR을 함께 즐길 수 있게 되었다. 가능한 장치에서만 AR 기능을 제공해라. AR이 주된 앱에 목표라면, AR 키트를 지원하는 기기에서만 동작하도록 설정해야 한다. (앱 개발 시 환경설정에 넣을 ..
많은 앱에서는, 사용자가 기기를 흔들어 타이핑 또는 삭제와 같은 작업을 되돌리거나 취소할 수 있습니다. 이 방식으로 실행되었을 때, 사용자에게 실행 전으로 돌아가기 또는 재실행 작업을 확인 또는 취소하라는 요청을 보내게 됩니다. 1. 간략하고 정확하게 되돌아가거나 재실행될 작업을 표시해야 합니다. 되돌아가기나 재실행은 자동적으로 "undo"나 "redo"가 포함된 접두어를 포함하는 제목을 알려주게 됩니다. 2. 되돌아가기나 재실행에 대해서 흔들기 제스처를 사용한다면, 다른 액션에 대해서는 해당 제스처를 사용해서는 안 된다. 계획적으로 흔들기 제스처에 대해서 다양한 의미를 제공한다고 할지라도, 사람들을 혼란스럽게 하고, 앱에 대해서 전혀 예상하지 못하도록 만들 수 있다. 3. 되돌아가기와 재실행..
기술적으로 아이폰에는 Taptic 엔진이 존재해서, 이것이 햅틱 경험을 증강시켜주는 역할을 한다. 햅틱은 화면상에 인터페이스와 상호작용하는 경험을 강화시키기 위해서 사람의 촉감과 관련된 감각을 유발한다. 예를 들어, 애플 페이 거래가 확실시되는 것을 강조하기 위해서 시각적이고 청강적인 피드백과 더불어 시스템에서 햅틱을 사용한다. 햅틱은 피커를 통해서 스크롤 하거나 스위치를 온/오프 하는 것과 같은 터치 제스처나 상호작용을 향상시키는 것도 가능합니다. 지원하는 아이폰 모델일 때, 몇 가지 방식으로 앱 내부에 햅틱을 넣을 수 있다. 1). 표준 UI 요소를 사용해라.(스위치나, 슬라이더, 피커 등 애플이 디자인한 햅틱이 디폴트로 제공된다) 2). 적절하다면, 피드백 생성기를 사용하여 알람, 임팩트, ..
사람들은 파일들이 만들어지고, 보여지고, 처리될 때 파일시스템에 대해 생각해서는 안된다. 만약 앱이 파일과 함께 동작한다면, 가능한 파일 핸들링을 경시하도록 해야한다. 1. 취소되거나 삭제되지 않는 한 작업은 저장되어야 한다. 명백하게 세이브파일을 명백하게 만들도록 하지 말고 자동으로 파일을 열고닫을때, 다른앱으로 전환될 때 혹은 정기적으로 변화를 저장해야한다. 기존 파일을 편집하는 동안, 편집 내용이 캡쳐된 시기를 명백하게 하기 위해 저장 및 취소옵션이 더 적합할 때도 있다. 2. 로컬파일만 만들것이냐는 옵션을 줄 필요가 없다. hand-off를 통해서 모든 장비에서 콘텐츠 사용경험을 이어나갈수 있도록 특정 로컬에서 저장하지 않고 클라우드 기반 서비스로 싱크를 맞춰야 한다. 그렇기 때문에 아이클..
피드백은 사람들이 현재 앱은 무엇을 하는지 알고, 다음에 무엇이 발생할지 발견하고, 액션에 대한 결과를 이해하는 데에 도움을 주는 것입니다. 1. 상태나 기타 유형의 피드백을 인터페이스에 방해하지 않는 선에서 통합한다. 예를 들어 메일을 보낼 때, 아래쪽에서 프로그레스바가 나와서 메일의 업데이트 상태 등을 표시하는 것과 같이 사용자를 방해하지 않는 형식으로 피드백을 줘야 한다. 이상적으론 액션이나 방해 없이 중요한 정보를 사용자가 받을 수 있도록 해야 하며, 중요 정보들과 스크린에서 경쟁해선 안되고 곁눈질만으로도 정보의 상태를 인지할 수 있도록 해야 한다. 2. 불필요한 알람(alert)을 피해야 한다. alert는 사용자에게 짜증을 유발할 수 있는 UI이기 때문에, 작업이 실패했음을 알리는 것을..
터치스크린에서 이루어지는 제스처를 통해 사용자는 iOS 디바이스와 상호작용하고 있다. 이때 제스처들은 콘텐츠들에 대한 긴밀한 개인적인 연결성을 이끌어내고, 화면상의 객체들을 직접적으로 조종한다는 느낌을 향상시켜준다. 1. 표준 제스처를 사용해라 사람들은 이미 표준 제스처에 익숙하기 때문에, 기존의 것과 다른 새로운 제스처를 배우는 것을 좋아하지 않는다. 예외적으로, 게임이나 몰입형 앱들은 사용자의 재미를 위해서 다른 제스처가 존재할 수 있으나 결국 제일 중요한 것은 표준 제스처를 사용하는 것이다. 2. 표준 제스처를 사용해서 다른 액션이 수행되도록 해선 안된다. 예를 들어 핀치, 핀 아웃을 하였는데 확대/축소가 아닌 다른 액션이 되어버린다면 사용자들에게 혼란을 야기할 수 있다. 3. 전체 시스..