iOS হল Apple-এর মোবাইল অপারেটিং সিস্টেম যা iPhone এবং iPod touch চালায়। iOS ডেভেলপমেন্ট Swift ভাষায় Xcode পরিবেশে করা হয়। আসুন প্ল্যাটফর্ম আর্কিটেকচার, মূল ফ্রেমওয়ার্ক এবং App Store প্রকাশনা প্রক্রিয়া বুঝি।
মূল পয়েন্ট
iOS হল Apple-এর মোবাইল অপারেটিং সিস্টেম, প্রথম 2007 সালে প্রথম iPhone-এর সাথে প্রকাশিত হয়। সিস্টেমটি XNU মাইক্রোকার্নেলের উপর নির্মিত, যা Mach এবং FreeBSD-এর উপাদানগুলিকে একত্রিত করে একটি হাইব্রিড কার্নেল। Android-এর বিপরীতে, iOS একটি বন্ধ প্ল্যাটফর্ম: অ্যাপ ইনস্টলেশন শুধুমাত্র App Store-এর মাধ্যমে সম্ভব, এবং সিস্টেমের সোর্স কোড উপলব্ধ নয়।
Apple হার্ডওয়্যার এবং সফ্টওয়্যার উভয়ই নিয়ন্ত্রণ করে, যা উচ্চ স্তরের অপ্টিমাইজেশন নিশ্চিত করে। StatCounter (2026) অনুসারে, বিশ্বব্যাপী মোবাইল OS বাজারে iOS-এর অংশ প্রায় 28% এবং মার্কিন যুক্তরাষ্ট্র এবং জাপানে 50% ছাড়িয়ে গেছে।
সিস্টেমটি App Sandbox মডেল ব্যবহার করে — প্রতিটি অ্যাপ একটি বিচ্ছিন্ন পরিবেশে চলে এবং সিস্টেম ডায়ালগের মাধ্যমে স্পষ্ট ব্যবহারকারীর অনুমতি ছাড়া অন্যান্য অ্যাপের ডেটা অ্যাক্সেস করতে পারে না।
প্রথম সংস্করণ iPhone OS 1.0 তৃতীয়-পক্ষের অ্যাপ সমর্থন করে না। App Store 2008 সালে iOS 2.0-এর সাথে এসেছিল। মূল মাইলফলক: iOS 4 (মাল্টিটাস্কিং), iOS 7 (ফ্ল্যাট ডিজাইন), iOS 10 (iMessage অ্যাপ), iOS 14 (ডেস্কটপ উইজেট), iOS 17 (StandBy মোড)। প্রতিটি প্রধান রিলিজ নতুন API এবং ফ্রেমওয়ার্ক নিয়ে আসে।
| iOS সংস্করণ | বছর | মূল উদ্ভাবন |
|---|---|---|
| iPhone OS 1 | 2007 | প্রথম সংস্করণ, App Store ছাড়া |
| iOS 2 | 2008 | App Store, তৃতীয়-পক্ষের অ্যাপ |
| iOS 4 | 2010 | মাল্টিটাস্কিং, FaceTime |
| iOS 7 | 2013 | সম্পূর্ণ ইন্টারফেস পুনঃডিজাইন |
| iOS 10 | 2016 | iMessage অ্যাপ, SiriKit |
| iOS 14 | 2020 | উইজেট, App Library, Picture in Picture |
| iOS 17 | 2023 | StandBy, NameDrop, Live Voicemail |
iOS আর্কিটেকচার চারটি বিমূর্ত স্তর নিয়ে গঠিত, প্রতিটি উপরের স্তরের জন্য API প্রদান করে। নীচের স্তরগুলি হল কার্নেল এবং সিস্টেম পরিষেবা, উপরের স্তরগুলি হল ব্যবহারকারী ফ্রেমওয়ার্ক।
Cocoa Touch হল ব্যবহারকারী ইন্টারফেস তৈরির জন্য ফ্রেমওয়ার্কের স্তর। এতে UIKit, SwiftUI, Foundation, MapKit, NotificationCenter এবং অন্যান্য API অন্তর্ভুক্ত রয়েছে যার সাথে ডেভেলপার সরাসরি কাজ করে। UIKit UIViewController, UIView, UIWindow এবং সমস্ত ভিজ্যুয়াল উপাদান প্রদান করে।
Media স্তরে Core Graphics, Core Animation, Core Image, AVFoundation এবং Metal অন্তর্ভুক্ত। Metal হল GPU-এর জন্য নিম্ন-স্তরের API যা গেম এবং অগমেন্টেড রিয়েলিটি অ্যাপে উচ্চ গ্রাফিক্স পারফরম্যান্স নিশ্চিত করে। Core Animation হার্ডওয়্যার ত্বরণ সহ লেয়ার স্তরে অ্যানিমেশন পরিচালনা করে।
Core Services-এ Core Data, CloudKit, Core Location, HealthKit, Core Motion এবং Network অন্তর্ভুক্ত। CFNetwork হল নেটওয়ার্ক প্রোটোকলের সাথে কাজ করার জন্য নিম্ন-স্তরের C ইন্টারফেস। Foundation হল Core Foundation-এর উপর NSString, NSArray, NSDictionary ক্লাস সহ অবজেক্ট-ওরিয়েন্টেড র্যাপার।
নীচের স্তরে XNU কার্নেল, APFS ফাইল সিস্টেম, ক্রিপ্টোগ্রাফিক মডিউল (CommonCrypto, Security.framework), পাওয়ার ব্যবস্থাপনা এবং ডিভাইস ড্রাইভার অন্তর্ভুক্ত। এই স্তরে Secure Enclave কাজ করে — বায়োমেট্রিক ডেটা এবং এনক্রিপশন কী সংরক্ষণের জন্য একটি কোপ্রসেসর।
// Security framework-এর মাধ্যমে Secure Enclave অখণ্ডতা পরীক্ষা
#import <LocalAuthentication/LocalAuthentication.h>
LAContext *context = [[LAContext alloc] init];
NSError *error = nil;
if ([context canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
error:&error]) {
NSLog(@"Secure Enclave বায়োমেট্রিক্সের জন্য উপলব্ধ");
} else {
NSLog(@"Secure Enclave উপলব্ধ নয়: %@", error.localizedDescription);
}Swift হল একটি প্রোগ্রামিং ভাষা যা Apple 2014 সালে Objective-C-এর প্রতিস্থাপন হিসাবে উপস্থাপন করে। এটি Apple-এ Chris Lattner তৈরি করেছেন। Swift আধুনিক ভাষার (Rust, Kotlin, C#) সিনট্যাক্সকে C-স্তরের পারফরম্যান্সের সাথে একত্রিত করে। TIOBE (2026) অনুসারে, Swift শীর্ষ 15 প্রোগ্রামিং ভাষার মধ্যে রয়েছে।
Swift গার্বেজ কালেক্টর ছাড়া মেমোরি ব্যবস্থাপনার জন্য Automatic Reference Counting (ARC) ব্যবহার করে। প্রোটোকল-ওরিয়েন্টেড প্রোগ্রামিং (POP) প্রোটোকল এক্সটেনশনের মাধ্যমে টাইপ সম্প্রসারণের অনুমতি দেয়। Optionals nil-এর সাথে টাইপ-নিরাপদ হ্যান্ডলিং প্রদান করে, এবং প্যাটার্ন ম্যাচিং শাখাকরণ লজিক সহজ করে।
import UIKit
/// ডেটা লোডিং সার্ভিসের জন্য প্রোটোকল
protocol DataServiceProtocol {
associatedtype T
func fetch(completion: @escaping (Result<[T], Error>) -> Void)
}
/// ব্যবহারকারী লোড করার জন্য সার্ভিস বাস্তবায়ন
final class UserService: DataServiceProtocol {
typealias T = User
private let session: URLSession
private let decoder: JSONDecoder
init(session: URLSession = .shared, decoder: JSONDecoder = JSONDecoder()) {
self.session = session
self.decoder = decoder
}
func fetch(completion: @escaping (Result<[User], Error>) -> Void) {
guard let url = URL(string: "https://api.example.com/users") else {
completion(.failure(URLError(.badURL)))
return
}
session.dataTask(with: url) { [weak self] data, response, error in
guard let self, let data = data else {
completion(.failure(error ?? URLError(.badServerResponse)))
return
}
do {
let users = try self.decoder.decode([User].self, from: data)
completion(.success(users))
} catch {
completion(.failure(error))
}
}.resume()
}
}
struct User: Codable, Identifiable {
let id: Int
let name: String
let email: String
}উদাহরণটি Swift Concurrency (async/await), associatedtype সহ প্রোটোকল এবং JSON ডিকোডিংয়ের জন্য Codable ব্যবহার করে ডেটা লোডিং সার্ভিস বাস্তবায়ন দেখায়। ARC স্বয়ংক্রিয়ভাবে মেমোরি পরিচালনা করে, এবং weak self ক্লোজারে শক্তিশালী রেফারেন্স চক্র প্রতিরোধ করে।
iOS 13 থেকে, Swift async/await এবং Actors-এর মাধ্যমে অন্তর্নির্মিত অ্যাসিঙ্ক্রোনাসি সমর্থন করে — থ্রেড-নিরাপদ টাইপ যা ডেটা রেস থেকে অবস্থা রক্ষা করে। মাল্টিথ্রেডিংয়ের জন্য DispatchQueue ধীরে ধীরে async/await এবং Task কাঠামো দ্বারা প্রতিস্থাপিত হচ্ছে।
actor UserRepository {
private var cache: [Int: User] = [:]
private let service = UserService()
func getUser(id: Int) async throws -> User {
if let cached = cache[id] {
return cached
}
let users = try await service.fetchAsync()
guard let user = users.first(where: { $0.id == id }) else {
throw UserError.notFound
}
cache[id] = user
return user
}
}UserRepository অ্যাক্টর নিশ্চিত করে যে ক্যাশে অ্যাক্সেস একটি একক থ্রেডে ঘটে, রেস কন্ডিশন দূর করে। কম্পাইলার বিল্ড সময়ে বিচ্ছিন্নতা পরীক্ষা করে — অ্যাক্টরের mutable প্রপার্টি অ্যাক্সেস শুধুমাত্র await-এর মাধ্যমে সম্ভব।
Xcode হল Apple-এর সমন্বিত উন্নয়ন পরিবেশ (IDE), যা শুধুমাত্র macOS-এ উপলব্ধ। এতে কোড এডিটর, ভিজ্যুয়াল লেআউটের জন্য Interface Builder, ডিভাইস সিমুলেটর, প্রোফাইলিংয়ের জন্য Instruments এবং LLDB ডিবাগার অন্তর্ভুক্ত। Xcode 15 ম্যাক্রোর সাথে Swift 5.9 সমর্থন করে।
Interface Builder স্বয়ংক্রিয় XML বিবরণ (XIB/Storyboard) জেনারেশন সহ ড্র্যাগ-এন্ড-ড্রপের মাধ্যমে ইন্টারফেস তৈরি করতে দেয়। Storyboards স্ক্রিন প্রবাহ বর্ণনা করে। 2023 থেকে, Apple SwiftUI Preview-কে প্রধান ভিজ্যুয়াল ডেভেলপমেন্ট টুল হিসাবে সুপারিশ করে, যদিও Interface Builder UIKit প্রকল্পে রয়ে গেছে।
Xcode Instruments-এ ডজনখানেক টেমপ্লেট অন্তর্ভুক্ত: Time Profiler (CPU বিশ্লেষণ), Allocations (মেমোরি), Leaks (লিক), Core Animation (FPS), Network এবং Energy Log। Metal Debugger GPU কল এবং শেডার পরিদর্শন করতে দেয়। LLDB Swift এক্সপ্রেশন সমর্থন এবং শর্তসাপেক্ষ ব্রেকপয়েন্ট সহ একটি কনসোল ডিবাগার।
iOS SDK-এ শত শত ফ্রেমওয়ার্ক অন্তর্ভুক্ত। নীচে মূল ফ্রেমওয়ার্কগুলি দেওয়া হল যার সাথে প্রতিটি iOS ডেভেলপার প্রতিদিন কাজ করে।
| ফ্রেমওয়ার্ক | উদ্দেশ্য |
|---|---|
| UIKit | ইন্টারফেস: UIView, UIViewController, অ্যানিমেশন, জেসচার |
| SwiftUI | প্রতিক্রিয়াশীল আপডেট সহ ঘোষণামূলক ইন্টারফেস |
| Foundation | মৌলিক প্রকার: String, Data, URLSession, JSONEncoder |
| Core Data | SQLite-এ স্থানীয় ডেটা সঞ্চয়ের জন্য ORM |
| CloudKit | iCloud সিঙ্ক এবং ব্যাকএন্ড ছাড়া সার্ভার-সাইড লজিক |
| Core Location | জিওলোকেশন: GPS, জিওফেন্সিং, iBeacon |
| MapKit | Apple মানচিত্র প্রদর্শন, অ্যানোটেশন, রুট |
| AVFoundation | অডিও/ভিডিও ক্যাপচার এবং প্লেব্যাক |
| Metal | নিম্ন-স্তরের গ্রাফিক্স এবং GPGPU কম্পিউটিং |
| Core ML | অন-ডিভাইস ইনফারেন্স সহ ডিভাইসে মেশিন লার্নিং |
| PushKit / UserNotifications | Push বিজ্ঞপ্তি, VoIP, বিষয়বস্তু আপডেট |
Core Data হল অবজেক্ট ডেটা মডেল পরিচালনার জন্য ফ্রেমওয়ার্ক। এটি UI থ্রেড এবং ব্যাকগ্রাউন্ড কনটেক্সটের মধ্যে অবজেক্ট সংরক্ষণ, লোড এবং সিঙ্ক করতে দেয়। iOS 17 SwiftData চালু করেছে — Swift Macros সমর্থন সহ Core Data-এর উপর একটি আধুনিক র্যাপার।
UIKit এবং SwiftUI-এর মধ্যে পছন্দ iOS ডেভেলপমেন্ট শুরু করার সময় একটি মূল আর্কিটেকচারাল সিদ্ধান্ত। UIKit 2007 সাল থেকে বিদ্যমান এবং সমস্ত iOS সংস্করণ সমর্থন করে। SwiftUI 2019 সালে চালু হয়েছিল এবং iOS 13+ প্রয়োজন।
| মাপকাঠি | UIKit | SwiftUI |
|---|---|---|
| দৃষ্টান্ত | ইম্পেরেটিভ (MVC, MVVM) | ঘোষণামূলক (State-driven) |
| ন্যূনতম iOS | iOS 2.0+ | iOS 13.0+ |
| লেআউট | কোড বা Interface Builder-এ Auto Layout | মডিফায়ার চেইন, HStack/VStack/ZStack |
| কাস্টমাইজেশন | সম্পূর্ণ (CALayer, drawRect) | মডিফায়ার দ্বারা সীমিত |
| পারফরম্যান্স | উচ্চ (ম্যানুয়াল অপ্টিমাইজেশন) | স্বয়ংক্রিয় অকার্যকরকরণ |
| প্রিভিউ | সমর্থিত নয় | রিয়েল-টাইম Xcode Preview |
| পরীক্ষা | XCTest + Snapshot পরীক্ষা | XCTest + Preview পরীক্ষা |
অনুশীলনে, বেশিরভাগ বাণিজ্যিক প্রকল্প হাইব্রিড পদ্ধতি ব্যবহার করে: নতুন স্ক্রিন এবং সাধারণ ফর্মের জন্য SwiftUI, জটিল কাস্টম উপাদানের জন্য UIKit যার সূক্ষ্ম রেন্ডারিং নিয়ন্ত্রণ প্রয়োজন। Apple SwiftUI-তে সক্রিয়ভাবে বিনিয়োগ করছে, এবং আশা করা হচ্ছে যে 2028 সালের মধ্যে এটি প্রধান ফ্রেমওয়ার্ক হয়ে যাবে।
প্রতিটি iOS অ্যাপ UIApplication এবং AppDelegate দ্বারা পরিচালিত পাঁচটি অবস্থার মধ্য দিয়ে যায়। SwiftUI-তে, @main অ্যাট্রিবিউট সহ App Protocol এই ভূমিকা পালন করে।
Not running — অ্যাপ চালু হয়নি বা সিস্টেম দ্বারা বন্ধ করা হয়েছে। Inactive — অ্যাপ অগ্রভাগে আছে কিন্তু ইভেন্ট গ্রহণ করছে না (যেমন ইনকামিং কলের সময়)। Active — সাধারণ অবস্থা, অ্যাপ টাচ ইভেন্ট গ্রহণ করে। Background — অ্যাপ ছোট করা হয়েছে, ব্যাকগ্রাউন্ড কাজ করছে। Suspended — অ্যাপ মেমোরিতে আছে কিন্তু কোড এক্সিকিউট করছে না।
import SwiftUI
@main
struct MyApp: App {
@Environment(\.scenePhase) private var scenePhase
var body: some Scene {
WindowGroup {
ContentView()
}
.onChange(of: scenePhase) { oldPhase, newPhase in
switch newPhase {
case .active:
print("অ্যাপ সক্রিয় হয়েছে")
case .inactive:
print("অ্যাপ নিষ্ক্রিয়")
case .background:
print("অ্যাপ ব্যাকগ্রাউন্ডে চলে গেছে")
@unknown default:
break
}
}
}
}সিস্টেম মেমোরি কম হলে ব্যাকগ্রাউন্ডে অ্যাপ বন্ধ করতে পারে। ডেভেলপারকে onDisappear বা ScenePhase.background-এর মাধ্যমে অবস্থা সংরক্ষণ করা উচিত যাতে ব্যবহারকারী অ্যাপের মধ্যে স্যুইচ করার সময় ডেটা না হারান।
App Store হল iOS-এর জন্য একমাত্র অফিসিয়াল অ্যাপ স্টোর। প্রকাশনার জন্য Apple Developer Program সদস্যতা ($99/বছর) প্রয়োজন। প্রতিটি অ্যাপ মডারেশনের মধ্য দিয়ে যায় — স্বয়ংক্রিয় (বাইনারি কোডের স্থিতিশীল বিশ্লেষণ) এবং ম্যানুয়াল (ইন্টারফেস এবং বিষয়বস্তু পরীক্ষা)।
ডেভেলপার Xcode-এ একটি আর্কাইভ তৈরি করে এবং Transporter বা Xcode Organizer-এর মাধ্যমে App Store Connect-এ আপলোড করে। গড় মডারেশন সময় 24–48 ঘন্টা। App Review নির্দেশিকাগুলির সাথে সম্মতি পরীক্ষা করে: ডেটা নিরাপত্তা, পারফরম্যান্স, HIG ডিজাইন, লুকানো কার্যকারিতার অনুপস্থিতি।
গোপনীয়তার উপর বিশেষ মনোযোগ দেওয়া হয়: সমস্ত ধরণের ডেটা সংগ্রহ Privacy Manifest-এ ঘোষণা করা আবশ্যক। 2025 থেকে, Apple-কে API ব্যবহারের কারণ (NSPrivacyAccessedAPITypes) নির্দিষ্ট করতে হবে। ব্যবহারকারীর সম্মতি ছাড়া ট্র্যাকার ব্যবহার করা অ্যাপ প্রকাশনা থেকে প্রত্যাখ্যান করা হয়।
| প্রয়োজনীয়তা | বিবরণ |
|---|---|
| Privacy Manifest | সমস্ত সংগৃহীত ডেটা এবং সংগ্রহ উদ্দেশ্যের ঘোষণা |
| HIG সম্মতি | Apple Human Interface Guidelines-এর সাথে সঙ্গতি |
| স্থিতিশীলতা | মডারেশনের সময় কোনও ক্র্যাশ নেই |
| Sandbox নিয়ম | শুধুমাত্র অনুমোদিত সংস্থানগুলিতে অ্যাক্সেস |
| iCloud Entitlements | সঠিক iCloud কন্টেইনার কনফিগারেশন |
সচরাচর জিজ্ঞাসিত প্রশ্ন
প্রধান ভাষা হল Swift। Objective-Cও সমর্থিত তবে প্রধানত লিগ্যাসি প্রকল্পে ব্যবহৃত হয়। Swift হল একটি আধুনিক টাইপ-নিরাপদ ভাষা যা Apple 2014 সালে চালু করে। 2020 সাল থেকে, Apple নতুন প্রকল্পের জন্য Swift-কে একমাত্র ভাষা হিসাবে সুপারিশ করে।
UIKit হল সর্বাধিক কাস্টমাইজেশন সহ একটি পরিণত ফ্রেমওয়ার্ক, জটিল ইন্টারফেসের জন্য উপযুক্ত। SwiftUI হল iOS 13+-এর জন্য একটি ঘোষণামূলক ফ্রেমওয়ার্ক, যা উন্নয়ন 2–3 গুণ ত্বরান্বিত করে। বেশিরভাগ প্রকল্প UIViewRepresentable এবং UIHostingController-এর মাধ্যমে উভয় পদ্ধতি ব্যবহার করে।
Apple Developer Program বার্ষিক সদস্যতা ব্যক্তিগত ডেভেলপারদের জন্য $99 এবং সংস্থার জন্য $299। সদস্যতা ছাড়া প্রকাশনা সম্ভব নয়। ডেভেলপারের বার্ষিক আয়ের উপর নির্ভর করে App Store কমিশন বিক্রয়ের 15–30%।
SwiftUI iOS 13 (2019) থেকে উপলব্ধ। তবে, NavigationStack, Observable Macro এবং SwiftData সহ সমস্ত বৈশিষ্ট্য ব্যবহার করতে iOS 17 এবং Xcode 15 প্রয়োজন। পুরানো সংস্করণগুলির সমর্থন SwiftUI কার্যকারিতা সীমিত করে।
App Sandbox হল একটি নিরাপত্তা মডেল যা ফাইল সিস্টেম, অন্যান্য অ্যাপের ডেটা এবং সিস্টেম সংস্থানগুলিতে অ্যাপের অ্যাক্সেস সীমাবদ্ধ করে। প্রতিটি অ্যাপ একটি বিচ্ছিন্ন কন্টেইনারে চলে। পরিচিতি, ফটো, মাইক্রোফোনে অ্যাক্সেসের জন্য সিস্টেম ডায়ালগের মাধ্যমে স্পষ্ট অনুমতি প্রয়োজন।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন