ממשק ה-API של הרחבות הספקים של CameraX של גוגל מאפשר לאפליקציות מצלמה של צד שלישי להשתמש בכמה מהתכונות הטובות ביותר של אפליקציית המצלמה המניות.
יש בדיחה ארוכת שנים באינטרנט שאתה יכול לדעת אם מישהו משתמש בטלפון אנדרואיד לפי איכות גרועה של הסלפי שלהם. אמנם הממים בהחלט מגזימים לא מעט, אך יש, למרבה הצער, מעט אמת מאחוריהם. טלפונים אנדרואיד בדרך כלל הקדימו את האייפונים מבחינת ביצועי המצלמה, לפחות על הנייר. יצרניות OEM כמו LG וסמסונג נוטות להשתמש במצלמות עם יותר פיקסלים ופתחים גדולים יותר מאשר מכשירי אייפון מתחרים. מפרט זה לא הכל. חלק מהסיבה שאפל יכולה להתחרות במשחק המצלמה היא בגלל התוכנה של iOS. כל יצרני ה-OEM, מאפל ועד ZTE, משתמשים בקסם תוכנה כדי לגרום לתמונות וסרטונים להיראות טוב יותר. החברות משתמשות באלגוריתמים כדי להפחית רעש, לכוונן את רווית הצבע והניגודיות, ואפילו להאיר סצנות כהות, הכל כדי להפוך את התוצאות הסופיות לנעימות יותר. זה, היסטורית, המקום שבו יצרני ה-OEM של אנדרואיד לא נפלו מאפל.
פיתוחי תוכנה
עם זאת, לאחרונה, דברים החלו להשתנות. הדוגמה הגדולה ביותר לשינוי זה היא כנראה גוגל וסדרת הפיקסל. מבחינת חומרה, מצלמות הפיקסל ממש לא יכולות להשוות לספינות דגל אחרות. עם זאת, התוכנה היא המקום שבו גוגל משלמת את ההבדל. עם תכונות כמו מצב פורטרט, ראיית לילה, HDR+ ו-Super Res Zoom, הפיקסלים זכו למוניטין של כמה מה
יצרני OEM אחרים של אנדרואיד הולכים בעקבות גוגל. סמסונג, OPPO, Xiaomi, Vivo, OnePlus וכו', כולן הציגו גרסאות משלהן לתכונות המצלמה הפופולריות יותר של ה-Pixel, ואפילו יש להן כמה תכונות ייחודיות משלהן. עם מילות באז כמו "AI" ו"למידת מכונה", יצרני OEM של אנדרואיד מנסים לשכנע אותך שהתוכנה שלהם היא התוכנה שאתה רוצה לשפר את התמונות והסרטונים שלך. הגענו לנקודה שבה טלפונים אנדרואיד יכולים להתחרות באמת מול מכשירי אייפון בכל ההיבטים של ביצועי המצלמה.
הבעיה
למרבה הצער, עדיין יש חריג אחד גדול: אפליקציות של צד שלישי. ספינת הדגל שלך עם 50 מצלמות סופר דופר עשויה לצלם תמונות מדהימות עם אפליקציית המצלמה המובנית, אבל תעבור לאינסטגרם, Snapchat, או אפילו אפליקציית מצלמה של צד שלישי, וזה בעצם ערובה שמה שאתה מצלם לא ייראה כמעט כמו טוֹב. כאילו זה לא מספיק, אתה גם מפסיד מכל תכונות ומצבי המצלמה המגניבים. הסיבה לכך היא שבניגוד ל-iOS, לאנדרואיד אין ממש מסגרת מצלמה מאוחדת. בטח, התכונות הבסיסיות קיימות. אפליקציה של צד שלישי עדיין יכולה לצלם תמונות וסרטונים ולהשתמש בפלאש. אבל מה קורה אם לטלפון שלך יש חיישן משני לזווית רחבה או לטלפוטו? ייתכן שמפתחים יוכלו לגשת לחיישן השני הזה, אבל השיטה שבה הם משתמשים תצטרך להיות ספציפית למכשיר שלך.
נניח שיש לך LG V40 (אני יודע, אני יודע, רק דמיין שיש לך). ל-V40 שלושה חיישנים: רגיל, טלפוטו ואולטרה-רחב. לאפליקציית המצלמה המובנית אין בעיה לעבור בין כל החיישנים השונים הללו. אבל תשכחו מהשימוש בחיישן האולטרה-רחב באינסטגרם. כעת, אינסטגרם תוכל להסתכל על האופן שבו אפליקציית המצלמה של LG משתמשת בחיישנים השונים ולפתח דרך למשתמשים לצלם תמונות בזווית רחבה או זום. אבל זה כנראה יעבוד רק ב-LG V40. למרות שלגלקסי S10 יש את אותם שלושה מצבי חיישן (סטנדרטי, טלפוטו ואולטרה רחב), צוות אינסטגרם יצטרך לפתח שיטה נוספת עבור סמסונג.
כעת הוסף את Huawei, Vivo, OnePlus, Xiaomi, OPPO, Nokia, ZTE, HTC וכל מותג אחר שאתה יכול לחשוב עליו לתערובת. כפי שאתה יכול לדמיין, הניסיון לפתח שיטה לגישה רק לחיישנים הנוספים הפוטנציאליים עבור כל טלפון מכל מותג יהיה מייגע להפליא. ואז אתה צריך לשמור על תאימות עם כל הטלפונים הנוכחיים והחדשים.
מגבלות אלו חלות גם על תכונות המצלמה. דברים כמו מצב דיוקן, ראיית לילה ו-HDR+ זקוקים לשיטות ספציפיות לכל מכשיר לשימוש, או שאינם נגישים לחלוטין לאפליקציות של צד שלישי.
ברור שעבור אפליקציה כמו אינסטגרם זו לא עניין גדול מדי. זה לא הפוקוס שלהם, ותמיד תוכל להשתמש באפליקציית המצלמה של הטלפון שלך כדי לצלם קודם. אבל מה לגבי אפליקציות מצלמה ייעודיות?
האפקטים
פתח את חנות Google Play וחפש "מצלמה". אתה הולך למצוא מאות תוצאות. אפילו עם השיפורים בתוכנת מצלמה של צד ראשון, אפליקציות מצלמה של צד שלישי עדיין פופולריות מאוד. חלקם שואפים לספק תכונות טכניות יותר כמו חשיפה ידנית ומיקוד (תכונות שאולי אין לאפליקציית המצלמה של הטלפון שלך). אחרים שואפים לספק UX עקבי בכל המכשירים שלך.
במיוחד מהסיבה האחרונה, פיצול המצלמה של אנדרואיד יכול להקשות מאוד על פיתוח ותחזוקה של אפליקציית מצלמה תואמת רחבה. אם אתה מחפש לספק תכונות נוספות, איך אתה מתכוון לכלול את כל התכונות הפוטנציאליות של כל האפליקציות הפוטנציאליות של הצד הראשון? אם אתה מחפש חוויה עקבית, איך אתה יכול להבטיח באופן מציאותי שהגישה לחיישן הזווית הרחבה בכל מכשיר שיש לו תעבוד?
התשובה היא: אתה לא יכול. אתה יכול לנסות לתמוך בכמה שיותר פיצ'רים בכמה שיותר מכשירים, אבל בסופו של דבר, זה הולך להיות הרבה עבודה עבור תגמול קטן יחסית. לא קשה לדמיין שלפחות כמה מפתחים פשוט ויתרו על יצירת אפליקציית מצלמה מלאה עבור אנדרואיד. למעשה, לכמה יש.
הנפגעים
חפש אפליקציות מצלמה בחנות Play. אתה תשים לב לכמה דברים. האחת, יש א מִגרָשׁ של אפשרויות. שניים, רובם עושים דברים די דומים (להחיל פילטרים לאחר מעשה וכאלה). שלוש, האפשרויות המתקדמות יותר כנראה לא מתעדכנות בתדירות גבוהה כל כך. אולי אפילו תמצא תוצאות בגוגל שכבר לא נמצאות בחנות.
לאחרונה, קיבלנו דוגמה די חשובה של מישהו שקורא לזה להפסיק. מומנט החליטה להפסיק את הפיתוח באפליקציית Pro Camera שלה לאנדרואיד.
אפליקציית Pro Camera של Moment נועדה להביא תכונות צילום ווידאו מתקדמות לאנדרואיד. אלה רק כמה מהתכונות האלה:
- היסטוגרמות RGB
- פיצול פוקוס
- שליטה ידנית בחשיפה, ISO, מהירות תריס, איזון לבן
- שיא הפוקוס
- לכידת RAW
- שינויים דינמיים בקצב פריימים וברזולוציה
הבעיה היא שהרבה מהתכונות האלה פשוט לא עובדות על הרבה מכשירים. להסתכל על רשימת תאימות התכונות של Moment זה כמו להסתכל על תמונה של רחבת ריקודים. אפילו בתוך אותו קו מוצרים, התמיכה בתכונות מקוטעת להפליא. לאחר שנתיים של פיתוח, ל-Moment כבר אין את היכולת להמשיך בפיתוח באפליקציה שלה.
ירוק = נתמך על ידי Moment Pro Camera. צהוב = נתמך במכשיר אבל לא מצלמת ה-Moment Pro שלי. אדום = לא נתמך על ידי המכשיר. מקור תמונה: רגע. אוחזר דרך: 9to5Google.
הפתרון?
עברו כמעט 12 שנים מאז שהושק אנדרואיד לראשונה, אבל אולי סוף סוף יש לנו פתרון לפיצול המצלמה.
הפתרון הזה מגיע היישר מגוגל, למרות שהוא לא מובנה ישירות באנדרואיד. במקום זאת, זה א ספריית תמיכה Jetpack. אם אתה מכיר את פיתוח אפליקציות אנדרואיד, כנראה שנתקלת בחבילות ספריית התמיכה של AppCompat ו-AndroidX. ספריות אלו מגוגל שואפות להקל על מפתחים לשמור על תאימות לאחור עם גרסאות אנדרואיד ישנות יותר, תוך יכולת להציג תכונות וסגנונות חדשים.
תוספת חדשה יותר ל-Jetpack (בערך), היא ספריית CameraX. בדומה לספריות אחרות של Jetpack, המטרה של CameraX היא להקל על פיתוח המצלמה. בצורתו הבסיסית ביותר, CameraX עוטפת את אלה של אנדרואיד מצלמה2, API המאפשר לאפליקציות לחקור את תכונות המצלמה במכשיר, בתנאי שה-OEM יחשוף את תכונות המצלמה הללו ל-API. משתמשים יכולים לבדוק אילו תכונות מצלמה חשופות לממשק ה-API של Camera2 באמצעות אפליקציית Camera2 API Probe ולאחר מכן להשוות זאת לתכונות הזמינות באפליקציית המצלמה המלאה.
מחיר: חינם.
4.2.
היתרון בשימוש ב-CameraX כמעטפת עבור ה-API של Camera2 הוא בכך שבאופן פנימי הוא פותר כל בעיות תאימות ספציפיות למכשיר שעלולות להתעורר. זה לבדו יהיה שימושי עבור מפתחי אפליקציית מצלמה מכיוון שהוא יכול להפחית את קוד ה-boilerplate ואת הזמן המושקע במחקר בעיות מצלמה. עם זאת, זה לא כל מה ש-CameraX יכולה לעשות.
בעוד שהחלק הראשון הזה מעניין בעיקר רק מפתחים, ישנו חלק נוסף שתקף גם למפתחים וגם למשתמשי קצה: הרחבות ספקים. זוהי התשובה של גוגל לפיצול תכונות המצלמה באנדרואיד. יצרני מכשירים יכולים לבחור לשלוח ספריות הרחבות עם הטלפונים שלהם המאפשרות ל-CameraX (ולמפתחים ומשתמשים) למנף את תכונות המצלמה המקוריות. לדוגמה, נניח שאתה מאוד אוהב את אפקט ה-Portrait Mode של סמסונג, אבל אתה לא אוהב את אפליקציית המצלמה עצמה. אם סמסונג תחליט ליישם הרחבה של CameraX Portrait Mode בטלפונים שלה, כל אפליקציה של צד שלישי המשתמשת ב-CameraX תוכל להשתמש במצב Portrait של סמסונג. ברור שזה לא מוגבל רק לתכונה אחת. יצרנים יכולים באופן תיאורטי לפתוח כל אחת מתכונות המצלמה שלהם לאפליקציות באמצעות CameraX.
למרבה הצער, יש אזהרה, שהזכרתי קודם: זו לא דרישה ליצרנים. גוגל אומר הם יתמכו בהרחבות בכל מכשירי ה-Pixel החדשים והבאים, החל מה-Pixel 4. אומר OPPO הם פתחו את מצבי היופי וה-HDR שלהם. יצרני OEM אחרים יכולים לבחור להפוך רק את מצבי הלילה שלהם לזמינים ל-CameraX, או שהם יכלו לבחור לא ליישם הרחבות כלל. זה תלוי לחלוטין ביצרן איזה מכשיר תומך באילו הרחבות של CameraX (אם בכלל). גוגל משמש לניהול רשימה של מכשירים שתומכים בהרחבות ספקים ובאילו תכונות מצלמה הם פתחו, אך הם לא עדכנו את הרשימה בחודשים האחרונים. פנינו לגוגל לפני מספר שבועות ושאלנו אותם אם הם יכולים לספק רשימה מעודכנת, אך החברה עדיין לא הגיבה עם רשימה. בשביל מה זה שווה, א פוסט אחרון בבלוג של גוגל קובע כי מכשירים של סמסונג, LG, OPPO, Xiaomi ומוטורולה (באנדרואיד 10) מספקים הרחבה כלשהי פונקציות, אך הפוסט בבלוג אינו מציין בדיוק אילו מכשירים נתמכים או אילו פונקציות הם לְסַפֵּק.
אם מספיק יצרנים יחליטו ליישם הרחבות, סצנת מצלמות הצד השלישי של אנדרואיד תהיה הרבה יותר בהירה. מפתחים לא יצטרכו לבזבז זמן ביישום מחדש של תכונת מצלמה עבור כל מכשיר שהם יכולים, מכיוון שהמסגרת של CameraX תדאג לכך. יהיה פחות פיצול תכונות מכיוון שתכונות דומות במכשירים יהיו נגישות דרך ממשק משותף. ויש עוד הרבה אפשרויות.
כמובן, הכל תלוי ביכולתה של גוגל לשכנע יצרנים ליישם את ספריות הרחבות הספקים של CameraX בעתיד. אלא אם CameraX מיושם באופן נרחב, זה רק יוסיף לפיצול הנוכחי. אבל אישית, אני מקווה. גוגל יכולה להיות מאוד משכנעת כשהיא רוצה, ונראה שהרבה עבודה עוברת ל-CameraX. זה מרגש לראות פתרון אפשרי לבעיות המצלמה של אנדרואיד באופק, ואני מצפה לראות כיצד CameraX ישתפר ויתרחב עם הזמן.
מה אתה חושב על CameraX? האם גוגל תצליח ליצור חווית מצלמה מאוחדת עבור אנדרואיד?