parts_repository.dart
1// cache first, network second, never an empty screen 2Future<List<Part>> partsFor(Vin vin) async { 3 final cached = _box.get(vin.model); // Hive 4 if (cached != null && !cached.isStale) { 5 return cached.parts; 6 } 7 try { 8 final fresh = await _api.parts(vin); // Dio 9 await _box.put(vin.model, CachedParts(fresh));10 return fresh;11 } on DioException {12 return cached?.parts ?? const []; // offline13 }14}
25,000+ قطعة · دون إنترنت توضيح مبسّط — كود العميل خاصCatalog UIPartsBlocRepositoryHive cacheDio APIVIN check
رسم توضيحي$ dynamu catalog --sync✓ 25,000+ parts cached✓ VIN compatibility check✓ offline browsing on
رسم توضيحيالمشكلة
يحتاج المشتري القطعة المطابقة لسيارته تماماً، وغالباً وهو داخل ورشة باتصال ضعيف. الكتالوج ضخم، لذا يجب أن يطابق رقم الهيكل (VIN) ويظل يعمل دون إنترنت.
ما بنيته وكنت مسؤولاً عنه
- تصفح دون إنترنت لأكثر من 25,000 قطعة مخزنة على الجهاز.
- توافق حسب رقم الهيكل (VIN) ليحصل المشتري على القطعة الصحيحة من أول مرة.
- Clean Architecture مع BLoC وطبقة شبكة بـ Dio.
- منشور على Google Play و App Store — أكثر من 10,000 تحميل من Google Play.
منتج لعميل. صفحات المتجر مرفقة؛ بيانات الكتالوج والخادم غير معروضة.
الحالة التاليةتوصيل البقالة والطعام لأكثر من مليون عميل، وأكثر من 200 ألف دولار شهرياً عبر الدفع