تتيح واجهة CameraX API من Google للتطبيقات استخدام أفضل ميزات الكاميرا المتوفرة

تتيح واجهة برمجة التطبيقات (API) لإضافات البائعين CameraX من Google لتطبيقات الكاميرا التابعة لجهات خارجية استخدام بعض من أفضل الميزات الموجودة في تطبيق الكاميرا الأصلي.

هناك نكتة طويلة الأمد على الإنترنت مفادها أنه يمكنك معرفة ما إذا كان شخص ما يستخدم هاتف Android من خلاله نوعية سيئة من صورهم الشخصية. في حين أن الميمات تبالغ بالتأكيد إلى حد ما، إلا أن هناك، لسوء الحظ، القليل من الحقيقة وراءها. عادة ما تتفوق هواتف Android على أجهزة iPhone من حيث أداء الكاميرا، على الأقل على الورق. تميل الشركات المصنعة للمعدات الأصلية مثل LG وSamsung إلى استخدام كاميرات ذات عدد بكسلات أكبر وفتحات أكبر من أجهزة iPhone المنافسة. المواصفات ليست كل شيء، رغم ذلك. جزء من سبب قدرة Apple على المنافسة في لعبة الكاميرا هو برنامج iOS. يستخدم جميع مصنعي المعدات الأصلية، من Apple إلى ZTE، بعضًا من سحر البرامج لجعل الصور ومقاطع الفيديو تبدو أفضل. تستخدم الشركات خوارزميات لتقليل الضوضاء، وتعديل تشبع اللون والتباين، وحتى تفتيح المشاهد المظلمة، كل ذلك لجعل النتائج النهائية أكثر إمتاعًا. هذا، تاريخيًا، هو المكان الذي فشلت فيه الشركات المصنعة الأصلية لنظام Android في الوصول إلى مستوى Apple.

تطورات البرمجيات

لكن في الآونة الأخيرة، بدأت الأمور تتغير. أكبر مثال على هذا التغيير هو على الأرجح Google ومجموعة Pixel. من حيث الأجهزة، لا يمكن مقارنة كاميرات Pixel حقًا بالكاميرات الرائدة الأخرى. ومع ذلك، فإن البرنامج هو المكان الذي تُعوض فيه Google الفارق. بفضل ميزات مثل Portrait Mode وNight Sight وHDR+ وSuper Res Zoom، اكتسبت Pixels سمعة طيبة لامتلاكها بعض الميزات أفضل كاميرات الهواتف الذكية في السوق.

تحذو شركات تصنيع المعدات الأصلية الأخرى لنظام Android حذو Google. قدمت كل من Samsung وOPPO وXiaomi وVivo وOnePlus وغيرها إصداراتها الخاصة من ميزات الكاميرا الأكثر شيوعًا في Pixel، كما أن لديهم بعض الميزات الفريدة الخاصة بهم. باستخدام كلمات طنانة مثل "AI" و"التعلم الآلي"، يحاول مصنعو الأجهزة الأصلية لنظام التشغيل Android إقناعك بأن برنامجهم هو البرنامج الذي ترغب في تحسين صورك ومقاطع الفيديو الخاصة بك. لقد وصلنا إلى نقطة يمكن فيها للهواتف التي تعمل بنظام Android التنافس بشكل حقيقي مع أجهزة iPhone في جميع جوانب أداء الكاميرا.

المشكلة

لسوء الحظ، لا يزال هناك استثناء رئيسي واحد: تطبيقات الطرف الثالث. قد تلتقط الكاميرا الرئيسية الرائعة التي تحتوي على 50 كاميرا صورًا مذهلة باستخدام تطبيق الكاميرا المدمج، ولكن قم بالتبديل إلى Instagram، Snapchat، أو حتى تطبيق كاميرا تابع لجهة خارجية، وهو في الأساس ضمان بأن ما تلتقطه لن يبدو كما هو تقريبًا جيد. وكما لو أن ذلك لم يكن كافيًا، فستفقد أيضًا جميع ميزات وأوضاع الكاميرا الرائعة. وذلك لأنه، على عكس نظام التشغيل iOS، لا يحتوي نظام Android على إطار عمل موحد للكاميرا. بالتأكيد، الميزات الأساسية موجودة. لا يزال بإمكان تطبيق جهة خارجية التقاط الصور ومقاطع الفيديو واستخدام الفلاش. ولكن ماذا يحدث إذا كان هاتفك يحتوي على مستشعر ثانوي للزاوية الواسعة أو المقربة؟ من الممكن أن يتمكن المطورون من الوصول إلى هذا المستشعر الثاني، ولكن الطريقة التي يستخدمونها يجب أن تكون خاصة بجهازك.

