शुरुआती लोगों के लिए इस ट्यूटोरियल में, आप एक उदाहरण के रूप में लोकप्रिय इंटरनेट चक नॉरिस डेटाबेस (आईसीएनडीबी) का उपयोग करके एपीआई कॉल करने के लिए स्विफ्टयूआई का उपयोग करने की मूल बातें सीखेंगे। यह स्विफ्ट और स्विफ्टयूआई का उपयोग करके जल्दी और आसानी से एक चुटकुला प्रदर्शित करेगा।
आप देखेंगे कि कैसे क्रॉस-प्लेटफ़ॉर्म फ्रेमवर्क स्विफ्टयूआई हमें आईओएस, आईपैडओएस, मैकओएस, वॉचओएस, ऐप क्लिप्स और टीवीओएस में ठीक उसी कोड का उपयोग करने देता है, जो अन्यथा असंभव होता।
इसके साथ ही, आप स्विफ्ट 5.5 में पेश किए गए एसिंक-वेट का उपयोग करेंगे, जो आईओएस> v15.0 चलाने वाले आईफोन सहित नए ऑपरेटिंग सिस्टम के लिए काम करता है। यह वास्तव में यूआई थ्रेड को फ्रीज़ किए बिना एक बटन के क्लिक पर डेटा नेटवर्क कॉल को अतुल्यकालिक रूप से करने के हमारे काम को सरल करता है।
मैं उन कोड परिवर्तनों को साझा करूंगा जो आपको पहले करने होंगे। फिर अगले भाग में, मैं कोड का एक संक्षिप्त विश्लेषण साझा करूंगा ताकि शुरुआती भी समझ सकें कि क्या हो रहा है।
स्विफ्ट और स्विफ्टयूआई में एपीआई कॉल कैसे करें
सबसे पहले, आपको Xcode इंस्टॉल करने के लिए एक मैक की आवश्यकता होगी। एक बार यह स्थापित हो जाने के बाद, Xcode खोलें और एक नया प्रोजेक्ट बनाएं। फिर iOS, macOS, tvOS, या watchOS के लिए "App" चुनें।
ContentView
एक बटन जोड़ने और राज्य . का उपयोग करने के लिए बस अपनी मौजूदा ContentView SwiftUI फ़ाइल को अपडेट करें ICNDB API से जोक रिटर्न के रूप में प्रदर्शित टेक्स्ट को रीफ्रेश करने के लिए वैरिएबल:
import Foundation
import SwiftUI
struct ContentView: View {
@State private var joke: String = ""
var body: some View {
Text(joke)
Button {
Task {
let (data, _) = try await URLSession.shared.data(from: URL(string:"https://api.chucknorris.io/jokes/random")!)
let decodedResponse = try? JSONDecoder().decode(Joke.self, from: data)
joke = decodedResponse?.value ?? ""
}
} label: {
Text("Fetch Joke")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct Joke: Codable {
let value: String
}
एक चुटकुला लें!
यदि आप बिल्ड/प्ले दबाते हैं, तो ऐप आपके द्वारा ऊपर चुने गए किसी भी प्लेटफ़ॉर्म में बन जाएगा:
कोड विश्लेषण
यदि आप रैंडम जोक URL पर जाते हैं, तो आप देखेंगे कि डेटा JSON प्रारूप में है। आप इसे कॉपी कर सकते हैं और इसकी संरचना को देखने के लिए JSON लिंटर का उपयोग करके यह पता लगा सकते हैं कि Joke ऑब्जेक्ट की कौन सी संपत्ति की आवश्यकता है।
उसके आधार पर, आप ऊपर दिए गए कोड को निर्धारित करते हैं। आप JSON डेटा ऑब्जेक्ट से वास्तविक स्विफ्ट क्लास या स्ट्रक्चर में जाने के लिए कोडेबल प्रोटोकॉल (उर्फ इंटरफेस) का उपयोग करते हैं, और आप उस डेटा के लिए गुण बनाते हैं जिसे आप स्टोर करना चाहते हैं (हमारे मामले में मूल्य)।
JSONDecoder कोडेबल ऑब्जेक्ट का उपयोग करके JSON स्ट्रिंग को पार्स करने में हमारी मदद करता है। यह प्लेटफ़ॉर्म की परवाह किए बिना काम करता है क्योंकि ऐप लॉन्च करने पर लोड होने वाले पेज का एक ही नाम होता है ContentView मंच की परवाह किए बिना।
ऐप्लिकेशन क्लिप्स
ऐप क्लिप ऐप स्टोर से संपूर्ण एप्लिकेशन को डाउनलोड किए बिना "ऐप क्लिप कोड" का उपयोग करके मूल ऐप कार्यक्षमता का उपयोग करने का ऐप्पल का नवीनतम तरीका है।
ऐप क्लिप्स आईओएस ऐप के समान काम करते हैं - केवल अंतर यह है कि आप एक नया ऐप क्लिप प्रोजेक्ट नहीं बनाते हैं। फ़ाइल-> नया-> लक्ष्य-> आईओएस-> ऐप क्लिप पर जाकर आपको मौजूदा आईओएस ऐप में लक्ष्य के रूप में ऐप क्लिप को जोड़ने की जरूरत है जब एक मौजूदा आईओएस ऐप एक्सकोड में खुला हो।
यदि आप आईफोन/आईपैड विजेट्स के बारे में सोच रहे हैं, तो वे एनिमेट नहीं करते हैं। तो बटन क्लिक केवल संबंधित ऐप खोलेंगे और बाहरी एपीआई के माध्यम से टेक्स्ट को स्वतंत्र रूप से अपडेट नहीं कर सकते हैं।
निष्कर्ष
इस लेख में, आपने सीखा कि स्विफ्टयूआई से सबसे आसान तरीके से रीस्टफुल जीईटी एपीआई कॉल कैसे करें!
बेझिझक मुझसे संपर्क करें यदि आपके कोई प्रश्न हैं। मैंने इसे एक अन्य लेख का उपयोग करके समझ लिया और मैंने इसे और सरल बनाने के बारे में सोचा। तो अधिक विवरण और इस कोड को और अधिक जटिल बनाने के तरीकों के लिए, उस लेख को देखें:
स्विफ्टयूआई में async/प्रतीक्षा करें नई स्विफ्ट समवर्ती का उपयोग करने के लिए एक स्विफ्टयूआई ऐप बदलें और पता करें कि चमकदार सतह के नीचे क्या हो रहा है। ऑड्रे Tamraywenderlich.com