CLOSE SEARCH
POSTS TAGGED WITH: iOS 7

UIKit Dynamics #4 – UIAttachmentBehavior. for Bouncy UI

iOS 7의 메시지 앱을 보면, 이전 버전과는 달리 스크롤 속도에 따라서 버블의 위치가 유기적으로 변하는 것을 볼 수 있습니다. 마치 버블들이 스프링으로 연결된 것처럼 보이기도 합니다. UIKit Dynamics의 UIAttachmentBehavior는 Ease In, Ease Out과 같은 단조로운 애니메이션을 넘어서, 현실세계의 스프링 효과를 애니메이션으로 구현할 수 있도록 도와줍니다. 가장 기본적인 역할은 Dynamic Item과 특정 위치의 앵커를 연결하거나 Dynamic Item끼리 연결하여 상호작용하도록 하는 것입니다. 여기에 damping, frequency, length 속성을 통해 두 객체사이에 탄성을 추가할 수 있습니다.

UIKit Dynamics #3 – UICollisionBehavior

UICollisionBehavior를 사용하면 Dynamic Item 사이의 충돌 효과를 쉽게 구현할 수 있습니다. 복잡한 물리수식을 계산할 필요없이, 충돌 영역과 충돌을 처리할 Dynamic Item만 지정해 주면됩니다.

Collision Items

UICollisionBehavior가 충돌 효과를 적용하는 Dynamic Item들은 반드시 UIDynamicItem 프로토콜을 구현해야 합니다. 이 아이템들은 초기화 시점에 initWithItems: 메소드를 통해 추가되거나, 그 이후에 addItem: 메소드를 통해 추가될 수도 있습니다. removeItem: 메소드를 통해 원하는 아이템을 제거할 수도 있으며, 이 경우 제거된 아이템은 충돌 대상에서 즉시 제외됩니다.

UIKit Dynamics #2 – UIGravityBehavior. Galileo Galilei is coming to iOS

iOS 6의 뷰는 무중력 상태에서 지정된 위치를 둥둥 떠다니기만 했다면, iOS 7의 뷰는 갈리레오 갈리레이가 피사의 사탑에서 떨어뜨린 물체처럼 중력이 작용하는 방향으로 떨어집니다. 물론 실제로 떨어지는 것이 아니라 UIKit Dynamics가 제공하는 UIGravityBehavior 클래스를 통해 뷰에 중력백터를 설정하여 뷰가 질량을 가진 물체처럼 동작(에니메이션)하도록 하는 것입니다.

UIKit Dynamics #1 – More Realistic Animations in iOS 7

iOS의 애니메이션 기능은 정말 뛰어납니다. 특별히 어려운 소스코드를 작성하지 않고도 부드러운 애니메이션을 만들 수 있고, 사용자들은 이러한 에니메이션을 통해 멋진 시각적 피드백을 제공받습니다. 안드로이드나 윈도우 모바일 역시 에니메이션 기능을 제공하지만, 품질이나 개발 편의성 면에서 iOS의 기능을 따라오기는 힘들어 보입니다. 더욱이 이번 WWDC 2013에서 발표된 UIKit Dynamics와 Custom View Controller Transitions 기능으로 인해 에니메이션에 있어서만큼은  iOS가 이전보다 몇발 더 앞서가게 되었습니다. 이번 글에서는 UIKit Dynamics에 대해서 알아봅니다.

Text Kit : focus on Legibility and easy API #3

Characters vs Glyphs

Character와 Glyph는 모두 문자를 나타내는 용어이지만, 이 둘 사이에는 뚜렷한 특징이 있습니다. Character의 경우 저장된 문자 그 자체를 나타내며, 텍스트 킷에서는 NSTextStorage에 저장되어 있는 문자데이터를 나타냅니다. 이에 비해 Glyph는 저장된 문자에 폰트가 적용되어 실제로 화면에 출력되는 문자입니다. 그래서 Glyph는 적용된 폰트에 따라서 모양이 완전히 달라지게 됩니다.

Text Kit : focus on Legibility and easy API #1

Apple은 사용자들이 iOS 디바이스를 통해 원하는 내용을 더욱 또렷하게 볼 수 있도록 다양한 노력을 하고 있습니다. 2010년 레티나 디스플레이를 통해 하드웨어적인 개선을 이루었다면 올해는 Text Kit을 통해 소프트웨어적인 개선을 이루었다고 할 수 있습니다. Text Kit은 특히 개발자에게 사용하기 쉬운 API를 제공하기 때문에, Pages와 같이 복잡한 포멧팅을 지원하는 앱도 이전보다 더욱 쉽게 개발할 수 있게 되었습니다.

Everything is NEW! iOS 7 User Interface Design

Minimalism and Clarity, Deference, Depth

iOS 7의 UI는 이전의 iOS 디자인을 대표하던 스큐어모피즘을 벗어나 조니 아이브의 미니멀리즘을 입고 완전히 새롭게 변신하였습니다. 새로운 UI는 Clarity, Deference, Depth를 주요한 테마로 사용자가 원하는 내용과 기능에 집중할 수 있고, 항상 읽기 쉽고 직관적인 화면을 제공하는데 중점을 두고 만들어졌다고 합니다. 그렇다면 이전의 스큐어모피즘이 직관적이지 않았던가 하는 의문이 생길 수 있습니다. 개인적으로는 그 자체로 메타포가 될 수 있는 스큐어모피즘의 직관성이 미니멀리즘의 그것에 비해 부족하다고는 생각하지 않습니다. 오히려 현실세계를 가장 잘 반영하고 있기 때문에 직관성이나 사용자 경험은 더 뛰어나지 않았나 생각됩니다.

Multitasking in iOS 7 : Background Fetch, Remote Notification, Background Transfer Service

Apple은 iOS 4 에서 iOS 6까지 다양한 멀티태스킹 기법들을 iOS 앱에서 사용할 수 있도록 발전시켜왔습니다. 백그라운드에서 비디오 인코딩 작업을 완료하거나 데이터를 업로드하고, VoIP 앱이나 위치정보를 사용하는 앱이 다양한 멀티태스킹 기능을 구현할 수 있도록 지원하고 있습니다. 이 포스트에서는 iOS 6에서는 멀티태스킹의 문제점과 iOS 7에서의 개선점, 그리고 세가지 새로운 기능(Background Fetch, Remote Notification, Background Transfer Service)에 대해 간략하게 알아보겠습니다.