أونلاينمن 2026
Linux · Windows · macOS · Android
المنتج والمعمارية، كمبيوتر وأندرويد
JoTV
مشغّل IPTV للكمبيوتر والأندرويد بيفضل سريع مع قوايم فيها عشرات الآلاف من القنوات، وبيحمي حساب المستخدم من الحظر عند مزوّد الخدمة.
من الفتح للرئيسية مع ٦٨ ألف عنصر (كان 1.7 ث)
فريمات متقطّعة في ١٢ ألف قناة (كانت 27%)
اختبار آلي، Rust و Kotlin
منصات من كودين

01/المشكلة
قوايم الـ IPTV ضخمة ومتلخبطة: عشرات الآلاف من القنوات والأفلام والمسلسلات، وأسامي بكذا طريقة كتابة عربي، وسيرفرات بترد ببطء أو مبتردش خالص.
أغلب المشغّلات بتهنّج وهي بتحمّل، والأسوأ إنها بتفضل تعيد الطلب على سيرفر حظر الحساب مؤقتًا، فالوقفة القصيرة تتحوّل لحظر طويل.
02/القيود
- 01منتج واحد على لينكس وويندوز وماك وموبايلات وتابلت أندرويد.
- 02يبقى جاهز في أقل من ثانية حتى مع قايمة بحجم مزوّد حقيقي.
- 03عمره ما يعرّض حساب الـ IPTV بتاع المستخدم للخطر.
- 04عربي وإنجليزي، من اليمين للشمال، غامق وفاتح.
03/المعمارية
التطبيقات
- Desktop · Svelte 5
- Android · Jetpack Compose
التشغيل
- MPV
- Media3 / ExoPlayer
- picture-in-picture
القلب
- Xtream + M3U parsers
- provider guard
- program guide
- search
التخزين
- SQLite (Rust)
- Room (Kotlin)
- image cache
04/القرارات
قاطع دائرة للمزوّد بدل إعادة المحاولة العمياء
السيرفرات بترد على الحظر بأكواد غريبة (461 و469 و429) وبتطوّل الحظر لو اتضربت تاني. بعد رد زي ده التطبيق بيوقّف الطلبات للسيرفر ده ١٠ ثم ٢٠ ثم ٤٠ ثم ٨٠ ثم ١٦٠ ثم ٢٤٠ دقيقة. أول رد سليم بيصفّر العداد، وزرار «حاول تاني» بيشيل الوقفة من غير ما يصفّر التصعيد.
التمن: ساعات المستخدم بيستنى والسيرفر رجع خلاص. بس خسارة الحساب أوحش.
الفتح السريع بإنك تعمل أقل وقت الفتح
الـ HTTP clients بتتعمل وقت الحاجة، والداتابيز بتتفتح والشاشة بتقوم، والواجهة بتظهر من الكتالوج المحلي وتتحسّن لما الصور توصل، واستعلامات الرئيسية بقى ليها indexes. الفتح نزل من 1.7 ث لـ 0.75 ث مع ٦٨ ألف عنصر.
التمن: القياس على محاكي بكتالوج تجريبي بحجم مزوّد حقيقي، فالأرقام للمقارنة مش benchmark لموبايل.
بحث فاهم الكتابة العربي
أسامي القنوات فيها أ/ا/إ وة/ه وى/ي متلخبطين. البحث بيوحّد الطرفين، فتكتب الاسم زي ما بتنطقه وتلاقي القناة زي ما المزوّد كاتبها.
05/الشاشات

06/الأدوات
RustTauri v2Svelte 5MPVSQLiteKotlinJetpack ComposeMedia3RoomHiltCoil