কম্পিউটার টিউটোরিয়াল

SwiftUI Async GET REST API কল: একটি বিগিনার গাইড

বিগিনারদের জন্য এই টিউটোরিয়ালে, আপনি SwiftUI ব্যবহার করে API কল করার বেসিক শিখবেন, উদাহরণ হিসেবে জনপ্রিয় Internet Chuck Norris DataBase (ICNDB) ব্যবহার করে। এটি দ্রুত এবং সহজে Swift এবং SwiftUI ব্যবহার করে একটি জোক প্রদর্শন করবে।

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

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

প্রথমে আমি আপনাকে কোড পরিবর্তনগুলো শেয়ার করব। তারপর পরবর্তী সেকশনে, কোডের সংক্ষিপ্ত বিশ্লেষণ শেয়ার করব যাতে বিগিনাররা বুঝতে পারে কী হচ্ছে।

SwiftUI Async GET REST API কল: একটি বিগিনার গাইড
tvOS অ্যাপটি কোডটি রান করে একটি বাটন দেখাচ্ছে যা ক্লিক করলে জোকটি আনতে পারে

Swift এবং SwiftUI-তে API কল কীভাবে করবেন

প্রথমে, Xcode ইনস্টল করার জন্য একটি Mac দরকার। ইনস্টল হলে, Xcode খুলুন এবং একটি নতুন প্রজেক্ট তৈরি করুন। তারপর iOS, macOS, tvOS, বা watchOS-এ "App" নির্বাচন করুন।

ContentView

শুধু আপনার বিদ্যমান ContentView SwiftUI ফাইলটি আপডেট করুন একটি বাটন যোগ করতে এবং State ভেরিয়েবল ব্যবহার করে টেক্সট রিফ্রেশ করতে যাতে 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 Async GET REST API কল: একটি বিগিনার গাইড
একই সঠিক কোড রান করছে watchOS, macOS, এবং iOS অ্যাপের স্ক্রিনশট

কোড বিশ্লেষণ

আপনি যদি র‍্যান্ডম জোক URL-এ যান, আপনি দেখবেন ডেটা JSON ফরম্যাটে। আপনি সেটি কপি করে একটি JSON Linter-এ এর কাঠামো দেখতে পারেন যাতে Joke অবজেক্টের কোন প্রোপার্টি দরকার সেটি বের করতে পারেন।

उसের ভিত্তিতে, উপরের কোডটি নির্ধারিত হয়েছে। আপনি Codable প্রোটোকল (একインタফেস) ব্যবহার করেন JSON ডেটা অবজেক্ট থেকে একটি আসল Swift ক্লাস বা স্ট্রাক্ট-এ যেতে, এবং আপনি যে ডেটা স্টোর করতে চান তার জন্য প্রোপার্টি তৈরি করেন (আমাদের কেসে value)।

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

App Clips

App Clips হলো Apple-এর নতুন পদ্ধতি নেটিভ অ্যাপ ফাংশনালিটি ব্যবহার করার "App Clip Code" দিয়ে, পুরো অ্যাপ্লিকেশন App Store থেকে ডাউনলোড না করেই।

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

আপনি যদি iPhone/iPad Widgets-এর কথা চিন্তা করেন, সেগুলো অ্যানিমেট করে না। তাই বাটন ক্লিক করলে শুধু সংশ্লিষ্ট অ্যাপটি খুলবে এবং বাহ্যিক API দিয়ে স্বাধীনভাবে টেক্সট আপডেট করতে পারবে না।

উপসংহার

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

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

async/await in SwiftUI
Convert a SwiftUI app to use the new Swift concurrency and find out what’s going on beneath the shiny surface.
SwiftUI Async GET REST API কল: একটি বিগিনার গাইডAudrey Tam
raywenderlich.com
SwiftUI Async GET REST API কল: একটি বিগিনার গাইড

  1. WhatsApp-এ ভিডিও কল করার উপায়

  2. SwiftUI-তে GameCenter লিডারবোর্ড ইন্টিগ্রেট করুন সরল গ্লোবাল কম্পিটিশনের জন্য

  3. কম বাজেটে প্রফেশনাল App Store প্রিভিউ তৈরি করুন

  4. আইটিউনস ও অ্যাপল অ্যাপ স্টোর কেনাকাটার রিফান্ড ক্লেইম করার স্টেপ-বাই-স্টেপ গাইড