Fernando 기술 블로그

이것만 알면된다! 개발자가 바라본 WWDC19 총정리

content

What’s new? 🎁

애플의 연례 행사인 세계 개발자 컨퍼런스(WWDC) 2019 일정이 2019년 6월 3일부터 7일까지 매키너리 컨벤션 센터(McEnery Convention Center)에서 성황리에 마무리되었습니다. 이번 발표에서 소개된 새로운 많은 기능들과 제품들은 벌써부터 올 가을을 기다려지게 만드는 중이네요. WWDC19에서 소개된 신 제품과 iOS13의 기본 기능들은 개발자 뿐만아니라 일반 iOS 유저들에게도 많은 호응을 받고 있습니다.

일반적으로 소개된 다크모드, 사진첩 알고리즘 개선, 애플 아이디 로그인 지원은 사용자들에게는 편한 기능이 되겠지만, 개발자들은 새로운 OS에서 개발 중인 앱이 잘 돌아가는지 크래시는 나지 않는지 테스트도 해야 하고 지원되는 새로운 기능을 미리 익혀야 하기 때문에 즐거움 반 고통반의 시간을 보낼 것이라고 믿습니다.

그래서 기사를 통해 접할수 있는 내용 이외에도 개발자 관점에서 바라본 iOS13은 어떠한 변화가 있는지 요점만 쏙쏙 정리해서 알려드리겠습니다.

Signin with AppleId

content 2

모바일 앱에서는 간편 로그인이 중요한 기능 중 한 가지로 자리를 잡았는데요, 예를 들자면 소셜로그인 서비스들 중 페이스북, 구글, 카카오, 네이버 로그인 등을 꼽을 수 있습니다. 사용자는 기존에 이용하고 있는 서비스인 아이디 정보를 가지고 새로 접근하고자 하는 서비스에 간편하게 가입을 할 수 있는 좋은 기능인데 최근 개인정보보호 이슈가 연일 발생하면서 사용자들이 소셜 로그인에 대한 불신이 생기고 있는 것도 사실입니다

이번 WWDC19에서는 해당 문제점을 해결하기위해 야심 차게 Sign in With Apple이라는 서비스를 새로 오픈하였습니다. 사용자는 본인이 소유한 애플 아이디를 가지고 기존에 사용하던 소셜로그인과 같은 방식으로 이용을 할 수 있습니다. 아마 사용은 iOS 기기가 아니어도 가능은 하겠지만 iOS를 지원하는 기기에서는 FaceID, TouchID를 통한 로그인이 가능해지기 때문에 정말 편해질거라고 생각합니다. 하지만 단점도 있습니다.

소셜 로그인 기능이 있다면 반드시 Apple 로그인을 지원해야 함 😭

만약 소셜 아이디 로그인 기능이 들어 있는 앱이라면 반드시 Apple Login을 지원해야 합니다. 이번 새로 업데이트된 정책을 보면 해당 기능을 지원하지 않으면 리젝 사유에 해당한다고 적혀있어요. 이번 iOS13 업데이트 이후 빠르게 애플 로그인의 점유율을 높이기 위해 정책을 수정한 것 같아 보이네요. 해당 기능이 있는 앱을 개발하시는 분들이 있다면 체크 한번 해보셔야 할 것 같습니다

https://developer.apple.com/sign-in-with-apple/get-started/
Sign in with apple 에 대해 더 많은 정보가 궁금하시다면 이곳을 통해서 확인하시면 될 것 같습니다.

새롭게 소개된 SwiftUI 💄

content 3

이번 WWDC19에서 가장 많은 관심을 받고 있는 것은 바로 SwiftUI라고 해도 과언이 아닌 것 같습니다.

그 이유는 기존에 사용하던 Storyboard를 버리고 새로운 방식으로 UI를 만들 수 있는 SwiftUI를 새롭게 소개했기 때문입니다. 새롭게 소개된 SwiftUI 는 어떤 식으로 작동을 하고 기존의 UIStoryboard와는 어떤 식으로 다른지 간단하게 정리해보겠습니다.

SwiftUI는 기존에 발표 되었던 Flutter , React와 비슷한 방식으로 UI를 그릴 수 있도록 만들어진 것 같은 느낌을 받았습니다.

struct ContentView: View { 
    var body: some View { 
        Text("Hello World") 
    } 
}

