نُبقي تطبيقك العامل مواكباً لما تغيّر
تحديث التطبيق يعني تجديد أسسه دون التخلي عما ينجح فيه. ندقق الشيفرة والمكتبات التي يعتمد عليها ومتطلبات المتاجر، ونقرر ما نرقّيه وما نعيد كتابته وما نتركه، ونسلّم التغييرات في إصدارات عادية، فيتلقى المستخدمون ببساطة نسخة أفضل من التطبيق الذي يعرفونه.
يناسب ذلك التطبيقات التي بُنيت منذ مدة ويصعب تغييرها، أو تتعطل على الهواتف الجديدة، أو تعتمد على مكتبات لا يصونها أحد، أو تواجه موعداً نهائياً من المتجر. وقد يُظهر التدقيق أحياناً أن إعادة الكتابة هي الطريق الأقل كلفة. ونعرض الخيارين بتكاليفهما ومخاطرهما، ولا نفترض مسبقاً أيهما ستميل إليه الأدلة.
تدقيق الترقية
نراجع الشيفرة وإعدادات البناء والمكتبات الخارجية وتقارير الأعطال ومتطلبات المتاجر، ونحدد ما هو قديم، وما هو غير آمن، وما يعيق العمل المستقبلي.
جدول التوافق
جدول يبيّن إصدارات الأنظمة والأجهزة ومقاسات الشاشات التي يدعمها التطبيق اليوم، وما ينبغي أن يدعمه، وتكلفة كل خيار.
ترقية الأطر
ينتقل التطبيق إلى الإصدارات الحالية من أدوات منصته ولغاته وأطر واجهاته، بخطوات تبقيه قابلاً للإصدار بعد كل واحدة منها.
استبدال المكتبات
نستبدل المكتبات المهجورة أو الخطرة بمكتبات تحظى بالصيانة أو بميزات المنصة نفسها، ونبدأ بما يتعامل مع المدفوعات وتسجيل الدخول والبيانات الشخصية.
تجديد الواجهة
نحدّث الشاشات وفق أعراف المنصة الحالية، والشاشات الأكبر، والوضع الداكن، وإعدادات إمكانية الوصول، دون أن نغيّر الطريقة التي يتنقل بها المستخدمون المعتادون.
أمان الإصدارات
نضيف أولاً الاختبارات المؤتمتة ومراقبة الأعطال والإطلاق المرحلي، فيصل كل جزء محدَّث إلى مجموعة صغيرة قبل أن يصل إلى الجميع.
ما تتسلمه منا
- تقرير تدقيق مرتب بالأولويات
- جدول الأجهزة والأنظمة
- أطر وأدوات مُرقّاة
- مكتبات خارجية مستبدلة
- شاشات واجهة مجددة
- مجموعة اختبارات مؤتمتة
- خطة إطلاق مرحلي
- صفحات محدّثة في المتاجر
طريقة عملنا
- 01
التدقيق
نقرأ الشيفرة، ونبني التطبيق من الصفر، ونراجع بيانات الأعطال والاستخدام، ونتحقق من قواعد المتاجر الحالية، ثم نعرض ما يجب تغييره، وما ينبغي تغييره، وما يمكن أن ينتظر.
- 02
رسم المسار
نرتب العمل بحيث يأتي الأمان أولاً، فتسبق الاختبارات والمراقبة الترقيات، ونحدد حجم كل خطوة لاحقة لتتسع لها دورة إصدار عادية يمكن إطلاقها وحدها.
- 03
الترقية على مراحل
نحدّث الأطر والمكتبات والشاشات جزءاً بعد جزء، خلف مفاتيح تفعيل الميزات عند الحاجة، مع إمكان تعايش النسختين القديمة والجديدة إلى أن يثبت التغيير جدواه.
- 04
الإطلاق التدريجي
يصل كل إصدار إلى نسبة صغيرة من المستخدمين أولاً، ونراقب معدلات الأعطال والتقييمات، ولا نوسّع الإطلاق إلا حين تعادل الأرقام الإصدار السابق أو تفوقه.
التقنيات التي نستخدمها
| المجال | التقنيات |
|---|---|
| نظام iOS | Swift، SwiftUI، Xcode Cloud، TestFlight |
| نظام Android | Kotlin، Jetpack Compose، Gradle، Play Console |
| متعدد المنصات | React Native، Expo، Flutter، TypeScript |
| الجودة | Firebase Crashlytics، Sentry، Detox، Maestro |
تطبيقك يعمل اليوم لكن تغييره صعب
بُني التطبيق منذ مدة على يد فريق لم يعد يعمل عليه. كل تحديث يستغرق وقتاً أطول مما ينبغي، والهواتف الجديدة تكشف مشكلات في التخطيط، وإشعار من المتجر حدد موعداً نهائياً. ما تريده أن يصبح التطبيق محدّثاً دون أن تخسر مستخدميك أو تبدأ من جديد.
- تطبيقات مبنية على أطر قديمة
- تطبيقات تواجه مواعيد نهائية من المتاجر
- تطبيقات موروثة من فريق آخر
- تطبيقات ترتفع معدلات أعطالها
- تطبيقات هجينة بدأ عمرها يظهر
- تطبيقات تعجز عن استقبال ميزات جديدة
أسئلة شائعة
هل نحدّث التطبيق أم نعيد كتابته؟
حدّثه حين تكون بنيته سليمة وتكون المشكلة في أدوات ومكتبات وشاشات قديمة. وأعد كتابته حين تعيق بنيته كل تغيير، أو حين لا تعود التقنية مدعومة، أو حين يتغير المنتج إلى حد لا يبقى معه من الشيفرة القديمة ما ينفع. ويقدم التدقيق الأدلة لكلا الطريقين مع تقدير لكل منهما، فيقوم القرار على النتائج لا على التفضيل.
هل سيلاحظ مستخدمونا أعمال التحديث؟
ينبغي أن يلاحظوا أن التطبيق أسرع وأكثر استقراراً وأنسب للهواتف الجديدة، لا أن يضطروا إلى تعلّمه من جديد. نُبقي التنقل والشاشات المألوفة كما يعرفونها، ونسلّم التغييرات عبر تحديثات عادية، ونتجنب إجبار الناس على تسجيل الدخول مجدداً أو فقدان بياناتهم المحفوظة. وحيث يلزم تغيير ظاهر، نقدمه تدريجياً ونشرحه داخل التطبيق.
ماذا يحدث إن تجاهلنا متطلبات متاجر التطبيقات؟
يرفع المتجران حدودهما الدنيا بانتظام، ومنها مثلاً إصدار النظام الذي يجب أن يُبنى التطبيق له. والتطبيق الذي يتأخر عنها قد يُمنع من نشر التحديثات، وقد يُخفى في النهاية عن المستخدمين الجدد، وإن كان من ثبّتوه يستطيعون عادةً مواصلة استخدامه. ونتحقق من القواعد الحالية أثناء التدقيق، ونخطط العمل لنلتزم بالمواعيد النهائية بهامش كافٍ.
هل يمكنكم تحديث تطبيق بنته شركة أخرى؟
نعم، وهذه هي الحالة المعتادة. نحتاج إلى الشيفرة المصدرية، والوصول إلى حسابات المتاجر ومفاتيح البناء، وما يتوفر من توثيق. والخطوة الأولى دائماً أن نبني التطبيق ونشغّله بأنفسنا، فيتضح سريعاً مدى اكتمال التسليم. وإن نقص شيء أساسي، مثل مفتاح التوقيع، نشرح الخيارات قبل أن يبدأ أي عمل آخر.
كيف تتجنبون تعطيل التطبيق أثناء الترقيات؟
بإضافة وسائل الأمان قبل تغيير أي شيء. تغطي الاختبارات المؤتمتة مسارات الاستخدام الرئيسية، وتبلّغ مراقبة الأعطال عن المشكلات فور حدوثها، ونطلق الإصدارات على مراحل. ونبقي كل ترقية صغيرة بما يكفي لإطلاقها وحدها، فيمكن تتبع العطل إلى تغيير واحد وسحبه. أما عمليات الاستبدال الأكبر فتعمل إلى جانب الشيفرة القديمة خلف مفتاح تفعيل، حتى تثبت النسخة الجديدة جدواها مع مستخدمين حقيقيين.

