yudonlee의 등록된 링크

 yudonlee로 등록된 티스토리 포스트 수는 27건입니다.

[UIKit] IntrinsicContentSize - 1탄 기초편 [내부링크]

IntrinsicContentSize IntrinsicContentSize는 Intrinsic(본래 갖추어진) + Size => 본래 갖추어진 사이즈를 의미합니다. 애플 문서에서의 정의를 볼까요? View 자체의 속성만을 고려한 view의 자연스러운 사이즈를 의미합니다. 따라서, View들은 자체 속성만을 고려한 "타고난" 사이즈가 존재한다고 이해하시면 좋습니다. 이는 매우 중요한 개념인데요, 타고난 크기가 존재한다는 것만으로도 우리는 별도로 처리해야할 일들이 적어집니다. 어떤 일들이 줄어드는지 밑에서 확인하겠습니다. IntrinsicContentSize를 갖거나, 갖지 못하는 것들 UIKit에서는 많은 View종류들이 존재합니다.(UITextView, UILabel, UITextField, UIView..

[Swift] COW(Copy On Write) - 메모리 절약 방법 - Structure 응용편, OS응용편 [내부링크]

이전 포스팅에서는 Structure와 Class의 차이에 대해서 공부했습니다. 그때 Value Type인 Structure에서 반드시 값의 복사를 통해서 값을 전달한다고 했지만, 반드시 그런것은 아닙니다! Swift의 Structure의 추가 설명에서 "Collection Type인 array, dictionary, String은 복사로 인한 퍼포먼스 코스트를 줄이기위해 최적화된 별도의 방식을 사용합니다"라고 나와있습니다. 그것이 오늘 소개할 COW(Copy On Write)입니다!! Swift에서의 COW(Copy On Write) 스위프트 문서상의 설명으로는 복사를 즉각적으로 하지 않고, collection들은 값들이 저장된 메모리를 원본 객체와 복사본들끼리 공유합니다. 만약, collection의 ..

[Swift] Struct와 Class의 차이(Value Type, Reference Type) - 기초편 [내부링크]

Struct, Class Struct와 Class는 일반적으로 프로그램의 구성요소로서 범용적이고 유연한 구조를 자랑합니다. Swift문서의 설명인데 조금 원론적인 것 같네요. 쉽게 말해서, Struct와 Class는 한 객체안에 많은 정보를 담고 싶을때 가장 자주 쓰이는 형태입니다. 두 값은 굉장히 자주 사용되는데, 두가지의 차이점은 무엇이 있을까요? Reference Type, Value Type 두 값의 차이에서 가장 큰 점은 Class는 Reference Type, Struct는 Value Type이라는 점입니다. Value Type인 Structure, Enum Structure와 Eum은 Value Type으로서 변수나 상수에 할당될때, 함수에 전달될 때 값이 복사됩니다. 즉, 변수끼리 값을 전..

[Swift] ARC의 정의 및 이해 - ARC의 기초 - 1탄 [내부링크]

1. ARC가 무엇인가? Swift에서는, 사용자 앱의 메모리 사용을 추적하고 관리할 때 Automatic Reference Counting (ARC)라는 것을 사용한다. 대부분 메모리 사용을 사용자가 직접 관리해야 하는 C와 다르게, 더이상 메모리에서 사용하지 않는다고 판단했을 때 자동으로 ARC를 통해 클래스 "객체"를 메모리로부터 Free 시킨다. 2. ARC의 판단기준 특정 객체가 더이상 사용되지 않는 다는 것을 ARC는 어떻게 판단할까? ARC는 특정 클래스 객체를 참조하는 변수, 상수, 프로퍼티들의 갯수를 카운팅한다. 특정 객체에 "적어도" 하나라도 참조변수가 존재한다면 ARC에서는 메모리 해제를 발생하지 않는다. 반대로, 활성화된 참조변수가 존재하지 않는다면 ARC는 특정 객체를 메모리로부터..

Notification [내부링크]

주기적으로 알람을 보낼 때도 있고, 중요한 정보를 언제든지 보낼 수 있다. 이때 디바이스가 사용 중 혹은 lock 상태이든 간에 notification center에서 보내주게 된다. 알람은 로컬 와 remote가 존재하며 local은 디바이스에서 기원하고 보내진다. remote notification을 하려면, push notification이라고 하는 서버로부터 오는 것이며 서버를 직접 운용해야 한다. 그렇지 않으면 푸시 notification을 받을 수 없기 때문이다. Notification의 동작 방식은 두 가지로 존재하고 커스텀 한 디테일 뷰가 존재한다. detail view에는 네 개의 버튼을 넣을 수 있다. 메일 같은 게 왔을 때 actionable notification을 네 개까지..

Multiple Window on iPad [내부링크]

iOS13이후로, iPad가 multiple window를 지원하기 시작했습니다. task manager에서도 보면 두 개의 사파리가 존재하는 등 기본적으로 애플이 제공하는 수 많은 앱들은 멀티태스킹 환경을 지원하고 있다. 통합버전이었던 아이폰과 아이폰 용 OS가 iOS와 iPad OS로 분리되었다. iPad 전용 OS와 macOS와의 중간인 Catalyst라는 것이 존재하게 되어, iPad 용으로 만들어서 Catalyst를 통해, 조건을 만족시킨다면 맥에서도 구동할 수 있게 되었다. iPad에서 멀티윈도 작동시키기 아이패드 앱들은 콘텐츠를 제공하기 위해서 두 가지 타입의 윈도를 사용한다. primary window는 모든 앱의 오브젝트에 대한 접근과, 그것들과 관련된 액션을 통해서 앱의 완전한 계층..

Multitasking life Cycle [내부링크]

1. 외부로 나가는 오디오에 대해서 적절하게 반응해야한다. 때때로 우리앱이 다른 앱이나 시스템 그자체로 나오는 오디오에 의해서 방해를 받을 수 있다. 전화가 오거나 시리가 음악을 재생한다면 앱의 오디오를 방해할수있다. 그러한 상황에서, 앱이 사람들의 기대를 충족시킬만한 대응을 해야한다. 음악, 팟캐스트, 오디오북들을 재생하는 것과 같은 주요 오디오 방해요인들에 대해서, 앱은 무기한으로 오디오를 멈추게 된다. GPS 알림과 같이 더더욱 짧은 알람에서, 우리의 앱은 오디오 볼륨을 일시적으로 낮추거나, 그것의 오디오를 멈추거나 혹은 방해가 끝날때 오디오가 재개됩니다. 2. 백그라운드에서 사용자가 시작한 task를 마무리시켜야한다. 누군가 작업을 시작할 때, 그들은 다른앱으로 전환하더라도 이전 앱의 작업이 ..

Multitasking의 세 가지 [내부링크]

multitasking 중 하나인 slide over의 예시 멀티태스킹 기능을 특별히 구현해야 하는 것은 없고 Os에서 제공하는 기능으로서 잘 사용할 수 있도록 준비를 해두면 된다. iOS3까지는 멀티태스킹이라는 것이 존재하지 않았다. 전면에 나온 앱 외에 앱 스위칭을 할 시, 작은 메모리를 잡고 있지만 아무것도 할 수 없었지만 iOS4부터 가능했고, 9부터 여러 기능들이 추가되었다. 그리하여 iOS3 이전과 iOS4 이후 그리고 ipad 큰 화면을 잘라서 사용하게 되면서 앱에서 준비해야 할 것들이 늘어났다. 멀티태스킹은 iOS 디바이스에 있는 멀티태스킹 인터페이스를 통해서 하나의 앱에서 다른 앱으로 언제든지 전환할 수 있도록 한다. ipad에서, 멀티태스킹은 slide over, split view..

AR(Augmented Reality) [내부링크]

AR 기술의 대표적인 예시 증강 현실(Augmented Reality) AR은 가상의 물체를 현실 세계와 매끄럽게 혼합함으로써, 매력적이고 몰입하게 만드는 경험을 제공할 수 있다. 현실 세계의 스크린을 나타내기 위해서 카메라를 사용할 때, 앱은 물체가 정말로 존재할 것 같은 환영을 만들어, 이러한 환영을 가진 3차원 가상물체를 겹쳐놓는다. 앱이 제공하는 경험에 따라서 사람들은 물체를 다른 각도에서 보고, 제스처나 움직임을 사용하면서 물체들과 소통하기 위해서 기기를 조정할 것이며, 여러 명이 다른 사람들과 AR을 함께 즐길 수 있게 되었다. 가능한 장치에서만 AR 기능을 제공해라. AR이 주된 앱에 목표라면, AR 키트를 지원하는 기기에서만 동작하도록 설정해야 한다. (앱 개발 시 환경설정에 넣을 ..

Undo and Redo [내부링크]

많은 앱에서는, 사용자가 기기를 흔들어 타이핑 또는 삭제와 같은 작업을 되돌리거나 취소할 수 있습니다. 이 방식으로 실행되었을 때, 사용자에게 실행 전으로 돌아가기 또는 재실행 작업을 확인 또는 취소하라는 요청을 보내게 됩니다. 1. 간략하고 정확하게 되돌아가거나 재실행될 작업을 표시해야 합니다. 되돌아가기나 재실행은 자동적으로 "undo"나 "redo"가 포함된 접두어를 포함하는 제목을 알려주게 됩니다. 2. 되돌아가기나 재실행에 대해서 흔들기 제스처를 사용한다면, 다른 액션에 대해서는 해당 제스처를 사용해서는 안 된다. 계획적으로 흔들기 제스처에 대해서 다양한 의미를 제공한다고 할지라도, 사람들을 혼란스럽게 하고, 앱에 대해서 전혀 예상하지 못하도록 만들 수 있다. 3. 되돌아가기와 재실행..

Haptics [내부링크]

기술적으로 아이폰에는 Taptic 엔진이 존재해서, 이것이 햅틱 경험을 증강시켜주는 역할을 한다. 햅틱은 화면상에 인터페이스와 상호작용하는 경험을 강화시키기 위해서 사람의 촉감과 관련된 감각을 유발한다. 예를 들어, 애플 페이 거래가 확실시되는 것을 강조하기 위해서 시각적이고 청강적인 피드백과 더불어 시스템에서 햅틱을 사용한다. 햅틱은 피커를 통해서 스크롤 하거나 스위치를 온/오프 하는 것과 같은 터치 제스처나 상호작용을 향상시키는 것도 가능합니다. 지원하는 아이폰 모델일 때, 몇 가지 방식으로 앱 내부에 햅틱을 넣을 수 있다. 1). 표준 UI 요소를 사용해라.(스위치나, 슬라이더, 피커 등 애플이 디자인한 햅틱이 디폴트로 제공된다) 2). 적절하다면, 피드백 생성기를 사용하여 알람, 임팩트, ..

