مكتبتي
منصة مكتبة رقمية متكاملة مصممة للباحثين والمؤسسات، تقدم إمكانيات سلسة لاستعراض وإدارة المستندات بصيغة PDF.
نظرة عامة
تمت هندسة وبناء تطبيق "مكتبتي" داخلياً في شركة تقنيات كيه (Kay Technology) ليكون منصة بحثية شاملة تلبي احتياجات الدخول والوصول المباشر للأرشيفات الرقمية المؤمنة. يتجاوز التطبيق كونه مجرد واجهة عرض، حيث يعمل كمدير مستندات قوي قادر على العمل بلا إنترنت (Offline-capable)، مع إعطاء الأولوية القصوى لتقليل العبء على الذاكرة أثناء عمليات المعالجة والعرض المكثفة لملفات PDF الثقيلة.
التحدي
تفشل أغلب تطبيقات عرض الأرشيف الرقمي عند محاولة فتح ملفات PDF مؤسسية عالية الدقة وتتجاوز 1000 صفحة، حيث يواجه نموذج إدارة الذاكرة في نظام أندرويد صعوبات أصيلة في التخزين المؤقت للبيانات النقطية (Bitmap Streams) الضخمة، مما يؤدي عادةً لإطلاق استثناءات نفاد الذاكرة (OOM - Out Of Memory).
في نفس الوقت، كان مطلوباً إرساء معمارية برمجية تسمح لفرق التطوير الداخلية بالعمل بالتوازي على قطاعات معزولة في التطبيق (نظام المصادقة، محرك قراءة الـ PDF، ومدير التنزيلات) دون التسبب في تضارب في دمج الشفرات البرمجية (Code-merge Collisions).
القرارات المعمارية والتقنية
تطلب الحل التقني الالتزام الصارم بالمعمارية النظيفة متعددة الوحدات (Multi-module Clean Architecture)، مع فرض حواجز مادية حازمة بين مكونات النظام المختلفة.
التقسيم المعماري الموازي المتقدم (Enterprise Modularity)
- العزل الدقيق للميزات: تعمل الميزات البرمجية (المصادقة، المكتبة، العارض، الإعدادات) كنقاط نهاية مستقلة (Standalone Endpoints). الاعتماد الانحداري على الطبقات الأساسية
core-domainوcore-dataيمنع الاعتماديات الدائرية المتشابكة، ويقلص أوقات التحويل البرمجي التراكمي (Incremental Build) بشكل هائل. - إدارة قوية وصارمة للذاكرة: من خلال دمج وظائف محرك Barteksc PDF Viewer المتميز مع آليات مخصصة للتخزين المؤقت في الخلفية يديرها WorkManager، يتم تحميل الرسوميات الكثيفة لصفحات الـ PDF بشكل بطيء ومتوازن (Lazy Loading)، مما يعزل خيوط معالجة التمرير (UI Scrolling) عبر Jetpack Compose عن المنطق المعقد لتهيئة وتخطيط البيانات الأساسية.
- موثوقية فائقة لعمليات التنزيل: يعتمد إطار عمل DownloadX جنباً إلى جنب مع قواعد بيانات Room لضمان استمرارية أطوار التنزيل والمزامنة العملاقة (أكثر من 10 جيجابايت) بلا انقطاع أو أعطال، والمحافظة عليها في وحدات تخزين مشفرة تماماً ومحمية ضمن البنية التنظيمية للتطبيق.
أثر التطوير التقني
أدى الفصل الواضح للوحدات إلى الحصول على تدقيقات LeakCanary سليمة وخالية من الأخطاء، مما أتاح لفرق الجودة والاختبار (QA) تجربة ومراجعة مسارات المنطق العملي للبرنامج بشكل بمعزل عن قيود الواجهة. هذا الاستقرار مهد الطريق بسلاسة لنشر ميزات تقديم الحزم الديناميكية (Dynamic Feature Delivery) على منصة متجر Google Play.
الأثر والنتائج
- القضاء التام على أخطاء استنزاف ونفاد الذاكرة (OOM) بشكل كلي، وتحقيق استمرارية انسيابية فائقة (60 إطاراً في الثانية) لعرض ملفات PDF المؤسسية التي تتخطى الـ 1000 صفحة بوضوح وسلاسة.
- تسريع وتيرة التطوير الجماعي المشترك، بإرساء حدود صارمة متعددة الوحدات فصلت فرق التطوير الخاصة بالمصادقة، وعارض الـ PDF، والتنزيلات عن بعضها تماماً، مما منحهم السرعة والاعتمادية دون تعارض في شفرات البرمجة.
- إتمام تنزيلات ضخمة وسلسة تدعم مزامنة مكتبات يصل حجمها إلى أكثر من 10 جيجابايت بأمان في الخلفية عبر أجزاء تخزينية مشفرة كلياً.