본문 바로가기

WWDC/WWDC2016

What's New in Cocoa Touch [Session 205] 2/4


What's New in Cocoa Touch

WWDC 2016 - Session 205 



WWDC 2016 세션 205의 주제인 What's New In Cocoa Touch 요약정리입니다.

이 포스트는 세션 205요약 중 두 번째 글입니다.


지난 포스팅

  1. 2016/08/13 - [WWDC/WWDC2016] - What's New in Cocoa Touch [Session 205] 1/4


이번 포스팅에선 아래 주제를 정리하고, 나머지 주제는 다음 포스팅에서 이어집니다.


# Building better user interfaces

  • Accessibility Inspector
  • Speech Recognition
  • Smarter Text Input
  • Dynamic Type
  • Improved Customization
  • Peek & Pop
  • Refresh Control
  • Collection View
  • Advanced in UIKit Animations



# Building better user interfaces

iOS 10에서 유저와 앱 간의 상호작용(interaction) 그리고 유저 인터페이스(UI)에 대해 생각해 봅니다.

가장 먼저 생각해 볼 것은 모든 사람이 여러분의 애플리케이션과 상호작용을 할 수 있도록 만드는 것입니다.


  • Accessibility Inspector
  • UI 요소의 접근성 프로퍼티를 곧바로 파악하고 연결할 수 있습니다.


    기기 또는 시뮬레이터에서 애플리케이션의 접근성 평가를 확인할 수 있습니다. 이를 통해 접근성 문제를 해결할 힌트를 얻을 수 있습니다.




  • Speech Recognition
  • 새로운 제스쳐와 음성 인식으로도 애플리케이션과 상호작용 할 수 있게 되었습니다. 

    간단한 API로 영어 뿐만 아니라 다른 언어도 인식합니다.


    SFSPeech 클래스를 통해 음성인식을 할 수 있습니다. 

    오디오 파일 또는 실시간 오디오 스트림에도 사용할 수 있습니다. 실시간 음성 분석이 가능하다는 뜻입니다.

    요청(request)를 통해 받아쓰기나 문자열을 통한 인식을 하도록 할 수 있습니다.

    결과(result)를 통해 콜백 받습니다. 쓰기 쉽대요.




  • Smarter Text Input
  • 텍스트 필드에 컨텐츠의 종류에 대해 정보를 추가할 수 있습니다. 이를 통해 빠른 입력을 지능적으로 제시할 수 있도록 할 수 있죠.

    예를 들어, 위치에 관련된 텍스트 필드라면 빠른 입력에서 주소를 볼 수 있습니다. 

    이메일, 전화번호, 신용카드 번호 등의 컨텐츠 종류를 표현할 수 있습니다.



  • Dynamic Type
  • iOS 7에서 추가된 동적 타입(dynamic type)의 기능이 iOS 10에서 더 추가되었습니다.

    동적 타입을 위해 컨텐츠 사이즈 카테고리를 만들었습니다.

    iOS 10 이전에는 컨텐츠 사이즈 카테고리는 UIApplication의 프로퍼티였습니다.

    사용자가 컨텐츠 사이즈를 변경하거나 하면 그에 대응하기 위해 노티피케이션을 수신하고 있어야 했습니다. 그렇지만 이제는 하나의 특성(trait)으로 통합되었기 때문에 노티피케이션을 수신할 필요가 없습니다.

    이제는 동적 타입을 익스텐션으로 사용이 가능합니다. 



    iOS 10에서는 UIKit에 이전부터 존재하던 관련 요소들에도 동적 타입을 적용하였습니다.

    텍스트와 관련된 UI 요소인 텍스트 필드, 텍스트 뷰, 레이블 등이 컨텐츠 사이즈 카테고리를 위한 글꼴 적용을 사용할 수 있게 되었습니다.



  • Improved Customization
  • UIKit에 사용자화(커스터마이징)이 대폭 추가되었습니다. 바 버튼 아이템이 그 좋은 예가 되겠습니다.

    탭바 아이템에 배치 색상을 사용자화 할 수 있으며, 텍스트에 속성(attributes)를 추가할 수 있습니다. 선택되지 않은 상태의 색상을 변경할 수도 있습니다.



  • Peek & Pop
  • 웹뷰에도 또 다른 방법으로 사용자화가 가능하게 되었습니다.

    3D 터치를 이용한 Peek & Pop 기능을 뷰컨트롤러를 위한 UIKit의 간단한 API만으로 추가할 수 있습니다. WKWebView에도 이런 기능이 추가되었습니다.

    웹뷰에서도 Peek & Pop을 좀 더 쉽게 제어할 수 있습니다. 다시 말해서 Peek 할 때 사용하는 뷰 컨트롤러를 사용자화 할 수 있습니다. Peek을 하면 미리보기를 할 수 있고, Pop을 하면 여러분의 앱 안에서 무슨 처리를 할 지 결정할 수 있습니다. 웹뷰 클래스의 델리게이트 메서드를 통해 이런 일들을 처리할 수 있습니다.

    UIKit에서 Peek & Pop 동작을 할 때, 블러 효과같은 기본적인 효과 외에도 사용자가 Peek 하려는 것을 감지하고, 어떤 행위를 할 것인지 감지해서 여러분만의 전환효과를 줄 수 있습니다. 



  • Refresh Control
  • Refresh Control을 UIScrollView와 그 자식 클래스에서 모두 사용할 수 있습니다. 즉, UITableView에만 제공되었던 기본적인 refresh control을 콜렉션 뷰를 포함한 여러 스크롤 환경에서 사용할 수 있게 되었다는 뜻입니다.



  • Collection View
  • 작년에는 콜렉션뷰의 flow layout의 새로운 모드가 생겼습니다. 자동 모드를 사용하면 더이상 셀의 크기를 예상하기 위하여 계산하지 않아도 됩니다. 또한, 스크롤뷰의 페이징 기능을 사용할 때 셀을 재정렬(reordering)하는 기능을 구현하였습니다.

    올해는 더욱 부드러운 스크롤을 위해 새로운 기능이 추가되었습니다.

    만약 셀에 복잡한 정보를 나타내야 할 때에는 빠른 스크롤을 하게된다면 버벅일 수 있었는데, 이는 사용자 경험으로 좋지 못하죠.

    그래서 cell prefetching 기능을 추가했습니다. 셀이 화면에 나타나기 전에 셀과 데이터를 미리 로드해 둘 수 있습니다. 물론 언제 어떻게 불러올지는 자동으로 모두 처리됩니다.  

    iOS 10으로 빌드한다면 셀을 미리 불러오는 것들은 자동으로 처리될 것입니다. 그렇지만 데이터를 미리 로드해 오는 것은 새로운 델리게이트 프로토콜 메서드를 통해 구현해 주어야 합니다.

    (테이블뷰에도 이런 기능이 추가되었습니다)


  • Advanced in UIKit Animations
  • UIViewPropertyAnimator라고 불리는 애니메이션 관련 기능이 추가되었습니다. 이는 새로운 애니메이션 API입니다.

    취소할 수 있고, 되감을 수 있으며, 타이밍을 정할 수 있으며, 완벽히 동적으로 동작합니다.



    애니메이션을 동영상의 타임라인처럼 관리를 할 수 있습니다. 

    타이밍과 동작시간을 매개변수로 전달하여 애니메이션에 추가할 수 있습니다.

    애니메이션 객체가 애니메이션을 표현하게 됩니다. 동작 중에 다양한 변화를 추가하거나 수정할 수 있습니다.

    뷰컨트롤러 작동 시스템에 완벽하게 녹아들어가 있습니다.

    이 새로운 애니메이션 기능의 강력한 포인트는 애니메이션을 사용자와 직접 상호작용 할 수 있도록 구현할 수 있다는 점입니다.



    # 간단요약

    Accessibility Inspector

    • 내 앱에 사용자 접근성 사용 기능이 어떤 것이 적용되어 있는지를 개발자가 더욱 편리하게 확인할 수 있는 기능이 추가됨


    Speech Recognition

    • 오디오 또는 실시간 입력으로도 음성인식 기능을 사용할 수 있음
    • 영어 외에 다른 나라 언어도 많이 지원함


    Smarter Text Input

    • 텍스트필드에 입력될 데이터가 어떤 종류인지 지정해두면 사용자가 원하는 데이터를 더 편리하게 입력할 수 있도록 도와줌


    Dynamic Type

    • 컨텐츠 사이즈 카테고리에 따라 글꼴 등을 알아서 표현해 줌


    Improved Customization

    • UIKit에 사용자화(커스터마이징) 할 수 있는 영역이 대폭 추가됨 (바 버튼 아이템의 여러 속성 등)


    Peek & Pop

    • 3D 터치를 통한 미리보기 기능의 전환효과를 사용자화 할 수 있음


    Refresh Control

    • Refresh Control을 테이블뷰 외에도 UIScrollView의 모든 자식클래스에서 사용할 수 있게 됨


    Collection View

    • 페이징 할 때 등 flow layout이 개선됨
    • 데이터를 미리 불러와 두고 처리해 둠으로써 콜렉션뷰를 조금 더 쾌적하게 사용할 수 있도록 개선


    Advanced in UIKit Animations

    • 애니메이션을 손쉽고 유려하게 다룰 수 있는 많은 기능이 추가됨
    • 애니메이션 표현 정보를 객체로 다룰 수 있게 되었고 손쉽게 사용자와 상호작용(interaction) 할 수 있음






    * 잘못되거나 부족한 내용이 있다면 덧글 남겨주시면 감사하겠습니다.
    * What's New in Cocoa Touch [Session 205]의 나머지 내용은 다음 포스팅에서 이어집니다.

    이어지는 다음(그리고 그 다음) 포스팅 내용

    # Adopting system features

    # Integrating with iOS


    2016/12/16 - [WWDC/WWDC2016] - What's New in Cocoa Touch [Session 205] 3/4

    2017/01/04 - [WWDC/WWDC2016] - What's New in Cocoa Touch [Session 205] 3/4





    by yagom

    facebook : http://www.facebook.com/yagomSoft

    facebook group : https://www.facebook.com/groups/yagom/


    p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

    RSS Feed 받기