File Handling [내부링크]

사람들은 파일들이 만들어지고, 보여지고, 처리될 때 파일시스템에 대해 생각해서는 안된다. 만약 앱이 파일과 함께 동작한다면, 가능한 파일 핸들링을 경시하도록 해야한다. 1. 취소되거나 삭제되지 않는 한 작업은 저장되어야 한다. 명백하게 세이브파일을 명백하게 만들도록 하지 말고 자동으로 파일을 열고닫을때, 다른앱으로 전환될 때 혹은 정기적으로 변화를 저장해야한다. 기존 파일을 편집하는 동안, 편집 내용이 캡쳐된 시기를 명백하게 하기 위해 저장 및 취소옵션이 더 적합할 때도 있다. 2. 로컬파일만 만들것이냐는 옵션을 줄 필요가 없다. hand-off를 통해서 모든 장비에서 콘텐츠 사용경험을 이어나갈수 있도록 특정 로컬에서 저장하지 않고 클라우드 기반 서비스로 싱크를 맞춰야 한다. 그렇기 때문에 아이클..

Feedback [내부링크]

피드백은 사람들이 현재 앱은 무엇을 하는지 알고, 다음에 무엇이 발생할지 발견하고, 액션에 대한 결과를 이해하는 데에 도움을 주는 것입니다. 1. 상태나 기타 유형의 피드백을 인터페이스에 방해하지 않는 선에서 통합한다. 예를 들어 메일을 보낼 때, 아래쪽에서 프로그레스바가 나와서 메일의 업데이트 상태 등을 표시하는 것과 같이 사용자를 방해하지 않는 형식으로 피드백을 줘야 한다. 이상적으론 액션이나 방해 없이 중요한 정보를 사용자가 받을 수 있도록 해야 하며, 중요 정보들과 스크린에서 경쟁해선 안되고 곁눈질만으로도 정보의 상태를 인지할 수 있도록 해야 한다. 2. 불필요한 알람(alert)을 피해야 한다. alert는 사용자에게 짜증을 유발할 수 있는 UI이기 때문에, 작업이 실패했음을 알리는 것을..

