스위프트 플레이 그라운드의 진화

"코딩을 배우는 놀라운 플랫폼, 훌륭한 개발자 도구" 는 플랫폼이 제공하는 두 가지 주요 사용 사례를 요약하기 때문에 Swift Playgrounds에 대한 좋은 정의입니다. 한편으로는 도전 기반으로 코딩을 배우는 방법 (Swift에서) 더 많은 사람들에게 프로그래밍을 제공하도록 맞춤화 된 점진적 단계, 개념 및 도구를 통해 학습자가 학습 프로세스를 안내하는 접근 방식입니다. 반면 에 iPad 또는 고전적인 Xcode 프로젝트 / 작업 공간 외부에서 Swift 코드실행 하는 훌륭한 개발자 도구 는 개발자에게 기능을 프로토 타이핑하고 장치 기능 (예 : 가속도계)이 필요한 상호 작용을 쉽게 테스트하고 대규모 코드베이스에서 문제를 격리 할 수있는 기회를 제공합니다. 학습 경험 창출 : 몇 마디로 가장 빠른 방법 Apple의 API로 코딩합니다.

이 기사에서는 2014 년 도입부터 최근 업데이트에 이르기까지 놀이터의 진화에 대해 알아보고 몇 가지 흥미로운 기능과 사용 사례를 알려 드리고자합니다.

소개에서 Mac 앱으로

Playgrounds는 2014 년에 처음 도입되었습니다. Xcode> New Playground 는 완전히 새로운 Swift 언어로 실험을 시작하는 더 쉬운 방법이었습니다. 1 년 후 Xcode 7의 Playground가 인라인 결과, 페이지, 마크 업으로 업데이트되었습니다. 2016 년에 Swift Playgrounds iPad 앱 이 출시되었으며, 코딩 및 새로운 플레이 그라운드 형식을 배우기 위해 Apple에서 설계 한 코드 과제가 포함되었습니다. 거기에서 앱은 매년 ARKit 및 카메라 액세스, Playground 지원 및 Bluetooth 프레임 워크, 대부분의 iOS SDK 프레임 워크, 타사 구독과 같은 새로운 기능을 얻었습니다.

3.0 버전에서 모듈 은 Swift Playgrounds에 도착했습니다. 여러 액세스 제어 수준을 사용할 수있는 책 전체에서 공유되는 Swift 파일 폴더로, 모듈화, 확장 가능 및 재사용 가능한 코드가 가능합니다. Xcode Playground는 훌륭한 개발자 도구로 남아 있지만 Swift Playgrounds 앱은 학습 코딩 측면뿐만 아니라 소개에서 언급했듯이 많은 개발자 사용 사례까지 중요한 문제로 다루었습니다. 놀이터 책은 iPad에서만 실행되었습니다. 몇 주 전인 2020 년 3 월, Mac 용 Swift Playgrounds가 출시되었습니다. 그리고 여기 있습니다.

Swift Playgrounds Mac 및 iPad 앱, Xcode Playground

.playground 대 .playgroundbook

이미 알고 계시 겠지만, 플레이 그라운드는 보통 왼쪽에 에디터 뷰 와 함께 제공되며 , 여기에는 코드와 (결국) 마크 업 및 주석 기능이있는 산문이 포함됩니다. 오른쪽 의 라이브 뷰 (설정된 경우). 결과 사이드 바는 CustomPlaygroundDisplayConvertible프로토콜을 사용하여 사용자 정의 할 수있는 해당 라인의 값 표현을 보여줍니다 . : 제가 위에서 쓴 우리가 놀이터에 대해 이야기하지만, 두 가지 가능한 형식이있다 .playground하고는 .playgroundbook. 차이점은 무엇입니까?

.playground처음부터 볼 수 있습니다 : 그것은의 유일한 원활한 워크 플로우를 가능하게 스위프트 놀이터 애플 리케이션과 엑스 코드 사이에 호환되는 형식. 실제로 "Playground Xcode" 템플릿을 .playground사용하여 iPad에서 권한을 생성 한 다음 Xcode 또는 앱 모두에서 Mac에서 파일을 열 수 있습니다. 표준 플레이 그라운드를 사용하면 여러 페이지를 만들고 마크 업으로 산문을 작성할 수 있지만 모듈이 누락되었습니다 (공유 및 페이지 관련 소스가 있더라도). 기능을 구현하는 동안 즉각적인 온 디바이스 피드백을 제공하면서 완벽한 호환성으로 Xcode와 iPad 사이를 자주 전환해야하는 경우 올바른 선택입니다. 의 다른 강력한 기능은 Xcode와의 통합에서 비롯됩니다. 마지막 섹션에서 자세한 내용을 읽을 수 있습니다..playground

반면에 .playgroundbook독립 실행 형 앱에서 새 문서를 만들 때 기본 형식으로 폴더 및 plist 파일로 정의 된 패키지 기반 구조가 있습니다.

.playgroundbook 구조

