تطبيق موبايل يعمل بدون إنترنت: كيف تبنيه لشبكة متقطعة
الاتصال في العراق وأطراف الخليج متقطع لا غائب، ولهذا يُبنى تطبيق موبايل يعمل بدون إنترنت من اليوم الأول: تخزين محلي، وطابور عمليات، ومزامنة تحل التعارض.
أهم النقاط
- اقرأ محليًا واعرض فورًا ثم حدّث في الخلفية؛ لا تجعل المستخدم ينتظر الشبكة ليرى بيانات.
- الحالة الأصعب هي الاتصال بلا إنتاجية؛ اضبط مهلًا حازمة واسقط إلى مسار عدم الاتصال.
- أظهر الكتابات المعلّقة، واعرض إخفاقات الطابور بدل فقدانها بصمت.
- حل التعارض قرار منتج لكل نوع بيانات لا تفصيل تنفيذي.
التطبيق الذي يعمل دون اتصال أولًا يعامل الجهاز المحلي كمصدر الحقيقة للقراءة ويصفّ التغييرات للمزامنة حين يتوفر اتصال. وهذا يهم في أسواق يكون فيها الاتصال متقطعًا لا غائبًا بشكل موثوق، لأن التطبيق الذي يعرض دائرة انتظار كلما انقطعت الإشارة غير قابل للاستخدام في اللحظة التي يحتاجه فيها المستخدم أكثر: في مصعد، أو قبو، أو طريق، أو مبنى ضعيف التغطية.
الحالات الثلاث التي تخطئ فيها أغلب التطبيقات
- متصل وسليم. الحالة الوحيدة التي تُصمَّم فيها أغلب التطبيقات وتُعرض.
- غير متصل. لا اتصال إطلاقًا. ينبغي أن يفتح التطبيق ويعرض البيانات المحمّلة سابقًا مع إشارة صادقة إلى وقت جلبها ويقبل إدخالًا يُرسل لاحقًا.
- متصل وبلا فائدة. متصل بشبكة بلا إنتاجية حقيقية، وهي الحالة الأشيع والأسوأ معالجة. والطلب الذي يتعلق ثلاثين ثانية أسوأ من إخفاق فوري، فاضبط مهلًا حازمة واسقط إلى مسار عدم الاتصال.
بنية تعمل
اقرأ من مخزن محلي واعرض فورًا، ثم حدّث من الشبكة في الخلفية وحدّث العرض. فلا ينتظر المستخدم الشبكة ليرى شيئًا أبدًا. والكتابات تذهب إلى المخزن المحلي أولًا، وتُصفّ، وتُرسل حين يمكن، مع مؤشر مرئي يفيد بوجود شيء معلّق لا طابور صامت لا يراه المستخدم.
وصمّم لإخفاق الطابور. التغيير الذي يتعذّر إرساله يحتاج أن يظهر للمستخدم في النهاية لا أن يختفي، وينبغي أن تقول الرسالة ما الذي لم يُحفظ وما الذي يمكنه فعله بشأنه.
التعارضات قرار منتج
حين يتغير السجل نفسه في مكانين، على أحد أن يقرر أيهما يفوز. آخر كتابة تفوز بسيط ويدمّر البيانات بصمت. وسؤال المستخدم صادق ومقتحم. والدمج أفضل حيث تسمح بنية البيانات. وهذا ليس تفصيلًا تقنيًا يُحسم أثناء التنفيذ؛ إنه قرار منتج له عواقب، وينبغي اتخاذه صراحة لكل نوع بيانات قبل البناء.
ما لا يُخزَّن محليًا
أي شيء حساس لا يحتاج أن يكون متاحًا دون اتصال. فنسخة مخبأة من تفاصيل مالية أو وثائق هوية على الجهاز عبء، والراحة نادرًا ما تبررها. وحيث يكون التخزين المحلي لبيانات حساسة مطلوبًا فعلًا، استخدم التخزين المشفّر الذي توفره المنصة لا قاعدة بيانات عامة، وامسحه عند تسجيل الخروج.
قل الحقيقة عن حداثة البيانات
التطبيق العامل دون اتصال يعرض بيانات مخبأة، والمستخدم يحتاج أن يعرف كم عمرها. ختم زمني هادئ، أو سطر يقول آخر تحديث قبل إحدى عشرة دقيقة، يحوّل شاشة قد تكون مضللة إلى شاشة صادقة. والبديل، عرض أرقام قديمة كأنها حية، هو كيف يتصرف أحدهم بناءً على رصيد أو مستوى مخزون تغيّر قبل ساعة.
متصل وبلا فائدة هي أشيع حالات الشبكة وأسوؤها معالجة. اسقط سريعًا إلى مسار عدم الاتصال.