gestures [내부링크]

터치스크린에서 이루어지는 제스처를 통해 사용자는 iOS 디바이스와 상호작용하고 있다. 이때 제스처들은 콘텐츠들에 대한 긴밀한 개인적인 연결성을 이끌어내고, 화면상의 객체들을 직접적으로 조종한다는 느낌을 향상시켜준다. 1. 표준 제스처를 사용해라 사람들은 이미 표준 제스처에 익숙하기 때문에, 기존의 것과 다른 새로운 제스처를 배우는 것을 좋아하지 않는다. 예외적으로, 게임이나 몰입형 앱들은 사용자의 재미를 위해서 다른 제스처가 존재할 수 있으나 결국 제일 중요한 것은 표준 제스처를 사용하는 것이다. 2. 표준 제스처를 사용해서 다른 액션이 수행되도록 해선 안된다. 예를 들어 핀치, 핀 아웃을 하였는데 확대/축소가 아닌 다른 액션이 되어버린다면 사용자들에게 혼란을 야기할 수 있다. 3. 전체 시스..

Data entry - 피커와 테이블 뷰 [내부링크]

Data 입력과 관련된 데이터 엔트리 인터페이스 요소를 두드리거나 키보드를 쓰는 것이든 간에, 정보를 입력하는 것은 굉장히 지루한 작업이다. 아이폰은 화면이 특히 작기 때문에 정보 입력이 편하지 만은 않고, 그러한 정보 입력의 요구로 인해서 앱을 더 이상 사용하지 않는 경우도 존재한다. 하지만 사용자로부터의 데이터 입력을 받는 것은 굉장히 중요하기 때문에 유저에게 나쁜 인상을 주지 않으면서 데이터를 받을 수 있는 방식에 대해서 고민해 봐야 한다. 1. 가능한 선택사항으로 줘야 한다. 키보드를 많이 쓰지 않는 최대한 효율적인 방식을 추구해야 하기 위해 textfield 대신 picker 나 table를 고려해야 한다. picker와 table view의 역할은 미리 정의해둔 입력값들 중 하나를 선택하도..