이미 언급 한 모듈을 포함하여 코드를 구성하고 모듈화 하는 독점 기능이 제공됩니다 . 챕터 , 동일한 주제의 플레이 그라운드 페이지 그룹화, 컷씬 , 소개 또는 설명을 보여주는 전체 화면 페이지 (HTML 또는 Swift) 데이터를 저장하고 여러 세션에서로드하기위한 키-값 영구 저장소 페이지의 산문에 인용 된 용어를 정의 하는 용어집 학습자가 페이지의 과제를 진행하는 데 도움이되는 힌트, 스포일러 및 솔루션 시스템.

모듈을 제외하고 이러한 기능은 학습 경험에 중점을 둡니다. 따라서 풍부한 학습 경험 과 튜토리얼 을 만들고 싶다면 책 형식이 올바른 선택입니다 . 하지만 Xcode 없이도 코딩하고 프로토 타이핑 할 수있는 강력한 도구입니다. 지금처럼 Xcode는 .playgroundbook책을 열고, 그 구조와 파일을 탐색하고 수정할 수 있더라도를 실행할 수 없습니다 .

PlaygroundSupport 프레임 워크

Playground의 모든 기능을 활용하려면 PlaygroundSupport프레임 워크 를 사용해야합니다.이 프레임 워크를 사용하면 Apple의 설명서에 따라 다음을 수행 할 수 있습니다.

플레이 그라운드 페이지에 액세스하고 실행을 관리하고 라이브 뷰를 관리합니다. 영구 데이터 액세스 및 공유 학습자의 진행 상황을 평가하고, 힌트를 업데이트하고, 성공 텍스트를 표시합니다.

먼저 라이브 뷰를 설정합니다. 이렇게하면 플레이 그라운드가 UI를 렌더링 할 수 있습니다. 라이브 뷰는 모든 UIView, 컨트롤러 또는 SwiftUI 뷰일 수 있습니다.

PlaygroundPage.current.setLiveView(Text("🤓"))

PlaygroundPage.current.needsIndefiniteExecution = true

PlaygroundKeyValueStore.current["your-key"]

메시지로 보낼 수있는 전체 유형 목록은 여기에서 확인할 수 있습니다 . 메시지를 처리하려면 PlaygroundLiveViewMessageHandler라이브 뷰로 설정된 객체 에서 프로토콜을 채택하기 만하면 됩니다 UIViewController.

그리고 우리는 해냈습니다! Messenger.send(.happy)페이지에서 사용 하고 실행하면 라이브 뷰가 업데이트됩니다. 마찬가지로, 라이브 뷰에서 페이지로 메시지를 보내기위한 PlaygroundRemoteLiveViewProxyDelegate프로토콜이 있습니다 . 여기에서 전체 프레임 워크 문서를 찾을 수 있습니다 . Moods 책은이 기사의 끝에 있습니다.

액션의 기분 책

독립형 앱, Authoring Books, Xcode Playground

형식 외에도 사용하기로 결정한 도구는 놀이터 세계에서 차이를 만듭니다. 독립형 앱을 사용하면 복잡한 책을 만들 수 있습니다. iPad에서 코드를 작성한 다음 .playground 형식을 사용하여 Xcode에서 계속합니다. 더 일반적으로 코딩 학습 이외의 많은 사용 사례를 처리합니다. 물론 책을 운영하는 유일한 방법 입니다.

풍부한 학습 경험을 가진 책을 저작하는 것에 대해 이야기 할 때 앱에만 의존 할 수는 없습니다. 첫째, 편집기에서 산문을 편집 할 수 없습니다. 예를 들어를 입력 /*:This is a sentence*/하고 책을 닫고 다시 열면 문장이 산문으로 렌더링되지만 더 이상 수정 / 삭제할 수 없습니다 🤯. 편집 가능 영역이나 숨기기와 같은 주석도 마찬가지입니다. 렌더링 된 원시 마크 업 스위치가 없습니다. 또한 앱에서 챕터, 컷씬, 용어집, 힌트를 만들 수 없으며 상시 라이브 뷰와 편집기 (위에서 본 것처럼)간에 메시지를 처리 ​​할 수 ​​없습니다.

이러한 목적을 위해 코드 편집기에서 구조, plist, 소스 및 리소스를 수정하여 책을 편집해야합니다. 새 책을 처음부터 시작하려는 경우 Apple은 전체 책의 구조와 내용을 생성하는 Xcode 프로젝트 인 Author Template을 제공합니다 . 프로젝트를 빌드하면 .playgroundbook내보낼 준비가 된 a 가 생성됩니다. Xcode에 통합 된 템플릿은 많은 이점을 제공합니다. 예를 들어 스토리 보드 (컴파일 된 stoyboard는 책에 패키지로 포함됨)를 사용하는 더 쉬운 방법과 모든 책의 저작 도구입니다. 안타깝게도 템플릿은 Xcode 11.5로 빌드하지 못합니다. 현재 11.1이 마지막으로 지원되는 버전입니다.

결론을 내리기 전에 Xcode의 Playground는 개발자를위한 다른 강력한 사용 사례를 다루기 때문에 몇 마디 만 더 할 가치가 있습니다. 첫째, CreateML이 도입되기 전에 Xcode의 플레이 그라운드 는 Mac에서 바로 CoreML 모델훈련시키는 더 쉬운 방법이었습니다 . 편집기는 형식화 된 마크 업 또는 원시 마크 업 을 표시 할 수 있습니다. 산문을 생성하고 즉시 확인할 수있는 고유 한 기능입니다. 또한 TouchBar 콘텐츠를 사용자 지정하는 전용 API가 있습니다. 그리고 단계 실행에 의해 단계 (에디터의 왼쪽에있는 도구를 사용하여)는 실시간 데이터에 응답 할 수있는 기회를 가지고, 코드의 단일 라인을 실행할 수 있습니다. Xcode의 Playground는 프레임 워크의 API를 표시하거나 테스트하기 위해 WWDC18 세션표시된 대로 타사 프레임 워크가져올 수도 있습니다 . 프레임 워크 대상이있는 경우 프레임 워크 프로젝트를 Playground의 창으로 드래그하면 작업 공간에서 변환됩니다. 프레임 워크를 가져 와서 플레이 그라운드로 가져올 수 있습니다.

누군가는 Swift Playgrounds 앱을 일종의 "아이 패드 용 가벼운 Xcode"라고 지적했습니다. Mac 용 Swift Playgrounds (그리고 iPad 용으로 소문난 Xcode 포팅?)의 출시는 두 제품이 서로 다른 사용 사례를 가진 제품임을 한 번 더 명확히합니다. 하지만 다음 단계는 어떻습니까? Xcode와 앱에서 플레이 그라운드 책을 더 쉽게 작성할 수있는 방법을보고 싶습니다. Swift Package Manager와의 통합 (정말 재미있을 수도 있습니다) 또는 PlaygroundSupport 프레임 워크의 일부 새로운 API.

WWDC 및 향후 업데이트가 놀이터에 어떤 소식을 가져올 지 살펴 보겠습니다. 🍿 그동안 Moods.playgroundbook 샘플 다운로드 링크, 전체 Apple 문서 및 놀이터에 대한 WWDC 비디오 재생 목록을 포함하여 몇 가지 유용한 리소스가 있습니다. 읽어 주셔서 감사합니다!

Suggested posts

대유행 중 회전

Slack에서 필수 비즈니스 구축

대유행 중 회전

Clerk를 사용하면 팀이 Slack에서 SMS를 보내고받을 수 있습니다. 2020 년 초, 우리의 사명은 Slack을 기반으로 최초의 10 억 달러 규모의 비즈니스를 구축하는 것이 었습니다.

코드없이 SwiftUI 디자인 블록 배우기

최고의 SwiftUI 학습 경험을 구축하는 전 Apple 디자이너

코드없이 SwiftUI 디자인 블록 배우기

제 이름은 Sahand Nayebaziz입니다. 저는 Photoshop과 그래픽 디자인으로 시작한 인터페이스 디자이너입니다.

Related posts

Swift— 프로토콜은 어떻게 작동합니까?

프로토콜과 위임은 Swift의 기본 개념입니다. 작동 방식과 사용 방법에 대해 알아 보려면이 빠른 가이드를 읽어보세요.

Swift— 프로토콜은 어떻게 작동합니까?

프로토콜은 Swift에서 매우 간단하지만 기본적인 개념입니다. 프로토콜은 코드 계약과 같습니다.

Mac App Store에없는 Mac에서 iOS / iPadOS 앱을 실행하는 방법

Mac App Store에없는 Mac에서 iOS / iPadOS 앱을 실행하는 방법

M1 칩을 실행하는 Mac이있는 경우 Mac App Store에 나열된 iOS / iPadOS 앱만 실행할 수 있습니다. 하지만 Mac App Store에 나열되지 않은 iOS / iPadOS 앱은 어떻습니까? 공식적으로는 할 수 없습니다.

더 접근하기 쉬운 오디오 플레이어

실명 및 시각 장애가있는 사람들을위한 공감력으로 구축하는 법 배우기

더 접근하기 쉬운 오디오 플레이어

작성자 : Francis Mariano, iOS 엔지니어 Headspace의 대담한 사명 선언문 인 세상의 건강과 행복을 개선합니다. 우리가 그곳에 사는 사람들의 다양한 경험을 인식하게 만드는 것.

SwiftUI를 사용하여 원 안에 텍스트를 표시하는 방법

SwiftUI를 사용하여 원 안에 텍스트를 표시하는 방법

이번에는 SwiftUI를 사용하여 원 안에 텍스트 레이블을 표시하는 몇 가지 방법을 살펴 보겠습니다. ZStack보기를 사용하여 세 가지 다른 방법을 자세히 살펴 보겠습니다.