لنفترض أن لديك هاتف LG V40 (أعلم، أعلم، فقط تخيل أنك تمتلكه). يحتوي هاتف V40 على ثلاثة أجهزة استشعار: قياسية، ومقربة، وفائقة الاتساع. لا يواجه تطبيق الكاميرا المدمج أي مشكلة في التبديل بين جميع هذه المستشعرات المختلفة. لكن انسَ استخدام المستشعر فائق الاتساع على Instagram. الآن، يمكن لـ Instagram إلقاء نظرة على كيفية استخدام تطبيق كاميرا LG لأجهزة الاستشعار المختلفة وتطوير طريقة للمستخدمين لالتقاط لقطات بزاوية واسعة أو تكبير. ولكن من المحتمل أن يعمل هذا فقط على LG V40. على الرغم من أن هاتف Galaxy S10 يحتوي على نفس أوضاع المستشعر الثلاثة (قياسي، ومقرب، وفائق الاتساع)، فسيتعين على فريق Instagram تطوير طريقة أخرى لشركة Samsung.

أضف الآن Huawei وVivo وOnePlus وXiaomi وOPPO وNokia وZTE وHTC وأي علامة تجارية أخرى قد تفكر فيها إلى هذا المزيج. كما يمكنك أن تتخيل، فإن محاولة تطوير طريقة للوصول فقط إلى المستشعرات الإضافية المحتملة لكل هاتف من كل علامة تجارية سيكون أمرًا مملاً بشكل لا يصدق. ومن ثم عليك الحفاظ على التوافق مع جميع الهواتف الحالية والجديدة.

تنطبق هذه القيود على ميزات الكاميرا أيضًا. تحتاج أشياء مثل Portrait Mode وNight Sight وHDR+ إما إلى أساليب محددة لكل جهاز لاستخدامها، أو لا يمكن الوصول إليها تمامًا بواسطة تطبيقات الطرف الثالث.

من الواضح، بالنسبة لتطبيق مثل Instagram، أن هذه ليست مشكلة كبيرة. لا يتعلق الأمر بتركيزهم، ويمكنك دائمًا استخدام تطبيق الكاميرا الخاص بهاتفك لالتقاط الصورة أولاً. ولكن ماذا عن تطبيقات الكاميرا المخصصة؟

الآثار

افتح متجر Google Play وابحث عن "الكاميرا". ستجد مئات النتائج. حتى مع التحسينات التي تم إدخالها على برامج كاميرا الطرف الأول، لا تزال تطبيقات كاميرا الطرف الثالث تحظى بشعبية كبيرة. يهدف البعض إلى توفير المزيد من الميزات التقنية مثل التعرض اليدوي والتركيز (ميزات قد لا يتوفر بها تطبيق كاميرا هاتفك). ويهدف البعض الآخر إلى توفير تجربة مستخدم متسقة عبر أجهزتك.

خاصة بالنسبة للسبب الأخير، فإن تجزئة كاميرا Android يمكن أن تجعل من الصعب للغاية تطوير وصيانة تطبيق كاميرا متوافق على نطاق واسع. إذا كنت تتطلع إلى توفير ميزات إضافية، فكيف ستقوم بتضمين جميع الميزات المحتملة لجميع تطبيقات الطرف الأول المحتملة؟ إذا كنت تبحث عن تجربة متسقة، فكيف يمكنك أن تضمن بشكل واقعي أن الوصول إلى المستشعر واسع الزاوية على كل جهاز به هذا المستشعر سيعمل؟

الجواب هو: لا يمكنك ذلك. يمكنك محاولة دعم أكبر عدد ممكن من الميزات على أكبر عدد ممكن من الأجهزة، ولكن في النهاية، سيكون الأمر يتطلب الكثير من العمل مقابل مكافأة قليلة نسبيًا. ليس من الصعب أن نتخيل أن عددًا قليلاً من المطورين على الأقل قد تخلوا ببساطة عن إنشاء تطبيق كاميرا كامل الميزات لنظام Android. في الواقع، العديد منهم لديهم.

