본문 바로가기
C.W.K.
Stream
Lesson 03 of 05 · published

양쪽 다 SwiftTerm

~10 min · swiftterm, pin, ios, embed, emulator

Level 0불씨
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

핀 하나, 유리 둘

맥 호스트는 SwiftTerm 을 AppKit 으로 감싸. 폰은 SwiftTerm 을 UIKit 터미널 뷰 위의 SwiftUI 로 감싸. 둘 다 같은 임베드된 코어, 같은 정확한 핀에 붙어. 우연이 아니고 언어 강의의 예고편도 아니야. 글리프 버그는 핀 하나지 포크 둘이 아니야. 한글 IME 조합 표시는 코어 하나의 문제지, 맥만의 패치와 iOS 만의 바람이 아니야. 트랙 1 이 이미 에뮬레이터를 다시 짜지 않겠다고 했어. 이 레슨은 두 번 다시 짜지 않겠다고 해.

핀이 정확한 건, 떠 있는 범위가 가리킬 커밋 없이 수요일 폰이 화요일 맥이랑 다르게 느껴지게 하는 길이라서야. 핀을 옮기는 건 결정이고, 기록되고, 두 표면에 같이 적용돼. "iOS 는 나중에 따라잡을게" 하는 맥만의 범프는 달력을 가진 포크야. 이 가족에서 나중은 포크가 편해지는 방법이야.

코어는 여전히 가족을 소유하지 않아

SwiftTerm 은 글자를 그려. 리스, 구경꾼, arrangement, 게이트웨이를 소유하지 않아. 그건 코어 위, 앱 코드, 두 표면, 공유 와이어로 말해. 가족 규칙이 에뮬레이터 위로 못 말해지면(구경꾼이 리사이즈하지 않게 하려고 SwiftTerm 에 로컬 diff 가 필요하면) 가족 규칙이 없는 거야. 코어를 바꾸는 결정이 있는 거고, 유리 둘에 대해 동시에, 공개로 해야 해.

코어를 설정해. 글꼴, 스크롤백, 표준 팔레트, 맥에서 Option 을 Meta 로. 구경꾼이 뭔지 알게 패치하지 마. 다음 레슨의 관찰은 리사이즈하면 안 된다는 건 와이어와 리스 규칙이지 렌더러 플래그가 아니야. 에뮬레이터에 넣으면 누군가 폰에서 보는 첫날에 핀을 포크하는 길이야.

언어는 형제 퀘스트야

Swift 라는 언어(액터, 격리, 뷰가 UIKit 표면을 감싸는 방식)는 미뤄. 그걸 위한 형제 퀘스트가 있거나, 있을 거야. 이 레슨의 제품 사실은 더 좁아. 에뮬레이터 의존이 공유되니 일일 드라이버 기준이 두 번째 파서를 키우지 않는다는 것. Swift 를 배우러 왔으면 집이 틀린 거야. 주머니 Smolder 가 왜 두 번째 터미널 코어를 안 싣는지 이해하러 왔으면 집이 맞아.

정체성 크롬은 여전히 코어 밖에 앉아. 잔불 레일, 재 타이틀바, 워드마크. 양쪽 크기 유리에서 SwiftTerm 을 둘러싼 뷰지, 에뮬레이터더러 주황으로 칠하라고 한 셀이 아니야. 내용 색은 폰에서도 표준이야. 주머니 TUI 도 TUI 야. 아이콘이랑 맞추려고 잔불로 칠하는 건 맥에서와 같은 싸움이야, 더 작은 방에서.

같은 핀, 양쪽 표면. 코어를 설정해. 패치하지 마. 유리 하나만 범프해서 포크하지 마. Swift 라는 언어는 형제 퀘스트에서 기다려. 이 레슨은 공유 에뮬레이터를 소유하지, 컴파일러 책을 소유하지 않아.

Code

제품 하나, 정확한 핀 하나, 플랫폼 둘·swift
// swift-tools-version: 6.2
import PackageDescription

let package = Package(
    name: "Smolder",
    platforms: [
        .macOS(.v14), .iOS(.v17)
    ],
    dependencies: [
        .package(
            url: "https://github.com/migueldeicaza/SwiftTerm.git",
            exact: "1.20.0"   // both glasses; bump is one decision
        )
    ],
    targets: [
        .target(name: "SmolderMac",  dependencies: ["SwiftTerm", "SmolderWire"]),
        // iOS is a separate Xcode project with the same exact 1.20.0 pin.
        .target(name: "SmolderWire", dependencies: []) // no AppKit, no SwiftTerm
    ]
)

// Illegal
//   exact pin on Mac, from: "1.20.0" on iOS
//   a local patch against SwiftTerm "just for spectators"
//   teaching Swift actors in this file

External links

Exercise

맥이랑 아이폰에서 같아야 하는 에뮬레이터 행동 하나를 이름 붙여 (글리프, 붙여넣기 모드, 조합 표시). 표면마다 버전 범위가 떠 있으면 뭐가 흘러가는지 써. 그다음 코어 위에 남아야 하는 가족 기능 하나 (구경꾼, 리스, 잔불 레일) 와, 그걸 구현하려고 SwiftTerm 을 패치하면 리뷰 코멘트에 넣을 문장 하나를 써.
Hint
기능이 구경꾼이 뭔지 알아야 하면 코어 위야. 행동이 "이 모드에서 ESC 가 뭐 하냐"면 코어야, 같은 핀이어야 해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.