Computer >> कंप्यूटर ट्यूटोरियल >  >> स्मार्टफोन्स >> iPhone

SwiftUI Async GET REST API कॉल: एक शुरुआती गाइड

शुरुआती लोगों के लिए इस ट्यूटोरियल में, आप एक उदाहरण के रूप में लोकप्रिय इंटरनेट चक नॉरिस डेटाबेस (ICNDB) का उपयोग करके SwiftUI का उपयोग करके API कॉल करने की मूल बातें सीखेंगे। यह Swift और SwiftUI का उपयोग करके एक जोक को जल्दी और आसानी से प्रदर्शित करेगा।

आप देखेंगे कि कैसे क्रॉस-प्लेटफॉर्म फ्रेमवर्क SwiftUI हमें iOS, iPadOS, macOS, watchOS, ऐप क्लिप्स और tvOS पर सटीक समान कोड का उपयोग करने देता है, जो अन्यथा असंभव होता।

इसके साथ, आप Swift 5.5 में पेश किए गए async-await का उपयोग करेंगे, जो iOS 15.0 से नए ऑपरेटिंग सिस्टम पर चलने वाले iPhones सहित नए ऑपरेटिंग सिस्टम के लिए काम करता है। यह वास्तव में बटन के क्लिक पर UI थ्रेड को फ्रीज किए बिना एसिंक्रोनसली डेटा नेटवर्क कॉल करने के हमारे काम को सरल बनाता है।

मैं पहले आपको आवश्यक कोड परिवर्तन साझा करूंगा। फिर अगले भाग में, मैं कोड का संक्षिप्त विश्लेषण साझा करूंगा ताकि शुरुआती लोग समझ सकें कि क्या हो रहा है।

SwiftUI Async GET REST API कॉल: एक शुरुआती गाइड
tvOS ऐप कोड चलाता है जो क्लिक पर जोक प्राप्त करने वाला बटन प्रदर्शित करता है

Swift और SwiftUI में API कॉल कैसे करें

सबसे पहले, आपको Xcode इंस्टॉल करने के लिए एक Mac की आवश्यकता होगी। एक बार इंस्टॉल हो जाने पर, Xcode खोलें और एक नया प्रोजेक्ट बनाएं। फिर iOS, macOS, tvOS, या watchOS के लिए "App" चुनें।

ContentView

बस अपने मौजूदा ContentView SwiftUI फ़ाइल को अपडेट करें एक बटन जोड़ने के लिए और जोक ICNDB API से वापस आने पर प्रदर्शित टेक्स्ट को रीफ्रेश करने के लिए State वेरिएबल का उपयोग करें:

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("जोक प्राप्त करें")
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

struct Joke: Codable {
    let value: String
}

एक जोक प्राप्त करें!

यदि आप बिल्ड/प्ले दबाते हैं, तो ऐप आपके द्वारा ऊपर चुने गए प्लेटफॉर्म पर बिल्ड होगा:

SwiftUI Async GET REST API कॉल: एक शुरुआती गाइड
watchOS, macOS, और iOS ऐप्स चल रहे हैं वही सटीक कोड

कोड विश्लेषण

यदि आप रैंडम जोक URL पर जाते हैं, तो आप देखेंगे कि डेटा JSON फॉर्मेट में है। आप उसे कॉपी कर सकते हैं और इसकी संरचना देखने के लिए JSON लिंटर का उपयोग कर सकते हैं ताकि यह पता लगा सकें कि Joke ऑब्जेक्ट की कौन सी प्रॉपर्टी आवश्यक है।

उसके आधार पर, आप ऊपर दिए गए कोड को निर्धारित करते हैं। आप JSON डेटा ऑब्जेक्ट से वास्तविक Swift क्लास या स्ट्रक्चर में जाने के लिए Codable प्रोटोकॉल (उर्फ इंटरफेस) का उपयोग करते हैं, और आप उस डेटा के लिए प्रॉपर्टीज बनाते हैं जिसे आप स्टोर करना चाहते हैं (हमारे मामले में value)।

JSONDecoder Codable ऑब्जेक्ट का उपयोग करके JSON स्ट्रिंग को पार्स करने में हमारी मदद करता है। यह प्लेटफॉर्म की परवाह किए बिना काम करता है क्योंकि ऐप लॉन्च होने पर लोड होने वाले पेज का नाम प्लेटफॉर्म की परवाह किए बिना ContentView ही होता है।

ऐप क्लिप्स

ऐप क्लिप्स Apple का ऐप स्टोर से पूरा एप्लिकेशन डाउनलोड किए बिना "ऐप क्लिप कोड" का उपयोग करके नेटिव ऐप कार्यक्षमता का उपयोग करने का नवीनतम तरीका है।

ऐप क्लिप्स iOS ऐप के समान काम करते हैं - एकमात्र अंतर यह है कि आप एक नया ऐप क्लिप प्रोजेक्ट नहीं बनाते हैं। आपको केवल एक मौजूदा iOS ऐप में ऐप क्लिप को टारगेट के रूप में जोड़ने की आवश्यकता है File -> New -> Target -> iOS -> App Clip पर जाकर जब Xcode में एक मौजूदा iOS ऐप खुला हो।

यदि आप iPhone/iPad विजेट्स के बारे में सोच रहे हैं, तो वे एनिमेट नहीं करते। इसलिए बटन क्लिक केवल संबंधित ऐप को खोलेंगे और बाहरी API के माध्यम से स्वतंत्र रूप से टेक्स्ट अपडेट नहीं कर सकते।

निष्कर्ष

इस लेख में, आपने SwiftUI से RESTful GET API कॉल करने का सबसे सरल संभव तरीका सीखा!

यदि आपके कोई प्रश्न हैं तो बेझिझक मुझसे संपर्क करें। मैंने इसे एक अन्य लेख का उपयोग करके समझा और मैंने इसे और सरल बनाने के बारे में सोचा। इसलिए अधिक विवरण और इस कोड को अधिक जटिल बनाने के तरीकों के लिए, उस लेख को देखें:

async/await in SwiftUI
एक SwiftUI ऐप को नए Swift कंकरेंसी का उपयोग करने के लिए कन्वर्ट करें और चमकदार सतह के नीचे क्या चल रहा है पता लगाएं।

SwiftUI Async GET REST API कॉल: एक शुरुआती गाइड SwiftUI Async GET REST API कॉल: एक शुरुआती गाइड
  1. SwiftUI में GameCenter लीडरबोर्ड इंटीग्रेट करें: निर्बाध वैश्विक प्रतियोगिता के लिए SwiftUI में GameCenter लीडरबोर्ड इंटीग्रेट करें: निर्बाध वैश्विक प्रतियोगिता के लिए

    इस लेख में हम बात करेंगे कि अपने ऐप में GameCenter के लीडरबोर्ड को क्यों और कैसे लागू करें। GameCenter एक बड़ी वापसी क्यों कर रहा है आप स्कोरबोर्ड के बिना iPhone गेम बना सकते हैं, लेकिन लीडरबोर्ड गेम को अधिक प्रतिस्पर्धी महसूस कराने में मदद कर सकते हैं, जैसे दुनिया भर के लोग एक-दूसरे के खिलाफ प्रत

  1. कम बजट में प्रोफेशनल ऐप स्टोर प्रीव्यू बनाएं कम बजट में प्रोफेशनल ऐप स्टोर प्रीव्यू बनाएं

    2014 में, Apple ने ऐप स्टोर पर ऐप प्रीव्यू जोड़ना संभव बना दिया। ऐप प्रीव्यू संभावित उपयोगकर्ताओं को दिखाने का सबसे अच्छा तरीका है कि डाउनलोड करने से पहले आपके ऐप में क्या पेशकश है। वास्तव में, StoreMaven के अनुसार, ऐप प्रीव्यू वाले ऐप को इंस्टॉल करने की संभावना उपयोगकर्ताओं द्वारा 3 गुना अधिक होती

  1. iTunes और Apple ऐप स्टोर खरीदारी के लिए रिफंड अनुरोध करने की चरण-दर-चरण मार्गदर्शिका iTunes और Apple ऐप स्टोर खरीदारी के लिए रिफंड अनुरोध करने की चरण-दर-चरण मार्गदर्शिका

    गलती से iTunes या ऐप स्टोर से कोई ऐप, संगीत, या किताब खरीद ली? यहां बताया गया है कि आप Apple से सीधे रिफंड का अनुरोध कैसे कर सकते हैं। जब कोई भौतिक वस्तु जिसे आप पसंद नहीं करते गलती से खरीद ली जाती है, तो आप उसे स्टोर पर वापस कर सकते हैं और रिफंड प्राप्त कर सकते हैं। लेकिन जब यह ऐप, संगीत, किताब जैस