تطبيقات iOS وAndroid
قاعدة كود واحدة تنتج تطبيقين حقيقيين، مع تنفيذ ما يخص كل منصة حيث يظهر أثره: التنقل والإيماءات والإشعارات والإحساس الذي يفرّق التطبيق عن صفحة ويب مغلّفة.
تطبيقات جوال للشركات والمشاريع الناشئة والجهات التي تلتقي عملاءها في الهاتف — مبنية لتُستخدم يومياً لا لتُعرض مرة واحدة.
التطبيق هو أكثر المنتجات تطلّباً بين ما قد تطلبه شركة. يراجعه متجران، ولا يُحدَّث عند المستخدم إلا إذا أراد، ويجب أن يعمل على اتصال ضعيف، وأن يتعامل مع الإشعارات والصلاحيات والمدفوعات — ويُقارَن كل يوم بأفضل التطبيقات في الهاتف، لا بتطبيق منافسك.
نبني تطبيقات تصمد في هذه المقارنة. يبدأ ذلك بتحديد التدفّق الأول بصرامة: ما الذي يجب أن يستطيع المستخدم فعله خلال ثلاثين ثانية، وما الذي يمكن أن ينتظر النسخة الثانية. عندها يكتمل ما يُبنى بدل أن يبقى شبه مكتمل، ويصبح الإطلاق تاريخاً لا أمنية.
معظم التطبيقات التي نبنيها ليست وحيدة. هناك لوحة ويب تدير من خلالها الجهة المحتوى والطلبات، وواجهة برمجية بينهما، وغالباً نظام قائم يملك الحقيقة عن العملاء أو المخزون. نبني هذه السلسلة كاملة، ولهذا تبقى متماسكة.
النطاق يُحدَّد لكل مشروع. هذه هي الأجزاء التي نعمل عليها.
قاعدة كود واحدة تنتج تطبيقين حقيقيين، مع تنفيذ ما يخص كل منصة حيث يظهر أثره: التنقل والإيماءات والإشعارات والإحساس الذي يفرّق التطبيق عن صفحة ويب مغلّفة.
ما خلف التطبيق: الحسابات والبيانات والمزامنة والصلاحيات ولوحة الإدارة التي تتيح للجهة إدارة عملها دون مطوّر.
واجهات مرسومة لإبهام يتحرك. نختبر التدفّق الرئيسي في نموذج قابل للنقر قبل بنائه، لأن إعادة الرسم تكلّف يوماً في التصميم وأسبوعاً في الكود.
App Store وGoogle Play: الحسابات والشهادات ونصوص المتجر ولقطات الشاشة وإقرارات الخصوصية والمراجعة — وهي المرحلة التي تخسر فيها المشاريع غير المستعدة أسابيع.
إشعارات تستحق أن تُستقبل، ومشتريات داخل التطبيق واشتراكات، ومدفوعات بالبطاقة، وربط مع الأنظمة التي تشغّلونها بالفعل.
التطبيقات تتوقف عن العمل وحدها مع تحديث أنظمة التشغيل. نبقي الإصدارات والاعتماديات ومتطلبات المتاجر محدّثة، ونقيس ما يفعله المستخدمون فعلاً.
النطاق هو ما يحدد السعر، لا سعر الساعة. ما يرفع التكلفة هو عدد أنواع المستخدمين، وهل يحتاج التطبيق تسجيل دخول ومزامنة خاصة به، وهل تدخل المدفوعات، وكم نظاماً خارجياً سيتحدث معه، وكم منه يجب أن يعمل دون اتصال. تطبيق محدود بتدفّق رئيسي واضح يختلف تماماً عن منصة بعدة أدوار وتكاملات. نراجع النطاق في اجتماع مجاني ونعود بنطاق سعري وبأسبابه.
نسخة أولى محدودة النطاق تستغرق عادةً بضعة أشهر من البداية حتى المتجر. وما يحسم ذلك هو مدى إحكام تحديد النسخة الأولى، لا سرعة كتابة الكود. لذلك نمنح وقتاً لتعريف التدفّق الأول قبل بدء التطوير، ولذلك يصبح النطاق أصغر بعد الاجتماع الأول لا أكبر.
نعم، وعادةً من قاعدة كود مشتركة. هذا ينتج تطبيقين حقيقيين بتكلفة أقرب إلى واحد منها إلى اثنين، مع معالجة الفروق بين المنصتين حيث يلاحظها المستخدم فعلاً. وحين يتطلب المشروع تكاملاً عميقاً مع منصة بعينها نبني أصلياً بـ Swift أو Kotlin، ونوضّح السبب.
نعم، وتُسجَّل الحسابات والشهادات باسمكم لا باسمنا. نحضّر نصوص المتجر ولقطات الشاشة وإقرارات الخصوصية والفئة العمرية، ونتولّى المراجعة. وهذه المرحلة هي التي تفاجئ أكثر من غيرها: المراجعة ترفض بسهولة على تفاصيل رخيصة التحضير ومكلفة الاكتشاف يوم الإطلاق.
نعم. الكود والحسابات والبيانات كلها ملككم، وتُسلَّم بحالة تتيح لمطوّر آخر متابعتها: المستودع والتوثيق والبيئات وسلسلة البناء. وهذا نفسه ما نطلبه حين نستلم تطبيقاً من جهة أخرى، وغيابه هو السبب الأكثر شيوعاً لأن يكلّف الاستلام أكثر مما ينبغي.
نعم. نبدأ بمراجعة الكود والاعتماديات وسلسلة البناء وحسابات المتاجر، ونقدّم تقريراً بما يستحق البقاء وما يجب استبداله وما هو عاجل. تحصل على الصورة قبل أن نقترح عملاً — وأحياناً يكون الجواب أن التطبيق يُشغَّل ويُصان، لا أن يُعاد بناؤه.
الإطلاق غالباً نصف الطريق. أنظمة التشغيل تُحدَّث سنوياً ومتطلبات المتاجر تتغيّر، فالتطبيق غير المُشغَّل يتوقف عن العمل وحده خلال سنتين تقريباً. نبقيه محدّثاً، ونقيس ما يفعله المستخدمون، ونبني على ذلك بدل قائمة الأمنيات.
احجز استشارة مجانية. نراجع الفكرة، وما الذي يجب أن تحتويه النسخة الأولى، وما تعنيه الخطوة الأولى.