위의 코드처럼 형태로 뷰를 그리는 코드를 추가 할 수 있으며, View안에 있는 body를 통해서 화면을 구성합니다. 기존 방식과는 다르게 UI를 구성하는 방법이 달라져서 새롭게 익혀야 한다는 부담은 있지만, 아직 지원 버전이 최소 iOS13까지는 올라가야 많이 활성화 될 것 같습니다 (최소 2년 이후에는 대세가 되겠죠 🚀)

SwitUI를 사용하게 되면 AppDelegate 이외에도 SceneDelegate 파일이 하나 더 추가됩니다. 화면을 관리해주는 생명주기가 하나 생겼습니다 자세한 것은 SwitUI 튜토리얼 포스팅에서 별도로 소개해드리도록 하겠습니다.

눈에 띄는 점은 실시간으로 UI를 그릴 수 있고 화면에 Drag & Drop으로 그린 화면이 코드로도 반영이 된다는 점입니다. UI를 그리기가 쉬워진 만큼 앞으로는 프론트앤드만 전문적으로 하는 iOS 개발자가 등장할 것 같은 느낌이 드는 부분입니다 이외에도 새롭게 추가되면서 많은 개발자들이 궁금해하는 SwitUI의 대표적인 질문 3가지를 정리해보았습니다

SwiftUI에 대해 가장 궁금해하는 대표적인 질문 3가지 🤔

  • 📱 SwiftUIiOS13, macOS10.15 이상 버전에서만 동작합니다.
  • 📐 SwiftUIAutoLayout이 없습니다, 대신 H/V Stack과 같이 그룹 지어 사용합니다 Autolayout Free)
  • 👨🏻‍💻 UIStoryboard로 작성된 코드 모두 SwiftUI로 포팅이 가능합니다.
  • 👍🏻 UIHostingController을 이용해서 UIKit과 함께 사용할 수 있습니다.

SwiftUI를 좀 더 자세히 알고 싶다면? 📝

새롭게 발표된 SwiftUI에 대한 관심이 뜨거운만큼 많은 능력자 분들께서 튜토리얼을 만들어서 공유를 해주고 계십니다 가장 먼저 살펴봐야 할 것은 SwiftUI의 애플 공식 세션 비디오입니다

애플 공식 비디오 세션 링크

유용한 샘플 프로젝트 🧳

Combine.framework 🧠

이번에 새롭게 추가된 combine.framework 는 기존에 iOS 개발자들에게는 익숙했던 RxSwift와 닮은 부분이 너무 많습니다. 스트림을 다루는 방식이기도 하고 기존 RxSwift에서 지원하는 오퍼레이터들을 비슷하게 사용할 수 있어 비교를 해보고자 했는데 이미 능력자가 해놓은 훌륭한 블로그 글 링크가 있어 해당 링크로 대체합니다.

https://medium.com/gett-engineering/rxswift-to-apples-combine-cheat-sheet-e9ce32b14c5b

그 외에도 iOS13에서 추가된 내용

  • SwiftUI
  • PencilKit
  • RealityKit
  • BackgroundTasks
  • Combine (RxSwift)
  • QuickLookThumbnailing
  • Create ML
  • Core Audio Types
  • Core Haptics
  • SoundAnalysis
  • VisionKit
  • Maps Webs Snapshots
  • LinkPresentation
  • Apple CryptoKit
  • IOUSBHost
  • Logging
  • MetricKit
  • NetworkingDriverKit
  • DriverKit
  • EndpointSecurity
  • ExecutionPolicy
  • SystemExtensions
  • USBDriverKit
  • USBSerialDriverKit
  • HIDDriverKit
  • WiFi

마치며 ✍🏻

이번 WWDC19에서 발표된 iOS13은 개발자들에게 선물이자 새로운 숙제를 안겨준 업데이트가 되었습니다. 앞으로 IOS가 어떻게 업데이트가 되고 새로운 SwiftUI를 활용한 새로운 프레임워크들이 나올지 기대가 됩니다 혹시나 설명이 틀렸거나 내용이 부족하다 싶으시면 아래의 댓글 기능을 이용해 남겨주세요 감사합니다.


Written by@fernando
iOS 개발자이며 다양한 업무 자동화에 관심이 많습니다.

GitHubTwitterLinkedIn