الضحايا

اذهب وابحث عن تطبيقات الكاميرا على متجر Play. ستلاحظ بعض الأشياء. واحد، هناك كثير من الخيارات. ثانيًا، يقوم معظمهم بأشياء متشابهة جدًا (تطبيق المرشحات بعد وقوع الحدث وما شابه). ثالثًا، ربما لا يتم تحديث الخيارات الأكثر تقدمًا بشكل متكرر. قد تجد أيضًا نتائج على Google لم تعد موجودة في المتجر.

لقد حصلنا مؤخرًا على مثال رئيسي جدًا لشخص يدعوه إلى التوقف عن العمل. قررت شركة Moment إيقاف تطوير تطبيق Pro Camera لنظام Android.

يهدف تطبيق Moment's Pro Camera إلى جلب ميزات الصور والفيديو المتقدمة إلى Android. هذه ليست سوى عدد قليل من هذه الميزات:

  • الرسوم البيانية RGB
  • تقسيم التركيز
  • التحكم اليدوي في التعرض، ISO، سرعة الغالق، توازن اللون الأبيض
  • التركيز يصل إلى ذروته
  • التقاط الخام
  • معدل الإطارات الديناميكي وتغييرات الدقة
لقطات من كاميرا Moment Pro. عبر: 9to5Google

المشكلة هي أن الكثير من هذه الميزات ببساطة لا تعمل على الكثير من الأجهزة. إن النظر إلى قائمة توافق ميزات Moment يشبه النظر إلى صورة حلبة الرقص. حتى ضمن نفس خط الإنتاج، يكون دعم الميزات مجزأ بشكل لا يصدق. بعد عامين من التطوير، لم تعد Moment قادرة على مواصلة التطوير على تطبيقها.

الأخضر = مدعوم بكاميرا Moment Pro. الأصفر = مدعوم بواسطة الجهاز ولكن ليس كاميرا Moment Pro الخاصة بي. الأحمر = غير مدعوم من قبل الجهاز. مصدر الصورة: لحظة. تم الاسترجاع عبر: 9to5Google.

الحل؟

لقد مر ما يقرب من 12 عامًا منذ إصدار Android لأول مرة، ولكن قد يكون لدينا أخيرًا حل لتجزئة الكاميرا.

يأتي هذا الحل مباشرة من Google، على الرغم من أنه غير مدمج مباشرة في Android. بدلا من ذلك، انها مكتبة دعم Jetpack. إذا كنت معتادًا على تطوير تطبيقات Android، فمن المحتمل أنك واجهت مجموعات مكتبة دعم AppCompat وAndroidX. تهدف هذه المكتبات من Google إلى تسهيل قيام المطورين بالحفاظ على التوافق العكسي مع إصدارات Android الأقدم، مع الاستمرار في القدرة على تقديم ميزات وأنماط جديدة.

الإضافة الأحدث إلى Jetpack (نوعًا ما)، هي مكتبة CameraX. كما هو الحال مع مكتبات Jetpack الأخرى، فإن هدف CameraX هو جعل تطوير الكاميرا أسهل. في أبسط أشكاله، يغلف CameraX نظام Android الكاميرا2، وهي واجهة برمجة التطبيقات (API) التي تسمح للتطبيقات باستكشاف ميزات الكاميرا على الجهاز، بشرط أن تقوم الشركة المصنعة للمعدات الأصلية (OEM) بكشف ميزات الكاميرا هذه لواجهة برمجة التطبيقات (API). يمكن للمستخدمين التحقق من ميزات الكاميرا التي يتم عرضها على Camera2 API باستخدام تطبيق Camera2 API Probe ثم مقارنتها بالميزات المتوفرة في تطبيق الكاميرا المخزن.

مسبار API Camera2المطور: مارس ميديا ​​لاب

مجاني.

4.2.

تحميل

تكمن فائدة استخدام CameraX كمجمّع لواجهة برمجة تطبيقات Camera2 في أنه يعمل، داخليًا، على حل أي مشكلات توافق خاصة بالجهاز قد تنشأ. سيكون هذا وحده مفيدًا لمطوري تطبيقات الكاميرا لأنه يمكن أن يقلل من التعليمات البرمجية المعيارية والوقت المستغرق في البحث عن مشكلات الكاميرا. هذا ليس كل ما يمكن أن يفعله CameraX.

