Squeeze هو تطبيق مكتبي عالي الأداء ومتعدد المنصات (يعمل على Windows, macOS, Linux) تم تطويره باستخدام إطار العمل Flutter. يهدف التطبيق إلى توفير حل سريع وفعال للمستخدمين لضغط وتغيير حجم الصور دفعة واحدة، مع التركيز على سهولة الاستخدام والحفاظ على خصوصية المستخدمين، حيث تتم جميع عمليات المعالجة محليًا دون الحاجة لرفع أي ملفات على الإنترنت.
التقنيات المستخدمة:
إطار العمل: Flutter 3 / Dart
تصميم الواجهة (UI): مكتبة fluent_ui لتقديم تجربة استخدام شبيهة بالتطبيقات الأصلية لنظام Windows.
معالجة الصور: مكتبة image لمعالجة الصور الأساسية (تغيير الحجم، القص، التدوير).
البرمجة غير المتزامنة (Asynchronous Programming): استخدام Isolates و compute لتنفيذ عمليات معالجة الصور الثقيلة في الخلفية، مما يضمن بقاء واجهة المستخدم سلسة وسريعة الاستجابة.
إدارة الحالة (State Management): نمط ChangeNotifier و Provider لإدارة حالة التطبيق بشكل مركزي ومنظم.
التكامل مع النظام: استخدام حزمة desktop_drop لدعم خاصية السحب والإفلات للملفات والمجلدات، و file_selector لفتح نوافذ اختيار الملفات الأصلية.
التكامل مع أدوات خارجية: القدرة على اكتشاف واستدعاء أدوات سطر الأوامر (CLI) مثل jpegoptim, pngquant, و oxipng لتحسين ضغط الصور بشكل متقدم.
الميزات الرئيسية:
معالجة دفعة واحدة (Batch Processing): يمكن للمستخدمين سحب وإفلات مجلدات كاملة، ويقوم التطبيق تلقائيًا بالبحث عن الصور المدعومة (JPG, PNG) داخلها.
خيارات متقدمة لتغيير الحجم:
تقييد الأبعاد بناءً على الحافة الأطول.
الملاءمة داخل أبعاد محددة (Fit).
ملء أبعاد محددة مع قص الأجزاء الزائدة (Fill).
إضافة هوامش حول الصورة للوصول إلى أبعاد محددة (Pad).
تحكم كامل في جودة الإخراج:
تحديد جودة ملفات JPEG الناتجة.
التحويل الذكي من PNG إلى JPEG (فقط في حالة عدم وجود شفافية).
خيار إزالة البيانات الوصفية (Metadata) من الصور لتقليل حجمها.
وضع احترافي (Pro Mode): الاستفادة من أدوات ضغط الصور الخارجية الشهيرة لتحقيق أفضل نسبة ضغط ممكنة دون التأثير على الجودة بشكل ملحوظ.
واجهة مستخدم بسيطة وأنيقة: تصميم نظيف وواضح يسهل على المستخدمين فهم جميع الخيارات وتنفيذ المهام بسرعة.
الأداء العالي: إدارة ذكية للمهام المتزامنة باستخدام نمط Semaphore للحد من عدد الصور التي تتم معالجتها في نفس الوقت، مما يمنع استهلاك موارد النظام بشكل مفرط ويضمن استقرار التطبيق.
ماذا يبرز هذا المشروع من مهاراتي؟
القدرة على بناء تطبيقات سطح مكتب كاملة باستخدام Flutter من فكرة إلى منتج نهائي.
فهم عميق لمفاهيم البرمجة المتزامنة وكيفية بناء تطبيقات سريعة الاستجابة لا تتجمد أثناء تنفيذ المهام الطويلة.
خبرة في إدارة الحالة للتطبيقات المعقدة نسبيًا.
المهارة في تصميم واجهات مستخدم جذابة وعملية مع الاهتمام بتجربة المستخدم.
القدرة على التكامل مع أدوات خارجية وواجهات نظام التشغيل لتقديم ميزات متقدمة.
هذا المشروع هو مثال عملي على قدرتي على تقديم حلول برمجية قوية وموثوقة تلبي احتياجات المستخدمين الحقيقية.