KamoCRM

تطبيق متنقل في المتاجر

رد فعل محلي مع وحدات محلية حيث JavaScript لن يفعل

عميل متنقل متعدد المنصات للمنصة، مكتوب في React Native مع وحدات Android أصلية حيث لا يمكن للطبقة JavaScript الوصول إليها - تسليم الرسائل الخلفية، ونوافذ التغطية العائمة، وتسجيل الأجهزة، وتخزين بيانات الاعتماد الآمنة.

كل رقم هنا يسمّي من أين أتى ومتى تمّ قياسه.
الإجراءالقيمةالمصدرالمقيسة
وحدات نموذجية محلية Android إلى جانب قاعدة شفرة React NativeKotlin modules for overlays, background delivery and enrolmentandroid source tree in the mobile client repository
مصدر Kotlin في العميل المحمول24 filesfind . -name '*.kt' across project repositories
قنوات توزيع تم تشغيلها2 (store release and over-the-air update)mobile release process

ما المبنى الذي علمنا

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

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

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

وعملية الإطلاق مملة عن عمد: تجري عمليات البناء على جهاز واحد يحتوي على سلسلة الأدوات، ويتم التعامل مع التحديثات عبر الهواء بصورة منفصلة عن إصدارات المتجر، ولا يتم القيام بأي منهما من حاسوب محمول في نهاية اليوم.

بنيت بـ

  • React Native
  • TypeScript
  • Kotlin
  • Android SDK
  • push notifications
  • WebSocket

ماذا يؤهلنا هذا؟

Mobile applicationsCross-platform where it makes sense, native where it does notReal-time systemsLive data, messaging, presence and media — the unforgiving end of the webCustom web applicationsThe system your business actually runs on, built properly

أخبرنا ماذا تحاول أن تفعل

إن محادثة قصيرة تكفي عادة لمعرفة ما إذا كنا الشخص المناسب. وإذا لم نكن، فسوف نقول ذلك ونشير إليك إلى مكان أفضل.

بدء محادثةأنا أستخدم KamoCRM بالفعلكيف نقتبس