في حين أن هذا الجزء الأول مثير للاهتمام في الغالب للمطورين فقط، إلا أن هناك جزءًا آخر ينطبق على كل من المطورين والمستخدمين النهائيين: ملحقات البائع. هذا هو رد Google على تجزئة ميزات الكاميرا على نظام Android. يمكن لمصنعي الأجهزة اختيار شحن مكتبات الملحقات مع هواتفهم التي تسمح لـ CameraX (والمطورين والمستخدمين) بالاستفادة من ميزات الكاميرا الأصلية. على سبيل المثال، لنفترض أنك تحب تأثير الوضع الرأسي من سامسونج، ولكنك لا تحب تطبيق الكاميرا نفسه. إذا قررت سامسونج تنفيذ ملحق CameraX Portrait Mode في هواتفها، فإن أي تطبيق تابع لجهة خارجية يستخدم CameraX سيكون قادرًا على استخدام Portrait Mode من Samsung. ومن الواضح أن هذا لا يقتصر فقط على تلك الميزة واحدة. يمكن للمصنعين نظريًا فتح أي من ميزات الكاميرا الخاصة بهم للتطبيقات باستخدام CameraX.

لسوء الحظ، هناك تحذير ذكرته سابقًا: هذا ليس شرطًا للمصنعين. يقول جوجل ستدعم الإضافات على جميع أجهزة Pixel الجديدة والقادمة، بدءًا من Pixel 4. يقول ممن لهم لقد فتحوا أوضاع Beauty و HDR الخاصة بهم. يمكن لمصنعي المعدات الأصلية الآخرين اختيار إتاحة الأوضاع الليلية الخاصة بهم فقط لـ CameraX، أو يمكنهم اختيار عدم تنفيذ أي ملحقات على الإطلاق. الأمر متروك تمامًا للشركة المصنعة لتحديد الجهاز الذي يدعم ملحقات CameraX (إن وجدت). جوجل تستخدم للحفاظ على قائمة الأجهزة التي تدعم ملحقات البائع وميزات الكاميرا التي فتحتها، لكنهم لم يقوموا بتحديث القائمة خلال الأشهر القليلة الماضية. لقد تواصلنا مع Google منذ بضعة أسابيع لسؤالهم عما إذا كان بإمكانهم تقديم قائمة محدثة، لكن الشركة لم ترد بعد بقائمة. لما يستحق، أ مشاركة مدونة Google الأخيرة تنص على أن الأجهزة من Samsung وLG وOPPO وXiaomi وMotorola (على Android 10) توفر بعض الامتدادات الوظائف، ولكن منشور المدونة لا يحدد بالضبط الأجهزة المدعومة أو الوظائف التي تقوم بها يمد.

إذا قرر عدد كافٍ من الشركات المصنعة تنفيذ الإضافات، فسيكون مشهد كاميرا الطرف الثالث لنظام Android أكثر سطوعًا. لن يضطر المطورون إلى إضاعة الوقت في إعادة تنفيذ ميزة الكاميرا لكل جهاز يمكنهم القيام به نظرًا لأن إطار عمل CameraX سيعتني بها. سيكون هناك تجزئة أقل للميزات نظرًا لأنه سيتم الوصول إلى الميزات المماثلة عبر الأجهزة من خلال واجهة مشتركة. وهناك العديد من الاحتمالات.


وبطبيعة الحال، كل هذا يعتمد على قدرة Google على إقناع الشركات المصنعة بتنفيذ مكتبات CameraX Vendor Extension من الآن فصاعدا. وما لم يتم تطبيق CameraX على نطاق واسع، فإنه سيضيف فقط إلى التجزئة الحالية. شخصيا، على الرغم من ذلك، أنا متفائل. يمكن أن تكون Google مقنعة للغاية عندما تريد ذلك، ويبدو أن هناك الكثير من العمل يجري في CameraX. من المثير رؤية حل محتمل لمشكلات كاميرا Android في الأفق، وأتطلع إلى رؤية كيف سيتحسن CameraX ويتوسع بمرور الوقت.

ما رأيك في كاميرا اكس؟ هل تنجح جوجل في تقديم تجربة كاميرا موحدة لنظام أندرويد؟