Tanrei Swift पैकेज में SwiftUI व्यू, एक थीम एनवायरनमेंट और जनरेट किए गए टोकन कॉन्स्टेंट मिलते हैं। यह iOS 17 और macOS 14 या उसके बाद के वर्शन पर चलता है, और Swift 6 लैंग्वेज मोड के लिए लिखा गया है।
अभी प्रकाशित नहीं
Tanrei अभी Swift Package Manager पर नहीं है। कोई प्लैटफ़ॉर्म मौजूदा स्पेक की बराबरी पर आने के बाद ही प्रकाशित होता है, और तब तक SwiftUI का CI रुका हुआ है। नीचे “सोर्स से” बताता है कि पैकेज chnotchy/tanrei से कैसे जोड़ा जाता है; “प्रकाशित होने के बाद” बताता है कि तब इंस्टॉल कैसे होगा।
आज बिल्ड नहीं होता
SwiftUI पैकेज अभी मौजूदा स्पेक और टोकन तक नहीं पहुँचा है: उसका सोर्स जनरेट किए गए टोकन कोड के एक पुराने वर्ज़न के हिसाब से लिखा गया था, और आज के कोड के साथ कंपाइल नहीं होता। जब तक वह बराबरी पर नहीं आता, उसका CI रुका हुआ है, और स्थिति पेज उसके कंपोनेंट को पीछे के रूप में दिखाता है। नीचे के चरण बताते हैं कि उसे किसी ऐप में कैसे जोड़ा जाता है; पैकेज के बराबरी पर आने के बाद ये काम करेंगे।
रिपॉज़िटरी को अपने ऐप के बग़ल में क्लोन करें और क्लोन को लोकल पैकेज के रूप में जोड़ें: Xcode में File → Add Package Dependencies… → Add Local… चुनें और वह फ़ोल्डर चुनें जिसमें Package.swift है, या अपने Package.swift में:
dependencies: [
.package(path: "../tanrei")
],
targets: [
.target(name: "App", dependencies: [.product(name: "Tanrei", package: "tanrei")])
].package(url: "https://github.com/chnotchy/tanrei", branch: "main") लोकल क्लोन की जगह सीधे रिपॉज़िटरी से जुड़ता है और उसके साथ अपडेट होता है।
Xcode में File → Add Package Dependencies… चुनें और रिपॉज़िटरी का URL डालें, या इसे Package.swift में जोड़ें:
dependencies: [
.package(url: "https://github.com/chnotchy/tanrei", from: "<version>")
],
targets: [
.target(name: "App", dependencies: [.product(name: "Tanrei", package: "tanrei")])
]पैकेज मैनिफ़ेस्ट रिपॉज़िटरी के रूट में है, क्योंकि Swift Package Manager Git डिपेंडेंसी वहीं से रिज़ॉल्व करता है। Swift की रिलीज़ सादे सिमैंटिक वर्शन से टैग की जाएँगी।
import SwiftUI
import Tanrei
struct DeployView: View {
@State private var isDeploying = false
var body: some View {
TanreiButton("डिप्लॉय करें", variant: .filled, action: { isDeploying = true })
.disabled(isDeploying)
}
}action: स्पेक का click है; ट्रेलिंग क्लोज़र icon: स्लॉट है (TanreiButton("डिप्लॉय करें", action: deploy) { Image(systemName: "arrow.up") })। disabled नाम का कोई पैरामीटर नहीं है। Tanrei, SwiftUI के अपने .disabled(_:) एनवायरनमेंट के अनुसार चलता है, इसलिए किसी कंटेनर को अक्षम करने पर उसके भीतर के बटन भी अक्षम हो जाते हैं, जैसा किसी सिस्टम कंट्रोल के साथ होता।
डिफ़ॉल्ट रूप से Tanrei सिस्टम की कलर स्कीम और सुलभता की Increase Contrast सेटिंग के अनुसार चलता है। दोनों में से किसी को भी थीम मॉडिफ़ायर से बदला जा सकता है:
ContentView()
.tanreiTheme(TanreiTheme(appearance: .dark, contrast: .high))जब फ़ॉन्ट आपके ऐप में रजिस्टर हों, तो टाइप स्केल Inter इस्तेमाल करता है (जापानी के लिए Noto Sans JP, कोड के लिए Roboto Mono), वरना सिस्टम फ़ॉन्ट पर आ जाता है। टेक्स्ट स्टाइल के नाम उनके स्तर पर रखे गए हैं और वे एनवायरनमेंट में मौजूद सिस्टम पर मिलते हैं (@Environment(\.tanreiSystem) private var system): सेक्शन के शीर्षक के लिए .tanreiTextStyle(system.typescale.heading2), चलते टेक्स्ट के लिए system.typescale.body, किसी कंट्रोल के लिए system.typescale.label — और ये Dynamic Type के साथ स्केल होते हैं; .tanreiTextStyle(system.typescale.heading1, emphasized: true) वेट में हेडिंग फ़ैमिली का एम्फ़ेसिस स्टेप जोड़ता है। कोने system.shape.cornerSmoothing के अनुसार बनते हैं: 0 पर .circular, और 0 से ऊपर किसी भी मात्रा पर OS का .continuous कोना।