أنا محمد، مطور ويب Full Stack. لغتي اليومية هي JavaScript و PHP، وبيئتي المفضلة هي المتصفح والسيرفر (Chrome & Linux). مرتاح جداً في عالمي، وعندي قناعة (أو كانت عندي) إن الويب هو المستقبل وإن تقنيات الـ Cross-Platform زي React Native و Flutter كافية وزيادة لبناء أي تطبيق.
لكن، الفضول التقني هو داء ليس له دواء عند المبرمجين.
كنت دائماً أسمع عن لغة Swift من شركة Apple. أسمع إنها “سريعة بشكل مرعب”، “آمنة جداً”، وإنها اللغة اللي بتعتمد عليها أكبر الشركات لبناء تجارب مستخدم (UX) لا تُضاهى.
سألت نفسي الأسئلة اللي بتخطر ع بال أي مطور ويب:
“هل فعلاً البرمجة الـ Native بتفرق في الأداء؟ وهل تعلم لغة جديدة تماماً ومحصورة في بيئة Apple يستحق العناء في 2026؟”.
قررت أطلع من منطقة الراحة (Comfort Zone)، وأعمل “غطسة عميقة” (Deep Dive) في توثيق Swift الرسمي، وأجرب أكتب شوية كود، وأقارنها باللي بعرفه في الويب.
هاد المقال مش “شرح خبير متمرس في iOS”، هاد المقال هو “خلاصة بحث وتجربة مطور ويب” بيحكي لمطورين زيه: شو هي Swift؟ شو الفرق بينها وبين JS؟ وكيف ممكن تتعلمها بأقل وقت وجهد؟
إذا كنت مبرمج ويب وحاسس بالرهبة من عالم iOS، أو عندك فضول تعرف شو بصير في “الحديقة المغلقة” (Walled Garden) تبعت Apple، هاد المقال الطويل والمفصل هو دليلك.
الفصل الأول: الصدمة الأولى.. Swift ليست كأي لغة عرفتها
أول ما فتحت موقع Swift.org، توقعت أشوف اشي معقد وقديم زي C++ أو Objective-C (اللغة اللي كانت Apple تستخدمها زمان).
بس المفاجأة كانت إن الكود مألوف جداً، وكأنه مصمم عشان يريحنا إحنا المطورين الجدد.
1. نظافة الكود (Modern Syntax)
في الويب، تعودنا ع الفوضى شوي (خاصة في JS القديمة قبل ES6).
Swift لغة نظيفة جداً:
- ما في Semicolons (؛) في آخر السطر (اختياري زي JS، بس العرف إنه ما نكتبها).
- ما في أقواس
()في جمل الـifأوswitchإلا للضرورة. - الكود بينقرأ كأنه جملة إنجليزية مفهومة.
مقارنة عملية:
- JavaScript:javascript
const names = ["Ahmad", "Ali"]; if (names.length > 0) { console.log(`Hello ${names}`); } - Swift:swift
let names = ["Ahmad", "Ali"] if !names.isEmpty { print("Hello \(names)") }
شايف الشبه؟ حاجز اللغة انكسر عندي من أول 5 دقائق.
2. هوس الأمان (Type Safety & Optionals)
هون الاختلاف الحقيقي والجوهري. في JavaScript، المتغير ممكن يكون رقم، وبعدين يصير نص، وبعدين يصير undefined. وهاد سبب نص الـ Bugs والكوارث في مشاريع الويب الكبيرة.
Swift لغة صارمة (Statically Typed).
- إذا عرفت متغير
String، مستحيل تحط فيه رقم. الكومبايلر (Xcode) رح يصرخ بوجهك ويعطيك خطأ أحمر قبل ما تشغل التطبيق أصلاً. - الـ Optionals: هاي الميزة اللي حبيتها وكرهتها بنفس الوقت. في Swift، أي متغير ممنوع يكون
nil(فارغ) إلا إذا إنت سمحتله صراحة بوضع علامة استفهام?.
هاد بيعني إن الـ “Null Pointer Exception” الشهير (أوundefined is not a functionفي JS) شبه اختفى من تطبيقات iOS. التطبيق مستحيل يشتغل وفيه احتمالية انهيار بسبب قيمة مفقودة.
3. السرعة المرعبة
Swift لغة Compiled (مترجمة)، مش Interpreted (مفسرة) زي JS و Python.
يعني الكود بيتحول للغة الآلة (Machine Code) مباشرة وبشتغل ع المعالج.
Apple وتجارب المطورين بتقول إنها أسرع بـ 2.6 مرة من Objective-C، وأسرع بـ 8.4 مرة من Python.
كمطور ويب، إحنا متعودين نحسن الأداء بالـ Caching وضغط الصور، بس هون اللغة نفسها صاروخ من الأساس.
الفصل الثاني: Swift vs. JavaScript (مقارنة الأخوة الأعداء)
بما إننا جايين من خلفية ويب، أفضل طريقة للفهم هي المقارنة بالمصطلحات اللي بنعرفها ونستخدمها يومياً:
| المفهوم في الويب (JS/TS) | المفهوم في Swift | ملاحظات |
|---|---|---|
const | let | للثوابت (Best Practice: استخدمها دائماً إلا لو مضطر تغير) |
let / var | var | للمتغيرات القابلة للتغيير (Variables) |
Array / Object | Array / Dictionary | نفس المبدأ تقريباً، بس في Swift لازم تحدد نوع البيانات جواهم |
Promise / async-await | async / await | Swift اعتمدت الـ Concurrency الحديث مؤخراً (في Swift 5.5) |
Interface (TypeScript) | Protocol | وصف لشكل البيانات أو السلوك (عقد ملزم للكلاسات) |
React (Framework) | SwiftUI (Framework) | لبناء الواجهات بطريقة Declarative ومبنية ع المكونات (Components) |
NPM / Yarn | Swift Package Manager (SPM) | لإدارة المكتبات الخارجية والـ Dependencies |
الخلاصة: المفاهيم البرمجية (Logic) وحدة. إذا فاهم JS منيح، رح تفهم Swift بسرعة خيالية. الصعوبة مش في اللغة، الصعوبة في “بيئة العمل” والمكتبات الخاصة بـ Apple.
للمزيد عن أساسيات البرمجة، ممكن تراجع مقالنا السابق كيف تختار لغة البرمجة المناسبة لك.
الفصل الثالث: بيئة العمل.. العقبة الكبرى (The Mac Barrier)
هون النقطة اللي بتخلي كتير مطورين ويب ينسحبوا قبل ما يبدؤوا.
لتطوير الويب، أي لابتوب “بطاطا” بيمشي الحال (Windows, Linux, Mac).
لتطوير iOS بـ Swift، إنت محتاج Mac. نقطة.
ليش؟
لأن Xcode (البرنامج الوحيد المعتمد لبناء تطبيقات iOS وتوقيعها ونشرها ع المتجر) لا يعمل إلا على نظام macOS.
هل في بدائل؟ (نتائج بحثي العميق)
دورت كتير ع حلول للناس اللي ما عندهم ماك (لأني بعرف إن أجهزة Apple غالية)، وهاي النتيجة الصريحة:
- Swift on Linux/Windows: بتقدر تحمل Swift للينكس وتكتب كود Swift كلغة (تتعلم السنتاكس، خوارزميات)، بس مستحيل تبني واجهة تطبيق آيفون (UI) لأن مكتبات الـ UI (زي SwiftUI و UIKit) مش موجودة غير ع الماك.
- iPad (Swift Playgrounds): في تطبيق رسمي من Apple اسمه Swift Playgrounds ع الآيباد. تطور كتير وصار ممكن تبني تطبيق كامل وتنشره منه للـ App Store! هاد حل ممتاز للمبتدئين اللي عندهم آيباد بس ما عندهم ماك.
- Cloud Mac (Mac-in-Cloud): استئجار ماك سحابي (بتتحكم فيه عن بعد عبر المتصفح). حل مكلف (بالساعة أو بالشهر) وبطيء بسبب النت، بس بيمشي الحال للتجربة الأولية قبل الشراء.
- Hackintosh: تنزيل نظام macOS ع لابتوب عادي. (وجع راس، مشاكل تعريفات لا تنتهي، وغير قانوني.. ما بنصح فيه للشغل الجدي والاحترافي).
نصيحتي: إذا ناوي تكمل، استثمر في MacBook Air M1 (مستعمل أو جديد). سعره نزل كتير وأداؤه خرافي لهيك شغل، وبيعطيك تجربة سلسة جداً.
الفصل الرابع: SwiftUI.. الهدية التي ننتظرها (كأنك بتكتب React)
كمطور ويب، أكتر شي كان مخوفني هو تصميم الواجهات. كنت مفكر رح أستخدم Drag & Drop قديم (Storyboard) أو أكتب XML معقد.
بس اكتشفت SwiftUI، وهو إطار عمل حديث أطلقته Apple في 2019.
يا جماعة، SwiftUI هو نسخة طبق الأصل عن React بس بلغة Swift.
- بتكتب كود عشان توصف الواجهة (Declarative Syntax).
- عندك
Stateلما تتغير، الواجهة بتتحدث لحالها (Re-rendering). - بتقسم الواجهة لـ Components صغيرة (في Swift بسموها Views) وبتركبها جوا بعض.
شوف المثال هاد وقارنه بـ React:
swiftimport SwiftUI
struct ContentView: View {
@State private var count = 0 // زي useState في React
var body: some View {
VStack { // زي div بـ display: flex و flex-direction: column
Text("العدد الحالي: \(count)")
.font(.largeTitle) // CSS-in-Swift
.padding()
Button("زيد الرقم") {
count += 1
}
.background(Color.blue)
.foregroundColor(.white)
}
}
}
هاد الكود بيبني واجهة فيها نص وزر، ولما تضغط الزر بتحدث الرقم فوراً.
أي حدا اشتغل React رح يفهم هاد الكود فوراً.
هاد الاشي شجعني جداً، وحسسني إن الانتقال رح يكون سلس وممتع.
للمقارنة، يمكنك قراءة المزيد عن أهمية تجربة المستخدم (UX) في مقالاتنا السابقة، لأن SwiftUI بتسهل تطبيق مبادئ الـ UX بشكل كبير.
الفصل الخامس: خارطة طريق مقترحة (للمطورين أمثالي)
بناءً على بحثي في المصادر والدورات (زي دورات Paul Hudson و Angela Yu), هاي الخارطة اللي ناوي أمشي عليها، وبنصحك فيها:
الشهر الأول: الأساسيات واللغة (بدون واجهات)
- لا تفتح Xcode وتعمل تطبيق فوراً وتضيع.
- نزل Swift Playgrounds أو استخدم Online Compiler.
- ركز ع الـ Syntax، الـ Optionals (افهمها منيح)، الـ Closures (زي الـ Arrow Functions)، والـ Protocols.
- افهم كيف Swift بتدير الذاكرة (ARC)، لأنه مختلف عن الـ Garbage Collection تبع JS اللي بريحنا من كل اشي.
الشهر الثاني: SwiftUI والتفكير بطريقة Apple
- ابدأ تعلم SwiftUI.
- انسى UIKit القديم (إلا لو بدك تتوظف في شركة كبيرة عندها كود قديم Legacy Code، بس للمشاريع الجديدة SwiftUI هو المستقبل).
- افهم نظام الـ Layout تبعهم (VStack, HStack, ZStack) اللي هو بديل الـ Flexbox و Grid عندنا.
الشهر الثالث: البيانات والـ Networking
- تعلم كيف تتعامل مع JSON (في Swift اسمه
Codable، واشي سحري جداً بيحول الـ JSON لـ Objects والعكس بسطر واحد). - ابني تطبيق بيجيب داتا من API خارجي (أخبار، طقس، عملات).
- تعلم تخزين البيانات محلياً (UserDefaults للإعدادات البسيطة، و SwiftData الجديد لقواعد البيانات).
الشهر الرابع: المشروع الكامل والنشر
- ابني تطبيق كامل من الألف للياء (مثلاً تطبيق Todo List مع تنبيهات).
- جرب ترفعه ع TestFlight (بيئة التجربة قبل النشر).
- تعلم أساسيات التصميم الخاصة بـ Apple المعروفة بـ Human Interface Guidelines عشان تطبيقك ما يبين “غريب” ومسروق من أندرويد.
الخاتمة: هل تستحق التجربة؟
بصراحة؟ نعم، وبقوة.
حتى لو قررت تضلك مطور ويب، تعلم Swift بيفتح مخك ع مفاهيم هندسية قوية (زي الـ Type Safety الصارم والـ Compiled Languages) رح تخليك تكتب كود JS/TS أحسن وأنظف.
وإذا قررت تحترفها؟
سوق تطبيقات iOS “نخبوي”. العملاء بيدفعوا أكتر (لأن مستخدمي الآيفون تعودوا يدفعوا)، والمنافسة أقل من الويب المزدحم، والشركات دايماً بتدور ع مطورين iOS شاطرين لأن عددهم قليل.
أنا كـ محمد أبو خشريف، لسه في بداية الطريق مع Swift، بس متحمس جداً.
يمكن بيوم من الأيام تشوفوا تطبيق لـ “كود التطور” ع الـ App Store مكتوب بـ Swift.
إذا عندك ماك (أو آيباد)، نزل Swift Playgrounds اليوم وجرب. يمكن تكتشف شغف جديد ما كنت عارف عنه.
خليك فضولي، وتعلم دائماً!
اكتشاف المزيد من كود التطور
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.


