কম্পিউটার

SwiftUI-তে কীভাবে একটি সাধারণ অ্যাসিঙ্ক GET REST API কল করবেন

নতুনদের জন্য এই টিউটোরিয়ালে, আপনি একটি উদাহরণ হিসাবে জনপ্রিয় ইন্টারনেট চক নরিস ডেটাবেস (ICNDB) ব্যবহার করে API কল করতে SwiftUI ব্যবহার করার প্রাথমিক বিষয়গুলি শিখবেন। এটি Swift এবং SwiftUI ব্যবহার করে দ্রুত এবং সহজে একটি কৌতুক প্রদর্শন করবে।

আপনি দেখতে পাবেন কিভাবে ক্রস-প্ল্যাটফর্ম ফ্রেমওয়ার্ক SwiftUI আমাদের iOS, iPadOS, macOS, watchOS, অ্যাপ ক্লিপস এবং tvOS জুড়ে একই কোড ব্যবহার করতে দেয়, যা অন্যথায় অসম্ভব হয়ে যেত।

সেই সাথে, আপনি ব্যবহার করবেন async-await যা সুইফট 5.5 এ চালু করা হয়েছিল, যা iOS> v15.0 চালিত iPhone সহ নতুন অপারেটিং সিস্টেমের জন্য কাজ করে। এটি UI থ্রেডকে ফ্রিজ না করে একটি বোতামে ক্লিক করে অ্যাসিঙ্ক্রোনাসভাবে ডেটা নেটওয়ার্ক কল করার আমাদের কাজকে সত্যিই সহজ করে।

আমি কোড পরিবর্তনগুলি শেয়ার করব যা আপনাকে প্রথমে করতে হবে৷ তারপরে নিম্নলিখিত বিভাগে, আমি কোডের একটি সংক্ষিপ্ত বিশ্লেষণ শেয়ার করব যাতে নতুনরা বুঝতে পারে কী ঘটছে৷

SwiftUI-তে কীভাবে একটি সাধারণ অ্যাসিঙ্ক GET REST API কল করবেন
কোড চালিত TVOS অ্যাপটি একটি বোতাম প্রদর্শন করে যা ক্লিকে জোক পুনরুদ্ধার করে

কিভাবে সুইফট এবং সুইফটইউআই-এ API কল করবেন

প্রথমত, এক্সকোড ইনস্টল করার জন্য আপনার একটি ম্যাক লাগবে। এটি ইনস্টল হয়ে গেলে, Xcode খুলুন এবং একটি নতুন প্রকল্প তৈরি করুন। তারপর iOS, macOS, tvOS বা watchOS-এর জন্য "অ্যাপ" নির্বাচন করুন৷

কন্টেন্টভিউ

একটি বোতাম যোগ করতে এবং State ব্যবহার করতে আপনার বিদ্যমান 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
}

একটি রসিকতা আনুন!

আপনি বিল্ড/প্লে প্রেস করলে, আপনি উপরে যে প্ল্যাটফর্মটি বেছে নিয়েছেন তাতে অ্যাপটি তৈরি হবে:

SwiftUI-তে কীভাবে একটি সাধারণ অ্যাসিঙ্ক GET REST API কল করবেন
একই সঠিক কোড চালানো watchOS, macOS এবং iOS অ্যাপের স্ক্রিনশট

কোড বিশ্লেষণ

আপনি যদি র্যান্ডম জোক URL-এ যান, আপনি লক্ষ্য করবেন যে ডেটা JSON ফর্ম্যাটে রয়েছে। আপনি এটি অনুলিপি করতে পারেন এবং জোক অবজেক্টের কোন সম্পত্তি প্রয়োজন তা নির্ধারণ করতে এটির গঠন দেখতে একটি JSON লিন্টার ব্যবহার করতে পারেন।

