iOS: ما هي، بنية النظام ولغة Swift

المؤلف: IT Sectr نُشر: 2026-02-07 وقت القراءة: 10 دق

iOS هو نظام تشغيل أبل المحمول الذي يشغل أجهزة iPhone و iPod touch. يتم تطوير iOS بلغة Swift باستخدام Xcode. دعنا نستعرض بنية المنصة، الأطر الرئيسية وعملية النشر في App Store.

أهم النقاط

  • iOS هو نظام تشغيل متجانس مع نواة XNU، طبقة نواة Darwin وطبقة مستخدم Cocoa Touch
  • Swift هي اللغة الرئيسية للتطوير مع إدارة الذاكرة التلقائية ARC والبرمجة الموجهة بالبروتوكول
  • UIKit و SwiftUI هما إطاران لبناء الواجهة: أمرية وتصريحية
  • App Store هي القناة الرسمية الوحيدة للتوزيع مع مراجعة إلزامية
  • App Sandbox هو نموذج أمني يعزل كل تطبيق في حاوية منفصلة

ما هو iOS؟

iOS هو نظام تشغيل أبل المحمول، الذي تم إصداره لأول مرة في 2007 مع أول iPhone. النظام مبني على نواة XNU الدقيقة، نواة هجينة تجمع مكونات Mach و FreeBSD. على عكس Android، iOS هو منصة مغلقة: تثبيت التطبيقات ممكن فقط عبر App Store، وكود مصدر النظام غير متاح.

تتحكم أبل في كل من الأجهزة والبرمجيات، مما يضمن مستوى عالٍ من التحسين. وفقًا لـ StatCounter (2026)، تبلغ حصة iOS في سوق أنظمة التشغيل المحمولة حوالي 28% على المستوى العالمي وتتجاوز 50% في الولايات المتحدة واليابان.

يستخدم النظام نموذج App Sandbox — يعمل كل تطبيق في بيئة معزولة ولا يمكنه الوصول إلى بيانات التطبيقات الأخرى دون إذن صريح من المستخدم عبر حوارات النظام.

تاريخ إصدارات iOS

الإصدار الأول iPhone OS 1.0 لم يدعم تطبيقات الطرف الثالث. ظهر App Store في iOS 2.0 في 2008. المحطات الرئيسية: iOS 4 (تعدد المهام)، iOS 7 (التصميم المسطح)، iOS 10 (تطبيقات iMessage)، iOS 14 (الأدوات على سطح المكتب)، iOS 17 (وضع StandBy). كل إصدار رئيسي يجلب واجهات برمجة تطبيقات وأطر عمل جديدة.

إصدار iOSالسنةالابتكار الرئيسي
iPhone OS 12007الإصدار الأول، بدون App Store
iOS 22008App Store، تطبيقات الطرف الثالث
iOS 42010تعدد المهام، FaceTime
iOS 72013إعادة تصميم كاملة للواجهة
iOS 102016تطبيقات iMessage، SiriKit
iOS 142020الأدوات، App Library، Picture in Picture
iOS 172023StandBy، NameDrop، Live Voicemail

بنية iOS: أربع طبقات للنظام

تتكون بنية iOS من أربع طبقات مجردة، توفر كل منها واجهات برمجة تطبيقات للطبقة التي تعلوها. الطبقات السفلية هي النواة وخدمات النظام، والطبقات العليا هي أطر عمل المستخدم.

Cocoa Touch — الطبقة العليا

Cocoa Touch هي طبقة أطر عمل لبناء واجهة المستخدم. تتضمن UIKit و SwiftUI و Foundation و MapKit و NotificationCenter وواجهات برمجة تطبيقات أخرى يعمل معها المطور مباشرة. يوفر UIKit UIViewController و UIView و UIWindow وجميع المكونات المرئية.

Media — الرسومات والصوت

