Medium - Developer Checklist; What Should You Not Miss From WWDC 2019?

원문 - Boudhayan Biswas

Trend 파악을 Medium 기고문 요약 포스팅 - 개발자 체크리스트 : WWDC 2019에서 뭐 놓치신 건 없나요?

500x400 Photo by Danielle MacInnes on Unsplash

그러니까 올해의 WWDC 2019가 열린지도 벌써 한달이 되어갑니다. 많은 개발자들은 여전히 애플이 개발부분에 대해 어떤 것을 추가했고 어떤 것을 업데이트 했는지 알아내느라 바쁘죠. 크고 작은 발표들이 있었지만 우리 개발자들은 중요한 건 어떤 것으라도 놓치고 싶어하지 않죠. 그래서 저는 우리가 놓치지 않아야하는 체크리스트 항목을 만들었습니다. 간결하고 간단하게 정리되어 있습니다.

iOS:

  1. iOS 13에서는 앱이 위치정보를 조회하는 것을 딱 한번만 허용할 수 있습니다. 지금까지는 3가지 옵션이 있었습니다. 항상, 사용하는 동안, 허용하지 않음. 그런데 딱 한번만(Just once) 옵션이 추가된 것입니다. 처음에 당신은 위치정보를 앱에게 공유할 수 있으며 그런다음 필요할 때는 다시 요청하게 될 것입니다.
  2. 그 다음은 사람들이 가장 열광하고 유명했던 발표입니다. 그렇습니다 저는 “Apple Sign-in”에 대해서 얘기하려고 합니다. 그것은 애플의 요구사항으로 앱 개발자들은 앱이 외부 로그인을 제공하더라도 새로운 단일 로그인 솔루션을 구현해야 한다는 것입니다.
  3. 사용자는 뷰컨트롤러 모달을 인터렉션을 이용해서 종료시킬 수 있습니다. 이것은 앱을 종료시킬 수도 있습니다. iOS 13에서는 기본적으로 사용자는 스와이프를 통해 모달을 내려버릴 수 있습니다. 그래서 당신이 새로운 앱을 개발한다면 이것에 대해 확실히 고민해봐야합니다. 이 기능은 isModalRepresentation = false를 이용하여 해제시킬 수 있습니다.
  4. UISegmentedControlUIStepper은 iOS 13에서 전체적인 디자인 업데이트와 함께 달라졌습니다.
  5. Localization이 iOS 13에서 새롭게 업데이트 되었습니다. 이제 사용자는 앱마다 다른 언어를 선택해서 아이폰에 설치할 수 있습니다. 개발자는 개발에 대해서 아무것도 고려할 것이 없습니다. Settings 앱이 관리해 줄 것입니다.
  6. iOS13은 거의 1500개의 다른 시스템 아이콘을 가지고 있으며 UIImage는 새로운 초기화 함수를 얻었습니다. UIImage(systemName: ) 이것을 통해 당신은 시스템 아이콘으로 초기화할 수 있습니다.
  7. 지금까지는 Safari에서 다운로드를 받을 경우 그것은 downloads폴더로 바로 이동했습니다. 그러나 올해부터 사파리가 업데이트 되었습니다. 이제 기본 다운로드 폴더를 당신이 원하는 곳으로 변경할 수 있으며 심지어 USB 드라이브도 가능합니다.
  8. UIStroyboardSegue의 개선이 있었습니다. 애플은 새로운 IBSegue 수정자를 소개했습니다. 이제 당신은 반드시 초기화 되어야 했던 추가적인 context와 매개변수를 목적지 뷰컨트롤러로 바로 전달할 수 있습니다.
  9. 당신의 앱은 예약 정보를 시리에게 context와 함께 특정 시간에 보낼 수 있습니다. 따라서 사용자는 관련 환경에서 적절한 행동을 취할 수 있죠. 예를 들면 호텔 예약을 할 수 있고 항공 수속에 대한 리마인더나 렌터카 반납에 대한 도움을 줄 수 있습니다.
  10. Core NFC framework와 관련하여 앱은 NDEF 포맷을 포함하여 태그를 사용하는 것이 가능합니다. 또한 이 프레임워크는 ISO7816, MIFARE, ISO 15693, FeliCa와 같은 native protocol을 사용한 태그를 읽거나 쓰는 것을 지원합니다.
  11. 당신은 Core Data 저장을 CloudKit와 동기화 시킬 수 있습니다. 이것은 사용자에게 매끄럽게 모든 기기의 데이터를 접근할 수 있게 합니다. CloudKit를 사용한 Core Data는 로컬의 영구성과 클라우드의 백업, 분산의 장점을 합친 것 입니다.
  12. Metal은 GPU가 그래픽 제어와 파이프라인 연산을 더욱 잘 할수 있게 해주고 향상된 GPU 처리과정을 쉽게 수행할 수 있도록하는 특징이 추가되었습니다. 그리고 다른 종류의 GPU를 지원하는 필요가 있을 때 관련 작업을 쉽게 만들어 줍니다. Metal 시뮬레이터와 같은 새로운 도구들은 당신이 보다 빠르게 시작할 수 있고 Metal이 앱에서 정확하게 사용되고 있는지 이해하는데 도움이 될 것입니다.
  13. 새로운 VisionKit 프레임워크를 통해 앱은 사용자가 카메라를 이용해 문서 스캔을 할 수 있도록 해줍니다. 시각적 텍스트 인식기와 이 기능을 함께 쓰면 스캔된 문서를 통해 텍스트를 추출하는 것도 가능합니다.
  14. Core ML 3는 이제 기기에서 모델 개인화를 지원하여 모델을 사용자의 특정 정보를 사용하여 튜닝하거나 재교육을 하는 업데이트를 앱에서 수행할 수 있습니다. Core ML은 100가지의 종류가 넙는 레이어와 함께 동적 신경 네트워크를 지원하는 등 크게 확장되었습니다.
  15. 새로운 PencilKit 프레임워크는 손으로 그린 컨텐츠를 쉽고 빠르게 앱으로 통합할 수 있습니다. PencilKit는 사용자의 손가락이나 Apple Pencil을 통한 입력을 받을 수 있는 환경을 제공해주며 iOS나 macOS를 이용해 고해상도 이미지로 변환해서 출력해줍니다. 도구환경은 제작, 지우기, 선 선택입니다.
  16. 새로운 Haptic 프레임워크는 햅틱의 패턴을 조합할 수 있도록하여 당신의 앱의 햅틱 피드백을 커스텀할 수 있습니다.
  17. 일반 보안동작을 더욱 안전하고 효과적으로 수행하기 위해 새로운 Apple CryptoKit 프레임워크를 사용하세요. 암호화를 수행하기 위해 계산이나 비교하는 작업이나 공개키 암호를 생성하거나 디지털 서명을 평가하거나 대칭키를 생성하거나 하는 작업들 말이죠. 그리고 그것들을 메시지 인증이나 암호화에 사용하세요.
  18. Combine은 시간의 흐름에 따라 값들을 처리할 수있는 새로운 명시적 Swift API 입니다. 이 값들은 사용자 이벤트, 네트워크 응답, 예정된 이벤트, 그리고 다른 비동기적 데이터를 말합니다. Combine을 이용해서 당신은 퍼블리셔가 값의 변화를 드러내게 하고 subscriber가 그러한 갓들을 수신할 수 있도록 선언할 수 있습니다. Combine은 이벤트 처리 코드를 중앙화하고 중첩된 클로저나 컨벤션 기반 콜백들을 줄임으로써 당신의 코드를 읽기 쉽고 유지하기 쉽게 만들어줍니다.
  19. 당신의 앱의 컨텐트가 업데이트 되도록 유지하세요 그리고 오랜시간이 걸리는 작업은 앱이 백그라운드에 있는 동안 새로운 BackGroundTasks프레임 워클 ㄹ이용해서 수행되도록 하세요.
  20. RealityKit는 3D 컨텐트 시뮬레이션과 렌더링을 통해 당신의 앱의 현실성을 증대 시키는데 쓰이는 프레임워크입니다. 애니메이션을 비롯하여 물리, 공간 음향 효과 기능들을 당신의 AR 경험에 추가할 수 있습니다. RealityKit 효과 정보는 ARkit를 통해 가상 오브젝트를 실사와 통합함으로써 제공됩니다.
  21. Symbol 이미지들은 당신의 앱에서 사용하는 일관된 아이콘 세트를 제공합니다. 그리고 앱의 특정 컨텐트나 다른 사이즈들에 적용되는 것을 보장합니다. Symbol 이미지들은 SVG 포캣을 사용하여 벡터기반 모양으로 구현되었으며 선명도를 잃지않고 확대될 수 있습니다. 그리고 weight나 아래선 정렬과 같이 텍스트와 연관된 일반적인 특징들을 지원합니다.
  22. iOS 13에서 사용자는 당신의 앱에서 다수의 사용자 인터페이스를 만들고 관리할 수 있습니다. 그리고 app switcher를 이용하여 바꿀 수 있습니다. iPad에서는 사용자는 여러개의 앱 인스턴스를 옆으로 나열하여 표시할 수 있습니다. UI 디스플레이의 각요소는 다른 컨텐트나 다른 방식의 디스플레이로 표시됩니다. 예를들어 캘린더 앱은 특정 날의 약속을 표시하고 옆에는 한 달을 표시할 수 있습니다.
  23. SwiftUI는 iOS, macOS, watchOS, tvOS의 사용자 인터페이스를 구성함에 있어 현대적인 접근법입니다. 당신은 선언적인 기본 프로그래밍의 조합으로 동적인 인터페이스를 이전보다 훨씬 빠르게 만들 수 있습니다. 이 프레임워크는 당신의 앱의 사용자 인터페이스에 대해 view와 control과 레이아웃구조 등을 선언하는 것을 제공합니다. 탭과 제스쳐, 그리고 다른 종류의 입력에 대한 이벤트 핸들러를 제공하고 앱 모델에서 뷰까지 이동하여 데이터의 흐름을 관리하고 제어할 수 있습니다.
  24. 보이스 컨트롤 접근성 기능이 사용되면 iOS기기가 보이스 컨트롤 모드에 있다는 것을 표시하기 위해 파란색 마이크 아이콘이 디바이스 인디케이터 상단에 표시됩니다. 이 아이콘은 해당 기능이 사용되지 않을 때는 희미해집니다.
  25. iOS의 새로운 특징 중 하나는 파일 앱이 SMB를 이용하는 서버에 연결할 지 선택할 수 있는 것입니다. 이 기능은 beta 2의 기능만 동작합니다. iOS 사용자는 집의 NAS와 연결하는 것이 가능합니다.
  26. 사파리 Share Sheet로 부터 웹페이지를 공유할 때 PDF나 웹 저장소를 선택하는 옵션이 생겼습니다. 그리고 자동적으로 적절한 포맷을 선택하는 옵션도 있습니다.
  27. 더 이상 스팸 전화는 없습니다. iOS는 이제 모르는 번호로 전화올 때 강제로 무음이 되는 것을 지원합니다.
  28. iOS 13에서 UIImageAssetregisterImage:withTraitCollection이라는 새로운 메소드를 가지게 되었습니다. 이것은 이미지를 자동적으로 밝거나 어둡게 만들어주는데 사용됩니다.
  29. 적은 모바일 데이터 사용을 원하시나요? 당신이 로밍중 일때 데이터의 낭비를 피하기 위한 새로운 Low Data 모드가 추가되었습니다.
  30. Wifi가 없는 경우에 우리는 큰 사이즈의 앱을 다운받는데 어려움을 겪곤 합니다. 그러나 iOS 13에서는 한 줄기 빛을 볼 수 있습니다. 이제 제한은 200MB로 증가되었습니다. 여전히 부족한가요? 그럼 설정에서 제한을 해제할 수 있습니다.
  31. 다른 사람과 사진을 공유할 때 원본 정보를 넣을 수 있습니다. iOS 13에서는 사진을 공유할 때 원본 정보를 포함할 수 있는 옵션이 생겼습니다.
  32. iPhone을 음소거할 때 기쁘실 겁니다. Apple은 Apple 펜슬 충전 인디케이터와 일치하는 완전히 새롭게 디자인된 음소거 인디케이터를 소개했습니다.
  33. 이제 UIViewController의 하위 클래스를 추가적인 context와 매개변수로 초기화할 수 있습니다. (의존도 주입이 필요합니다.)
  34. 당신이 delegate의 지지자가 아니라면 여기 좋은 소식이 있습니다. iOS 13은 몇몇 delegate 기반의 API를 block 기반 API로 변경했습니다.
  35. 이제 앱을 지우기 위해서 꾹 눌렀다가 x아이콘을 누를 필요가 없습니다. 앱스토어 업데이트 페이지에서 왼쪽 스와이프로 간단하게 앱을 지울 수 있습니다.
  36. 지금까지 스샷은 오직 이미지 포맷에서만 가능했습니다.iOS 13에서는 pdf 포맷에서도 스샷을 찍을 수 있습니다.
  37. iOS 13은 _visualRecursiveDescription이라는 새로운 private API가 생겼습니다. 이 API는 뷰 계층구조를 시각적으로 표현하는 것이 가능합니다. LLDB 디버깅을 할 때 매우 유용합니다.
  38. UICollectionViewCompositionalLayout이라는 새로운 클래스가 UIKit에 추가되었고 레이아웃 구성을 할 때 UICollectionViewLayout을 커스텀하지 않아도 쉽게 할 수 있습니다.
  39. UITableViewStyle enum은 새로운 public 케이스인 UITableViewStyleInsetGrouped를 가지게 되었습니다. 이것은 그룹 스타일의 테이블 뷰를 만들 때 사용됩니다.
  40. 파일 관리 API를 쓰는 iOS 앱은 이제 전체 폴더에 대한 r/w권한을 얻을 수 있습니다.
  41. 스크롤뷰를 스와이핑하는데 지치셨나요? iOS 13에서는 긴 문서에 대해 스크롤 인디케이터가 생겨서 드래그를 할 수 있습니다.
  42. 어린이들을 위한 APP은 외부 광고나 분석 소프트웨어를 포함할 수 없습니다.
  43. MDM은 민감한 정보의 접근을 제공합니다. MDM 앱은 모바일 기기 관리 기능을 반드시 요구해야 하고 상업 단체, 교육 기관, 정부 기관, 그리고 MDM을 부모 동의에 사용하는 일부 기업에게만 제공됩니다. MDM 앱은 어떤 목적으로도 모든 데이터를 팔거나 사용하거나 외부 단체에 드러내는 것을 금지합니다. 그리고 그들의 개인정보방침에 이 항목을 동의해야 합니다.

Summary

  • WWDC 2019 iOS 주요 변경사항 정리

© 2019. All rights reserved.

Powered by Hydejack v8.1.1