তার উপর ভিত্তি করে, আপনি উপরের কোডটি নির্ধারণ করুন। আপনি কোডেবল প্রোটোকল (ওরফে ইন্টারফেস) ব্যবহার করেন একটি JSON ডেটা অবজেক্ট থেকে একটি প্রকৃত সুইফ্ট ক্লাস বা স্ট্রাকটে যাওয়ার জন্য এবং আপনি যে ডেটা সংরক্ষণ করতে চান তার জন্য বৈশিষ্ট্য তৈরি করেন (আমাদের ক্ষেত্রে মান)।

JSONDecoder আমাদের কোডেবল অবজেক্ট ব্যবহার করে JSON স্ট্রিং পার্স করতে সাহায্য করে। এটি প্ল্যাটফর্ম নির্বিশেষে কাজ করে কারণ অ্যাপ চালু করার সময় যে পৃষ্ঠাটি লোড হয় তার নাম ContentView প্লাটফর্ম নির্বিশেষে।

অ্যাপ ক্লিপ

অ্যাপ ক্লিপ হল অ্যাপ স্টোর থেকে সম্পূর্ণ অ্যাপ্লিকেশন ডাউনলোড না করেই একটি "অ্যাপ ক্লিপ কোড" ব্যবহার করে নেটিভ অ্যাপ কার্যকারিতা ব্যবহার করার অ্যাপলের সর্বশেষ উপায়।

অ্যাপ ক্লিপগুলি একটি iOS অ্যাপের মতোই কাজ করে - শুধুমাত্র পার্থক্য হল আপনি একটি নতুন অ্যাপ ক্লিপ প্রকল্প তৈরি করবেন না। একটি বিদ্যমান iOS অ্যাপ যখন Xcode-এ খোলা থাকে তখন আপনাকে File->New->Target->iOS->App Clip-এ গিয়ে একটি বিদ্যমান iOS অ্যাপে একটি লক্ষ্য হিসেবে অ্যাপ ক্লিপ যোগ করতে হবে।

আপনি যদি আইফোন/আইপ্যাড উইজেট সম্পর্কে ভাবছেন, তবে তারা অ্যানিমেট করে না। সুতরাং বোতাম ক্লিকগুলি সংশ্লিষ্ট অ্যাপটি খুলবে এবং স্বাধীনভাবে একটি বহিরাগত API এর মাধ্যমে পাঠ্য আপডেট করতে পারবে না।

উপসংহার

এই নিবন্ধে, আপনি শিখেছেন কিভাবে সহজতম উপায়ে SwiftUI থেকে RESTful GET API কল করতে হয়!

আপনার কোন প্রশ্ন থাকলে আমার সাথে যোগাযোগ করতে বিনা দ্বিধায়। আমি অন্য একটি নিবন্ধ ব্যবহার করে এটি বের করেছি এবং আমি এটিকে আরও সরলীকরণ করার কথা ভেবেছিলাম। তাই আরও বিশদ বিবরণ এবং এই কোডটিকে আরও জটিল করার উপায়ের জন্য, সেই নিবন্ধটি দেখুন:

অ্যাসিঙ্ক/অপেক্ষা করুন SwiftUIC-এ একটি SwiftUI অ্যাপ কনভার্ট করুন নতুন সুইফট কনকারেন্সি ব্যবহার করতে এবং চকচকে পৃষ্ঠের নীচে কী ঘটছে তা খুঁজে বের করুন। SwiftUI-তে কীভাবে একটি সাধারণ অ্যাসিঙ্ক GET REST API কল করবেন Audrey Tamraywenderlich.com SwiftUI-তে কীভাবে একটি সাধারণ অ্যাসিঙ্ক GET REST API কল করবেন
  1. কীভাবে হোয়াটসঅ্যাপে ভিডিও কল করবেন

  2. কিভাবে SwiftUI এ একটি গেমকিট লিডারবোর্ড প্রয়োগ করবেন

  3. বাজেটে কীভাবে অ্যাপ স্টোর-যোগ্য iOS অ্যাপের প্রিভিউ তৈরি করবেন

  4. আইটিউনস বা অ্যাপল কেনাকাটার জন্য কীভাবে অর্থ ফেরত পাবেন