طبقة Media تشمل Core Graphics و Core Animation و Core Image و AVFoundation و Metal. Metal هي واجهة برمجة تطبيقات منخفضة المستوى لوحدة معالجة الرسومات توفر أداء رسومي عالي في الألعاب وتطبيقات الواقع المعزز. تدير Core Animation الرسوم المتحركة على مستوى الطبقات مع تسريع الأجهزة.

Core Services — خدمات النظام

Core Services تشمل Core Data و CloudKit و Core Location و HealthKit و Core Motion و Network. CFNetwork هي واجهة C منخفضة المستوى للعمل مع بروتوكولات الشبكة. Foundation هو غلاف كائني التوجه حول Core Foundation مع فئات NSString و NSArray و NSDictionary.

Core OS — النواة والأمان

الطبقة السفلية تشمل نواة XNU، نظام الملفات APFS، الوحدات التشفيرية (CommonCrypto و Security.framework)، إدارة الطاقة ومشغلات الأجهزة. يعمل Secure Enclave على هذا المستوى — معالج مساعد لتخزين البيانات البيومترية ومفاتيح التشفير.

objective-c
// التحقق من سلامة Secure Enclave عبر إطار Security
#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 — اللغة الرئيسية لتطوير iOS

Swift هي لغة برمجة قدمتها أبل في 2014 كبديل لـ Objective-C. تم تطويرها بواسطة كريس لاتنر في أبل. تجمع Swift بين بناء جملة اللغات الحديثة (Rust و Kotlin و C#) مع أداء على مستوى C. وفقًا لـ TIOBE (2026)، Swift ضمن أفضل 15 لغة برمجة.

الميزات الرئيسية لـ Swift

تستخدم Swift Automatic Reference Counting (ARC) — العد التلقائي للمراجع لإدارة الذاكرة دون جامع قمامة. البرمجة الموجهة بالبروتوكول (POP) تسمح بتوسيع الأنواع من خلال امتدادات البروتوكول. توفر Optionals التعامل الآمن مع nil، وتبسط pattern matching معالجة التفرعات.

swift
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 و Codable لفك تشفير JSON. يدير ARC الذاكرة تلقائيًا، ويمنع weak self دورات المراجع القوية في الإغلاقات.

Swift Concurrency: async/await و Actors

منذ iOS 13، تدعم Swift التزامن المدمج عبر async/await و Actors — أنواع آمنة للخيوط تحمي الحالة من سباقات البيانات. يتم استبدال DispatchQueue لتعدد الخيوط تدريجيًا بهياكل async/await و Task.

swift
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 يضمن أن الوصول إلى ذاكرة التخزين المؤقت يتم في خيط واحد، مما يستبعد حالات السباق. يتحقق المترجم من العزل في وقت البناء — الوصول إلى خاصية قابلة للتغيير لـ actor ممكن فقط عبر await.

Xcode وأدوات المطور

Xcode هي بيئة التطوير المتكاملة (IDE) من أبل، المتاحة حصريًا على macOS. تشمل محرر كود، Interface Builder للتخطيط المرئي، محاكي الأجهزة، Instruments للتحليل ومصحح LLDB. Xcode 15 يدعم Swift 5.9 مع الماكرو.

Interface Builder و Storyboards

Interface Builder يتيح إنشاء واجهات عبر السحب والإفلات مع توليد تلقائي لوصف XML (XIB/Storyboard). تصف Storyboards تدفقات الشاشات. منذ 2023، توصي أبل SwiftUI Preview كأداة رئيسية للتطوير المرئي، رغم أن Interface Builder لا يزال مستخدمًا في مشاريع UIKit.

أدوات التصحيح والتحليل

Xcode Instruments يشمل عشرات القوالب: Time Profiler (تحليل CPU)، Allocations (الذاكرة)، Leaks (التسريبات)، Core Animation (FPS)، Network و Energy Log. Metal Debugger يتيح فحص استدعاءات GPU والتظليلات. LLDB هو مصحح وحدة تحكم مع دعم تعبيرات Swift ونقاط توقف شرطية.

أطر عمل تطوير iOS الأساسية

iOS SDK يشمل مئات الأطر. فيما يلي الأطر الرئيسية التي يعمل معها كل مطور iOS يوميًا.

الإطارالغرض
UIKitالواجهة: UIView، UIViewController، الرسوم المتحركة، الإيماءات
SwiftUIواجهة تصريحية مع تحديثات تفاعلية
Foundationالأنواع الأساسية: String، Data، URLSession، JSONEncoder
Core DataORM للتخزين المحلي في SQLite
CloudKitمزامنة مع iCloud ومنطق خادم بدون backend
Core Locationتحديد الموقع: GPS، geofencing، iBeacon
MapKitعرض خرائط Apple، التعليقات، المسارات
AVFoundationالتقاط وتشغيل الصوت/الفيديو
Metalرسومات منخفضة المستوى وحوسبة GPGPU
Core MLتعلم آلي على الجهاز مع استدلال محلي
PushKit / UserNotificationsإشعارات الدفع، VoIP، تحديثات المحتوى

Core Data: العمل مع البيانات المحلية

Core Data هو إطار عمل لإدارة نموذج البيانات الكائنية. يتيح حفظ وتحميل ومزامنة الكائنات بين خيط واجهة المستخدم والسياقات الخلفية. iOS 17 أضاف SwiftData — غلاف حديث فوق Core Data مع دعم Swift Macros.

UIKit ضد SwiftUI: مقارنة المناهج

الاختيار بين UIKit و SwiftUI هو قرار معماري رئيسي عند بدء تطوير iOS. UIKit موجود منذ 2007 ويدعم جميع إصدارات iOS. SwiftUI تم تقديمه في 2019 ويتطلب iOS 13+.

المعيارUIKitSwiftUI
النموذجأمري (MVC، MVVM)تصريحي (مدفوع بالحالة)
iOS الأدنىiOS 2.0+iOS 13.0+
التخطيطAuto Layout في الكود أو Interface Builderسلسلة المعدلات، HStack/VStack/ZStack
التخصيصكامل (CALayer، drawRect)محدود بالمعدلات
الأداءعالٍ (تحسين يدوي)إبطال تلقائي
المعاينةغير مدعومةXcode Preview في الوقت الفعلي
الاختبارXCTest + اختبارات SnapshotXCTest + اختبارات Preview

عمليًا، معظم المشاريع التجارية تستخدم نهجًا هجينًا: SwiftUI للشاشات الجديدة والنماذج البسيطة، UIKit للمكونات المخصصة المعقدة التي تتطلب تحكمًا دقيقًا في العرض. تستثمر أبل بنشاط في SwiftUI، ومن المتوقع أن يصبح الإطار الرئيسي بحلول 2028.

دورة حياة تطبيق iOS

كل تطبيق iOS يمر بخمس حالات تديرها UIApplication و AppDelegate. في SwiftUI، يتولى App Protocol مع سمة @main هذا الدور.

حالات التطبيق

Not running — التطبيق لم يتم تشغيله أو تم إنهاؤه بواسطة النظام. Inactive — التطبيق في المقدمة لكنه لا يتلقى أحداثًا (مثلاً عند مكالمة واردة). Active — الحالة الطبيعية، التطبيق يتلقى أحداث اللمس. Background — التطبيق مصغر، ينفذ مهام خلفية. Suspended — التطبيق في الذاكرة لكنه لا ينفذ كودًا.

swift
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: النشر والمتطلبات

App Store هو المتجر الرسمي الوحيد للتطبيقات على iOS. النشر يتطلب اشتراك Apple Developer Program ($99/سنة). كل تطبيق يخضع للمراجعة — آلية (تحليل ثابت للكود الثنائي) ويدوية (فحص الواجهة والمحتوى).

عملية النشر

يقوم المطور ببناء أرشيف في Xcode ورفعه عبر Transporter أو Xcode Organizer إلى App Store Connect. متوسط وقت المراجعة 24–48 ساعة. تتحقق App Review من الامتثال للإرشادات: أمان البيانات، الأداء، تصميم HIG، عدم وجود وظائف مخفية.

متطلبات App Review

يولى اهتمام خاص للخصوصية: يجب الإعلان عن جميع أنواع جمع البيانات في Privacy Manifest. منذ 2025، تطلب أبل تحديد أسباب استخدام واجهات برمجة التطبيقات (NSPrivacyAccessedAPITypes). يتم رفض التطبيقات التي تستخدم متتبعات دون موافقة المستخدم.

المتطلبالوصف
Privacy Manifestإعلان جميع البيانات التي تم جمعها وأغراض الجمع
الامتثال لـ HIGالتوافق مع Human Interface Guidelines من Apple
الاستقرارعدم وجود أعطال أثناء المراجعة
قواعد Sandboxالوصول فقط إلى الموارد المسموح بها
صلاحيات iCloudتكوين صحيح لحاوية iCloud

الأسئلة الشائعة

ما هي اللغات المستخدمة في تطوير iOS؟

اللغة الرئيسية هي Swift. Objective-C مدعوم أيضًا ولكنه يُستخدم بشكل أساسي في المشاريع القديمة. Swift هي لغة حديثة آمنة الأنواع قدمتها أبل في 2014. منذ 2020، توصي أبل بـ Swift كلغة وحيدة للمشاريع الجديدة.

ماذا أختار: UIKit أم SwiftUI؟

UIKit هو إطار ناضج مع أقصى تخصيص، مناسب للواجهات المعقدة. SwiftUI هو إطار تصريحي لـ iOS 13+، يسرع التطور بمقدار 2–3 مرات. معظم المشاريع تستخدم كلا النهجين عبر UIViewRepresentable و UIHostingController.

كم تكلفة النشر في App Store؟

الاشتراك السنوي في Apple Developer Program يكلف $99 للمطورين الأفراد و $299 للمنظمات. بدون الاشتراك، النشر غير ممكن. عمولة App Store هي 15–30% من المبيعات حسب الدخل السنوي للمطور.

ما هو الحد الأدنى لإصدار iOS لـ SwiftUI؟

SwiftUI متاح من iOS 13 (2019). ومع ذلك، لاستخدام جميع الميزات بما في ذلك NavigationStack و Observable Macro و SwiftData، يتطلب iOS 17 و Xcode 15. دعم الإصدارات الأقدم يحد من وظائف SwiftUI.

ما هو App Sandbox في iOS؟

App Sandbox هو نموذج أمني يقيد وصول التطبيق إلى نظام الملفات وبيانات التطبيقات الأخرى وموارد النظام. كل تطبيق يعمل في حاوية معزولة. الوصول إلى جهات الاتصال والصور والميكروفون يتطلب إذنًا صريحًا عبر حوار النظام.

الملخص

  • iOS هو نظام تشغيل محمول مغلق مع نواة XNU وحماية التطبيقات ومراجعة إلزامية في App Store
  • Swift هي لغة حديثة لتطوير iOS مع ARC وبرمجة موجهة بالبروتوكول و async/await
  • بنية iOS تتضمن أربع طبقات: Cocoa Touch و Media و Core Services و Core OS
  • Xcode هي بيئة التطوير الوحيدة، تشمل محاكي و Instruments ومصحح LLDB
  • UIKit و SwiftUI هما نهجان للواجهة — أمري وتصريحي، غالبًا ما يستخدمان معًا
  • App Store يتطلب اشتراك Developer Program و Privacy Manifest ومراجعة
  • أمان iOS مضمون بواسطة Secure Enclave و Sandbox وتشفير إلزامي للبيانات

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا