1년 늦은 WWDC 2015 Tour

이는 iOS Advent Calendar 2016 18일째 투고다.
어제 17일째@tarappo선생님ipa 파일의 내용 조사입니다.마침 fastrane의 resign을 조사하고 싶은데, 사전에 많은 지식을 습득해 주셔서 감사합니다!

배경.


10월 학습회에서 @takasek씨와 이야기하다가 "지난해 WWDC 2015를 재평가했으면 좋겠다"는 말을 들었다.
"iOS 8도 지원해요".
그렇게 생각했지만 이틀 뒤 갑자기 iOS 8의 살청이 결정될 줄은 몰랐고, 약 1.5개월 동안 다시 본 영상에서 골라 공부한 것을 적었다.

이 발언에 소개된 세션

  • App Frameworks
  • Advanced Touch Input on iOS
  • Introducing Safari View Controller
  • Mysteries of Auto Layout, Part 1
  • Mysteries of Auto Layout, Part 2
  • New UIKit Support for International User Interfaces
  • What's New in Storyboards
  • What's New in UIKit Dynamics and Visual Effects
  • Media
  • What's New in Core Image
  • System Frameworks
  • Your App and Next Generation Networks
  • 다른 것도 봤어요What's New in Core Data. 그런데 전제 지식이 별로 없어서 따라가지 못해요...
    전제 조건
    이 기고문의 Swift 코드는 Swift3으로 변경되었습니다.

    WWDC 2015 Videos


    App Frameworks


    Advanced Touch Input on iOS


    iOS에서 Core Animation, Metal, OpenGL을 내부 처리하는 방법
    결론적으로 iOS 8에는 4/60초의 묘사 처리가 걸렸고 iOS 9에서는 3/60초의 프레임이 된 것 같다.그리고 설비의 규격이 좋으면 2.5/60초의 프레임으로 줄일 수 있다.
    또 메탈·오픈GL은 GPU 처리 후 상단인 코어 애니메이션에 처리를 맡기지 않고 LCD에 직접 파이프라인을 연결했다.


    ( https://developer.apple.com/videos/play/wwdc2015/233/ )
    아이패드 에어2에서는 터치 스캐너가 60Hz에서 120Hz로 바뀌어 손가락이 움직이는 궤도를 더 매끄럽게 추적할 수 있다.나는 아이폰7의 상황을 조사했지만 찾지 못했다.누가 정보가 있으면 저에게 알려주세요.
    또 API 2개를 추가했다.UIEvent.coalescedTouchespredictedTouches(for:)Main touch를 매개 변수에 채우는 UItouch, UIEvent.predictedTouches(for:)Main touch의 다음 궤도를 예측하는 UItouch를 얻을 수 있습니다.
    for touch in touches {
        let line = line(for: touch)
        for coalescedTouch in event.coalescedTouches(for: touch) {
            addSample(for: coalescedTouch, to: line)
        }
        removePredictedSamples(from: line)
        for predictedTouch in event.predictedTouches(for: touch) {
            addPredictedSample(for: predictedTouch, to: line)
        }
    }
    

    Introducing Safari View Controller


    제목 SFSafariViewController에 대한 세션
    지금 생각해보면 ATS는 웹뷰에서 웹 사이트를 열 수 없도록 하기 위해 완성된 것이지만 ATS가 처리된 오늘날에 나는 그 소중함을 느꼈다.
    iOS 8을 차단하기 전에 이미 사용했으나 iOS 9 이상이 지원되기 때문에 제외#available(ios 9.0 *)했다.
    이 회의에서는 WKWebView의 추가 APIload(_:mimeType:characterEncodingName:baseURL:)만 한순간에 소개됐다.

    Mysteries of Auto Layout, Part 1


    제목이 대단하다.신비롭다.
    UIStackView의 개요와 Auto Layout의 제약에 대한 Tips & Tricks 세션
  • Maintainable Layouts
  • Changing Constraints
  • View Sizing
  • Self-Sizing Table View Cells
  • Priorities
  • Alignment
  • GANGAN UIStackView는 iOS 9 이상에서 지원됩니다.나는 iOS 8의 은혜를 끊은 것이 가장 크다고 생각한다.
    또 Aut Layout의 제약에 대한 동적 교체와 관련해서도 Add and remove가 아닌 Activate and deactivate가 좋다는 점을 분명히 했다.
    개인적으로는 인터페이스 빌더ctl + shift + クリック에서 중첩된 어셈블리가 한꺼번에 내려온다는 것을 알게 된 것이 바로 학습이다.

    그렇다면 이 회의의 시연은 Objective-C로 스피커의 취향에 따라 선택한 것인가.

    Mysteries of Auto Layout, Part 2


    Layout의 결정, 묘사에 대한 설명과 Auto Layout의 디버깅에 대한 Tips & Tricks 세션
  • The Layout Cycle
  • Legacy Layout
  • Constraint Creation
  • Constraining Negative Space • Unsatisfiable Constraints
  • Resolving Ambiguity
  • Layout의 제작에 대한 설명은 볼 만하다.(나도 다시 보고 싶다.)
    Auto Layout 디버깅과 관련해서는 "Log을 보고 적당히 조정했다"는 느낌이 들지만, accessibility identifiers를 설정하는 게 좋다.@dealforest선생님전에 말씀드렸잖아요.은 하나하나 수동으로 설치하는 것이 번거롭습니다. 스크립트가 있으면 됩니다.

    New UIKit Support for International User Interfaces


    소개회에서 Auto Layout은 나라마다 다른 글 등 좌우로 향하는 방향을 흡수한다고 소개했다
    예상과는 다르게 내용이 흥미롭다.
    그중UIImage.imageFlippedForRightToLeftLayoutDirection()을 사용하면 이미지의 좌우 반전도 대응할 수 있어 놀랍다.(사용장소는 RTL국가의 대응만 생각할 뿐...)
    Playground에서 다음 코드를 사용하여 확인할 수 있습니다.
    import UIKit
    
    let image = #imageLiteral(resourceName: "icon.JPG") // 何かの画像
    let imageView = UIImageView(image: image)
    
    imageView.semanticContentAttribute = .forceRightToLeft // 強制的にRTL環境に変更
    image.flipsForRightToLeftLayoutDirection
    
    imageView.image = image.imageFlippedForRightToLeftLayoutDirection()
    

    What's New in Storyboards


    Storyboard Reference 및 Custom Segue 세션 정보
    Scene Dock의 존재를 전혀 몰라서 매우 편리합니다.소속된 UIViewController는 생성 시 View만 생성하고 addSubView가 없는 상태에서는 언제든지 View를 표시할 수 있습니다.지금까지 IB에 뷰를 직접 놓고 히든을 해왔기 때문에 정말 감사합니다.

    이 세션의 본질은 아니지만 예전에 의문이 있었어요. iOS 표준인 리마인더스 애플리케이션에 가까운 화면으로 구성된 팁을 볼 수 있다는 것도 소득이다.

    What's New in UIKit Dynamics and Visual Effects


    DynamicItem 기반 중력 작업 및 UIVisual EffectView Blur 효과 사용 세션
    DynamicItem의 샘플은 여기.에서 다운로드할 수 있습니다.(Xcode8.1 확인을 통해 Swift3으로 전환됨)
    시위 행진 중 힘장(비슷한 것)을 시각화하는 방법은 알 수 없지만, 팬의 조작을 통해 인근 네 구석으로 이동한 검체를 확인할 수 있다.나는 LINE의 영상통화에서도 사용한 것을 보았지만 상당히 간단한 코드로 실현할 수 있을 것 같다.
    Blur 효과에 관해서는 특별히 코드로 추가할 수도 있다고 생각합니다...

    Media


    What's New in Core Image


    CIImage 및 AVFoundation 세션 정보
    세션에 사용한 샘플 애플리케이션인 CIFunchouse는 여기.에서 다운로드할 수 있지만 Last Revision은 2013-06-13이어서 확인되지 않았다.
    유감스럽게도 사용하고 싶은 TextDetector 샘플이 없어서 PixellatedPeople.m 103행의
    detector = [CIDetector detectorOfType:CIDetectorTypeFace context:nil options:options];
    
    열다
    detector = [CIDetector detectorOfType:CIDetectorTypeText context:nil options:options];
    
    Filters에서 Input Video 및 Pixellate People 사용

    되다
    아주 미묘하게 아는 사이인지 샘플을 직접 만들어서 검증해보고 싶었어요.
    (Xcode8.1 확인)

    System Frameworks


    Your App and Next Generation Networks


    IPv6 및 TCP 세션 정보
    애플리케이션에서 IPv6를 지원하는지 확인하기 위해 Tips를 설명했습니다.
    초보 확인 방법 참고: IPv6 대응 기간 전편!!응용 프로그램의 대응 여부를 확인하는 방법
    솔직히 딱 한 번 봤는데'아'밖에 생각이 안 나고 인터넷층과 회화층의 지식도 필요한 것 같아서...

    총결산


    물론 1년 이상 지나면 정보가 낡고 이미 알려진 사실도 있고 새로운 발견도 많다.
    iOS 10 출시 3개월 후 많은 앱이 iOS 8을 끄고 있는데, WWDC 2015의 대화를 다시 보면 행복해질 수 있다!!!
    이제 WWDC 2016을 다시 한 번 살펴보고 싶습니다!

    좋은 웹페이지 즐겨찾기