كل النصائح

لو أنت Frontend أو Full-Stack Developer، أكيد اتكرر معاك السيناريو ده: مستخدم بيرفع صورة من الموبايل تتفاجئ إن...

mostafa mohamed abdalla مرشد Senior Frontend Engineer ·

لو أنت Frontend أو Full-Stack Developer، أكيد اتكرر معاك السيناريو ده: مستخدم بيرفع صورة من الموبايل تتفاجئ إن حجمها طالع 18MB أو 25MB!

المطورين عادة بيحلوا المشكلة دي بطريقتين: 1️⃣ تحديد حجم upload بـ Validation: وترفض الصورة لو أكبر من 2MB، بس هل المستخدم العادي هيعرف يضغط الصورة بنفسه؟ 2️⃣ الضغط على السيرفر: ترسل الصورة الخام للـ Backend أو تشترك في خدمات زي Cloudinary أو AWS Lambda، وهُنا بتدفع تكلفة وسيرفر أعلى.

طب إيه الحل؟ 💡 بعد ما واجهت المشكلة دي كتير، قررت أطلق مكتبة مفتوحة المصدر جديدة: compressly

ليه تجرّب compressly؟ حجم أقل من 3KB (أخف بـ 95% من المكتبات القديمة زي browser-image-compression). ⚙️ Web Worker مدمج: المعالجة بتتم في الـ Background بدون أي Freeze لـ UI حتّى على الموبايلات الضعيفة. حل اتجاه صور الآيفون (Auto EXIF): معالجة createImageBitmap تضمن إن صورة الـ Portrait متتقلبش بالعرض. 🎯 Adaptive Target Size: بتحدد الحجم المطلوب (مثلاً 0.5MB) وهي بتعدّل الجودة والأبعاد للوصول للهدف. 🚀 دعم Batch: رفع وجدولة عدة صور بالتوازي بدون استهلاك زائد للذاكرة. ⚛️ جاهزة لـ React & Next.js: تدعم SSR ومزودة بـ Custom Hook جاهز.

مفيدة · 1 تعليق واحد

النقاش

تعليق واحد

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

انضم إلى النقاش سجّل الدخول لتطرح سؤالًا أو تردّ على بقية الطلاب.
تسجيل الدخول
  1. Mahmoud Adel فريق مونسترزجيت

    تسلم ايدك Helpful جداً