Face ID and Touch ID [내부링크]

1. 가능하다면, 생체 인증을 지원하여라 은행이나 보안 증권사는 이 방식을 채택하지 않기 때문에 불편한 점이 있는데, 애플의 시큐리티 가이드를 따르지 않기 때문에 발생하고 있다. 2. 인증 방식을 한 가지 방식으로 하게 한다. 여러 옵션을 줄 필요 없이, user name과 password를 사용하긴 하지만 face ID나 touch ID가 실패했을 때 한정한다. 3. 유저의 명백한 행동에 대해서만 인증을 시작해야 한다. 버튼을 탭 하는 등, 유저가 인증을 원하는 명백한 액션일 때 인증을 해야 한다. 4. 인증 방식을 항상 인지시켜 주어야 한다. "sigin in"이라는 글귀를 적는 것이 아니고 "sign in with Face ID"와 같이 용어를 제대로 써야 한다. 5. 일반적으로 앱 ..

Authentication - sign in with Apple [내부링크]

Authentication 사용자에게 가치가 있는 무엇인가를 전달할 때, 앱에서는 인증을 요구해야한다. 사용자들에게 간단하고 안전한 로그인을 제공하기 위해서 sign in with Apple의 기능을 지원해야 한다. 이를 통해 사용자들은 다수의 암호를 기억할 필요 없이 아이클라우드의 키체인을 통한 편리한 로그인 경험을 겪게 된다. 1. 가능한 sign-in하는 것을 지연시켜야 한다. 등가교환 법칙에 따라 사용자에게 큰 가치를 주기 전까지 sign-in을 강제로 해서는 안된다. 이앱에서 유용한 가치를 사용하기 전에 회원가입부터 하라고 한다면 사람들은 포기하기 마련이다. 앱과의 사랑에 빠질수 있는 시간을 주어야 한다. 왜냐하면 전자상거래의 앱의 사용자가 다음에 돌아올 보장이 없기 때문에 회원가입을 유도하..

Designing a Greate Audio Experience [내부링크]

1. 필요하다면 오디오 볼륨을 조정하는데, overall 볼륨을 올려서는 안된다. 앱에서 내부적인 볼륨을 가지고 있는데, 이것이 시스템 볼륨을 건드리지 않고 따로 동작된다. 이때 최종적인 결과는 시스템 볼륨에 의해서 내부 볼륨이 통제된다. 앱에서 10의 볼륨을 갖고, 시스템에서 1의 볼륨을 갖는다면 1에대한 10의 볼륨이 나오는 것이다. 2. 적당할 때, rerouting을 하는것을 허용해라. 자동차 라디오, 애플 티비등 다른 오디오 아웃풋을 통해서 현재 기기에서 듣고 있던 노래가 rerouting된다. 3. 오디오 조절 시 시스템 지원 볼륨뷰를 사용하는 것이 좋다. 이뷰는 커스터마이저블 하고, 볼륨 레벨 슬라이더도 가지고, 어디로 오디를 내보낼지도 가지고 있기에 개발자라면 MPVolumeView..

Navigation [내부링크]

뱃사람들의 이정표 사람들은 앱의 내비게이션이 그들의 예상을 벗어나지 않으면 인지하지 못한다. 이것은 숨 막히기 전까지 공기의 존재를 느끼지 못하는 것과 비슷하다. 그리하여 내비게이션의 존재는 공기처럼 자연스러워야 하고 내비게이션 자체가 사용자의 포커스를 가져가선 안된다. 결국 내비게이션의 역할은 사용자가 원하는 정보까지 접근하는 데 도움을 주는 것이다. 내비게이션의 3가지 종류 1. 계층적 내비게이션 데이터가 계층화되어있기에, 사용자는 계층화된 데이터를 타고 원하는 정보에 도달한다. 2. 평면적 내비게이션 여러 과목의 퀴즈 시험과 같이 연관성이 없는 것 들이 탭에 들어있다. 서로 다른 콘텍스트가 탭에 들어 있기 때문에 사이즈가 커진다. 그래서 평면적은 서로 다른 콘텍스트 간에 카테고리를 묶어내기 ..

Modality - 2 [내부링크]

