iOS هو نظام تشغيل أبل المحمول الذي يشغل أجهزة iPhone و iPod touch. يتم تطوير iOS بلغة Swift باستخدام Xcode. دعنا نستعرض بنية المنصة، الأطر الرئيسية وعملية النشر في App Store.
أهم النقاط
iOS هو نظام تشغيل أبل المحمول، الذي تم إصداره لأول مرة في 2007 مع أول iPhone. النظام مبني على نواة XNU الدقيقة، نواة هجينة تجمع مكونات Mach و FreeBSD. على عكس Android، iOS هو منصة مغلقة: تثبيت التطبيقات ممكن فقط عبر App Store، وكود مصدر النظام غير متاح.
تتحكم أبل في كل من الأجهزة والبرمجيات، مما يضمن مستوى عالٍ من التحسين. وفقًا لـ StatCounter (2026)، تبلغ حصة iOS في سوق أنظمة التشغيل المحمولة حوالي 28% على المستوى العالمي وتتجاوز 50% في الولايات المتحدة واليابان.
يستخدم النظام نموذج App Sandbox — يعمل كل تطبيق في بيئة معزولة ولا يمكنه الوصول إلى بيانات التطبيقات الأخرى دون إذن صريح من المستخدم عبر حوارات النظام.
الإصدار الأول 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 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 من أربع طبقات مجردة، توفر كل منها واجهات برمجة تطبيقات للطبقة التي تعلوها. الطبقات السفلية هي النواة وخدمات النظام، والطبقات العليا هي أطر عمل المستخدم.
Cocoa Touch هي طبقة أطر عمل لبناء واجهة المستخدم. تتضمن UIKit و SwiftUI و Foundation و MapKit و NotificationCenter وواجهات برمجة تطبيقات أخرى يعمل معها المطور مباشرة. يوفر UIKit UIViewController و UIView و UIWindow وجميع المكونات المرئية.
طبقة Media تشمل Core Graphics و Core Animation و Core Image و AVFoundation و Metal. Metal هي واجهة برمجة تطبيقات منخفضة المستوى لوحدة معالجة الرسومات توفر أداء رسومي عالي في الألعاب وتطبيقات الواقع المعزز. تدير 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 على هذا المستوى — معالج مساعد لتخزين البيانات البيومترية ومفاتيح التشفير.
// التحقق من سلامة 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 هي لغة برمجة قدمتها أبل في 2014 كبديل لـ Objective-C. تم تطويرها بواسطة كريس لاتنر في أبل. تجمع Swift بين بناء جملة اللغات الحديثة (Rust و Kotlin و C#) مع أداء على مستوى C. وفقًا لـ TIOBE (2026)، Swift ضمن أفضل 15 لغة برمجة.
تستخدم Swift Automatic Reference Counting (ARC) — العد التلقائي للمراجع لإدارة الذاكرة دون جامع قمامة. البرمجة الموجهة بالبروتوكول (POP) تسمح بتوسيع الأنواع من خلال امتدادات البروتوكول. توفر Optionals التعامل الآمن مع nil، وتبسط pattern matching معالجة التفرعات.
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 دورات المراجع القوية في الإغلاقات.
منذ 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 يضمن أن الوصول إلى ذاكرة التخزين المؤقت يتم في خيط واحد، مما يستبعد حالات السباق. يتحقق المترجم من العزل في وقت البناء — الوصول إلى خاصية قابلة للتغيير لـ actor ممكن فقط عبر await.
Xcode هي بيئة التطوير المتكاملة (IDE) من أبل، المتاحة حصريًا على macOS. تشمل محرر كود، Interface Builder للتخطيط المرئي، محاكي الأجهزة، Instruments للتحليل ومصحح LLDB. Xcode 15 يدعم Swift 5.9 مع الماكرو.
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 SDK يشمل مئات الأطر. فيما يلي الأطر الرئيسية التي يعمل معها كل مطور iOS يوميًا.
| الإطار | الغرض |
|---|---|
| UIKit | الواجهة: UIView، UIViewController، الرسوم المتحركة، الإيماءات |
| SwiftUI | واجهة تصريحية مع تحديثات تفاعلية |
| Foundation | الأنواع الأساسية: String، Data، URLSession، JSONEncoder |
| Core Data | ORM للتخزين المحلي في SQLite |
| CloudKit | مزامنة مع iCloud ومنطق خادم بدون backend |
| Core Location | تحديد الموقع: GPS، geofencing، iBeacon |
| MapKit | عرض خرائط Apple، التعليقات، المسارات |
| AVFoundation | التقاط وتشغيل الصوت/الفيديو |
| Metal | رسومات منخفضة المستوى وحوسبة GPGPU |
| Core ML | تعلم آلي على الجهاز مع استدلال محلي |
| PushKit / UserNotifications | إشعارات الدفع، VoIP، تحديثات المحتوى |
Core Data هو إطار عمل لإدارة نموذج البيانات الكائنية. يتيح حفظ وتحميل ومزامنة الكائنات بين خيط واجهة المستخدم والسياقات الخلفية. iOS 17 أضاف SwiftData — غلاف حديث فوق Core Data مع دعم Swift Macros.
الاختيار بين UIKit و SwiftUI هو قرار معماري رئيسي عند بدء تطوير iOS. UIKit موجود منذ 2007 ويدعم جميع إصدارات iOS. SwiftUI تم تقديمه في 2019 ويتطلب iOS 13+.
| المعيار | UIKit | SwiftUI |
|---|---|---|
| النموذج | أمري (MVC، MVVM) | تصريحي (مدفوع بالحالة) |
| iOS الأدنى | iOS 2.0+ | iOS 13.0+ |
| التخطيط | Auto Layout في الكود أو Interface Builder | سلسلة المعدلات، HStack/VStack/ZStack |
| التخصيص | كامل (CALayer، drawRect) | محدود بالمعدلات |
| الأداء | عالٍ (تحسين يدوي) | إبطال تلقائي |
| المعاينة | غير مدعومة | Xcode Preview في الوقت الفعلي |
| الاختبار | XCTest + اختبارات Snapshot | XCTest + اختبارات Preview |
عمليًا، معظم المشاريع التجارية تستخدم نهجًا هجينًا: SwiftUI للشاشات الجديدة والنماذج البسيطة، UIKit للمكونات المخصصة المعقدة التي تتطلب تحكمًا دقيقًا في العرض. تستثمر أبل بنشاط في SwiftUI، ومن المتوقع أن يصبح الإطار الرئيسي بحلول 2028.
كل تطبيق iOS يمر بخمس حالات تديرها UIApplication و AppDelegate. في SwiftUI، يتولى App Protocol مع سمة @main هذا الدور.
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، تطلب أبل تحديد أسباب استخدام واجهات برمجة التطبيقات (NSPrivacyAccessedAPITypes). يتم رفض التطبيقات التي تستخدم متتبعات دون موافقة المستخدم.
| المتطلب | الوصف |
|---|---|
| Privacy Manifest | إعلان جميع البيانات التي تم جمعها وأغراض الجمع |
| الامتثال لـ HIG | التوافق مع Human Interface Guidelines من Apple |
| الاستقرار | عدم وجود أعطال أثناء المراجعة |
| قواعد Sandbox | الوصول فقط إلى الموارد المسموح بها |
| صلاحيات iCloud | تكوين صحيح لحاوية iCloud |
الأسئلة الشائعة
اللغة الرئيسية هي Swift. Objective-C مدعوم أيضًا ولكنه يُستخدم بشكل أساسي في المشاريع القديمة. Swift هي لغة حديثة آمنة الأنواع قدمتها أبل في 2014. منذ 2020، توصي أبل بـ 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 تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.