1. 이치에 맞게 Modal을 사용해라 현재 contex와 다르게 집중을 요하는 순간에 modal을 사용한다. 모달을 사용하면 task을 단계로 나누기에 좋기 때문에 로그인을 하는데 많이 사용된다. 이때 signup을 하고 난 뒤, tab이 나오는 구조로 앱이 구성되지 않고 전체 UI에서 main이 존재하고 로그인 화면을 Modal이 덮는 구조이다. 로그인은 한번 signup을 하고 나면 다시 로그인할 필요가 없어야 한다. 왜냐하면 아이폰은 개인적인 장치로 id와 password를 기억하고 있어도 되고 잠금을 푸는 과정에서 생체 인증의 과정을 거치기 때문이다. Modal은 사용자의 경험을 방해하는 요소이기 때문에 확실한 장점이 있을 때 사용해야 한다는 사실을 명심해야 한다. 2. alert는 핵심적인..

Modality - 1 [내부링크]

전자시계에서 Mode 버튼을 누를 시, 화면이 현재 시각이 나오거나 날짜, 스톱워치, 알람에 대한 정보가 나오기도 한다. 이렇게 네 개의 모드가 전자시계를 공유하고 있는 것처럼 앱에도 모드란 게 존재한다. 이때 앱에서는 유저의 현재 context로부터 벗어나는 임시 모드를 제공한다. 매일 앱에서 메일 답장 모드로 들어간 상태에서 보내기 혹은 취소를 누른다면, 메일함을 읽을 수 있는 메일 읽기 모드로 변한다. 그래서 Modality는 앱 안네 여러 모드가 있다는 것을 전제로 하며, 사용목적으로는 task에 집중하거나 중요 정보가 있는 경우 경고를 하기 위해서 사용한다. 앱 내부 특정 상황에 쓰일 수 있는 alert, Activity view, Action sheet이 제공되며 이때 Activity ..

Loading [내부링크]

콘텐츠가 로딩될 때, 정지되거나 빈 스크린은 앱이 멈춘 것처럼 보여 사용자들에게 혼란을 야기하고 결과적으로 앱을 더 이상 사용하지 않도록 만들게 된다. 1. 로딩 중 일 땐 명백하게 보여줘라 Progress 바에서 언제든지 중지될 수 있도록 해야 하고, 로딩 중이라는 사실을 확실하게 알려주고 진행 상황을 보여줘야 한다. 2. 최대한 가능한 콘텐츠를 보여줘라 스크린을 즉시 보여주고, 실제 콘텐츠는 아니지만 placeholder를 통해 아직 사용하지 못하는 곳을 확인시켜 준다. context를 들어가서 인지하는 시간이 10초가 걸리는 만큼 로딩이 안됐을 때, 아무것도 보여주지 않는 것이 아니라 로딩 중 말고 다른 부분을 살펴볼 수 있도록 기회를 주는 것이다. 3. 로딩 타임을 느끼지 못하도록 재미나 ..

Launching [내부링크]

Laungching 앱을 실행할 땐, 반드시 빠르고 매끄러워야 한다. 만약 splash image를 사용한다면 그때부터 사용자는 seam(이음매)을 느낌으로써 앱 사용이 더디다고 생각할 것이다. 또한 사용자가 앱을 실행할 때 그전에 마지막으로 사용했던 이미지에서 시작하지 못하고 처음 이미지에서 실행되는 것 또한 같은 경험을 선사한다. UI application deligate 할 때, 앱 시동의 케이스는 여러 가지로 존재한다. 예를 들자면 아이폰을 탭 해서 실행시키는 경우, 노티 피케의 션을 통해서 들어오는 경우, 다른 앱이 불러서 들어오는 경우 등이 존재하기 때문에 앱이 런칭될때 다양한 경우에 어떻게 동작할지 설정한다. 또한 작동 중인 앱이 백그라운드로 동작할 때, 메모리 부족으로 인하여 백그라..

Interface essential [내부링크]

1. UIKIT common interface element를 정의한 framework이며 기본적인 UI 요소를 제공한다. 미리 사전해 구현해 둔 기능을 통해 개발자가 구현하지 않게 도와주는 것뿐만 아니라, ios update 시 자동으로 업데이트된다. high-level customization이 가능하지만, 처음으로 앱을 개발할 때는 권유되지 않는데 그 이유는 ios update로 적용되는 기능적인 부분들이 자동적으로 적용되지 않기 때문에 또 다른 방식으로 구현해야 하기 때문이다. 그리하여 시스템 툴바를 쓰지 않고 뷰를 사용하는 방식은 주의를 요구하며, 결국 시스템이 제공하는 UI를 잘 활용해야 한다. 1) Bar 앱 내부적으로 사용자가 어디에 위치한지 알려주거나, 정보를 제공해 주는 기능을 한다..

ADS, 페르소나, 멘탈모델 [내부링크]

1. ADS 누구를 위한 것이며, 어떠한 기능과 차별점을 가지는 것인가(audience, solution, differentiator) 좁은 target audience를 대상으로 앱을 만드는 것이 다양한 소비층을 대상으로 만드는 것 보다 난이도가 낮다. 다트에서와 같이 좁은 범위에서 가장 많은 점수를 딸 수 있는 것과 같이 target audience을 좁게 선정하는 것이 유리하다. 처음 시작이 좁더라도, 특정 audience에서 성공한다면, 더 넓은 계층으로 확장하는 것은 그리 어려운 일이 아니기 때문이다. 동일한 아이디어로 시작한 앱이여도, 특정 기능이 어떤 목적성을 가지고 구현될 것인지 생각할 필요가 있다. 마지막으로 차별점은 만들기가 쉽지 않은데, 가장 간단하게 차별점을 만들 수 있는 방법은 ..

Onboarding [내부링크]

승선이라는 뜻을 가지고 있으며, iOS에서는 온보딩으로 만드는 경우가 많다. 온보딩이란 앱을 실행했을 때 여러 복잡한 메뉴들이 존재하고 이를 설명하는 것을 말한다. 앱을 실행했을 때 매뉴얼로서, 사용자들이 앱을 즐길 수 있도록 하는 것에 집중하는 것이지 set up을 의미하는 것이 아니다. 그리하여 setup이나 licensing detail에 집중하는 것이 아닌, 사용자 배움의 즐거움에 집중한다. 1. 액션을 빠르게 해라. 시스템의 런치 스크린을 리플레이스하고 나면, 바로 사용자가 앱을 사용하며 즐길 수 있도록 한다. 만약 튜토리얼이나 인트로 시퀀스가 필요하다면 스킵 할 수 있어야 하고, 다시 돌아온 사용자에게 자동으로 보여주지 않도록 해야 한다. 이때 첫 단계에서, 모든 설명을 전부 하는 것이 아..

스큐어모피즘과 플랫디자인 [내부링크]

'형태는 기능을 따른다.' - 기능을 가진 형태만 남기는, 미니멀리즘 1.디지털 스큐어모피즘 ios 7 이전의 디자인 컨셉: 필요해 의해 만들어진 뒤 장식으로 남아 있는 것이다. 이유가 있어서 디자인을 만들었는데, 관습적으로 아직까지 남아있는 무언가이며, ui 적으론 무관하게 아날로그적 장식요소를 위한 것들이다. (ibooks의 책장과 같은 것들, 책에서 뒤 비침까지 보이는 것이 과연 진정으로 원하는 기능이었나? 왜 디지털까지 페이징 기법을 사용할까? 그리하여 현재에 와선 스크롤링 기능이 생겼다. 이러한 고민은 결국 디지털 세상에서는 사용자의 task 맞춘 새로운 디자인에 대한 움직임을 촉진시켰다. 내 생각에선, 디지털 스큐어모피즘이 선호된 이유는 어떠한 아이디어에 대한 추상화를 하는 방식이 현실 세..