מהנדס קשרי מפתחים
ההשקה של Googlebook פותחת אופקים חדשים לחוויות ברמת דיוק גבוהה, כמו במחשב. במפגש הזה נציץ אל מאחורי הקלעים עם שני שותפים חלוצים שפיתחו לפלטפורמה הזו מהיסוד.
ב-Notability ישתפו את התהליך של יצירת אפליקציה ל-Android ברמה של מחשב באמצעות Jetpack Compose. כאן תוכלו לקרוא על המעבר שלהם מפלטפורמות אחרות של אפליקציות, כשהמטרה העיקרית שלהם הייתה להגיע למשתמשי מחשבים. בחלק השני, נציגי Logitech יתמקדו בצד של החומרה ויסבירו איך הם מפתחים ומתאימים אישית ציוד היקפי כדי לשלב אותו בצורה חלקה עם Googlebook. בסשן הזה תקבלו תובנות מעשיות מהשטח לגבי אופטימיזציה של קלט, שימוש בממשקי API למסכים גדולים ויצירת חוויית משתמש איכותית ועקבית בחומרה ובתוכנה.
תמליל
היי, אני אמילי רוברטס, אחראית קשרי מפתחים שעובדת עם אפליקציות ל-Android במחשבים ניידים כבר כמעט תשע שנים.
ואז הושק Googlebook.
איזה כיף!
אני חושב שהחדשנות שאנחנו מביאים לתחום המחשבים הניידים היא ממש מגניבה.
ואני ממש שמח להיות כאן על הבמה עם שני מפתחים שהשקיעו מאמצים רבים כדי שהאפליקציות שלהם ייראו נהדר ב-Googlebook.
שלום.
אני ריאן מ-Notability.
אני מנהל Android, וזו אפליקציה של מחברת דיגיטלית שהשקנו לאחרונה ב-Android.
היא זמינה גם ב-iOS, במחשב ועכשיו גם ב-Google Books.
שלום.
אני ג'ו מ-Logitech, ואנחנו ידועים בציוד ובציוד ההיקפי המעולים שלנו.
ואסביר איך העברנו אותם לפלטפורמות החדשות.
אני הולך לדחוף אותם.
וכך, Google Books כאן.
איזה כיף!
איזה כיף!
איזה כיף!
אני מקווה שהייתה לכם הזדמנות לנסות אותם, בעצמכם או בדוכן ההדגמה בקומה אחת למעלה או למטה.
וכמובן, אל תשכחו לבדוק איך האפליקציה שלכם נראית בהם.
אני הולך להגיד את מה שאני תמיד אומר, שהסביבה העסקית של Android גדלה.
אני אומר את זה כבר תשע שנים, וזה עדיין נכון.
האפליקציות צריכות להתפתח כדי לוודא שאתם עונים על הצרכים של המשתמשים בכל גודלי המסכים והמכשירים האלה.
פריסת אפליקציה שפועלת היטב ומתנהגת היטב היא נוהג מקובל בשלב הזה.
והדרך הכי טובה לעשות את זה היא באמצעות Jetpack Compose ו-Navigation 3.
והקלט, זה אותו דבר.
הוא אמור לפעול בלי בעיות.
וכמובן, הארכיטקטורה וניהול המצב של האפליקציות הם חלק מהפריסה ומהקלט.
יש לנו הרבה הרצאות ב-ADS על איך לעשות את זה עם הכלים החדשים ביותר והשיטות המומלצות.
אבל היום חשבנו שזו הזדמנות מצוינת לפנות קצת מקום למפתחים שיוצרים ל-Googlebook כבר מההתחלה, ולשמוע את הסיפור שלהם.
Notability היא אפליקציה משודרגת לרישום הערות שפותחה במיוחד ל-Googlebook.
ב-Logitech לא רק דאגו שהמקלדות, העכברים וציוד היקפי אחר יעבדו, אלא גם שהם יעבדו בצורה מעולה ב-Chromebook, כולל התאמה אישית למשתמשים.
סליחה שגנבתי לך את ההצגה, ג'ו, אבל אנחנו ניכנס לפרטים.
אז זה מספיק לי.
מצטער, אין לי ראפ הפעם.
ובטח שלא לאלתר.
בכל מקרה, אנחנו מאוד מתרגשים מכך ש-Notability נמצא ב-Chromebooks, ועכשיו אעביר את השלט לריאן.
תודה.
נהדר.
תודה רבה, אם.
אנחנו ממש מתרגשים להיות ב-Google Books.
מיליוני תלמידים ואנשי מקצוע משתמשים ב-Notability כדי ללמוד ולסכם.
כמו שציינתי קודם, היא זמינה עכשיו ב-Android, ואני אסביר בקצרה איך בנינו אותה, ואיך פיתוח נכון ל-Android מאפשר לפתח בצורה אופטימלית ל-Googlebooks כבר מההתחלה.
כשהתחלנו את הפרויקט הזה לפני כשנתיים, רצינו לוודא שאנחנו לא רק מעבירים את האפליקציה שלנו ל-iOS וזורקים אותה על המשתמשים וקוראים לזה מספיק טוב.
רצינו משהו שירגיש טבעי לחלוטין לציפיות של המשתמשים, אבל עדיין יספק את כל התכונות.
כדי להגיע לזה, השתמשנו ב-Material Design וברכיבים כדי להתאים אישית את כל המסכים מהיסוד.
בנוסף, וידאנו שאנחנו משתמשים ב-Jetpack Compose.
האפליקציה היא אפליקציה מקורית ל-Android שמבוססת על Jetpack Compose, ולכן אנחנו יכולים לתמוך במגוון רחב של חומרה, לא רק בטלפונים קטנים ובמכשירים פשוטים, אלא גם בטאבלטים מתקדמים וחזקים עם מסכים גדולים, במחשבים, ב-XR, במכוניות ובכל מה שביניהם.
עם Jetpack Compose קל מאוד לתמוך בהם באופן מקורי, בלי צורך ליצור הרבה תכונות נוספות בממשקי המשתמש.
אז בואו נעבור ל-Notability.
כל מה שמופיע ב-Notability מבוסס על Jetpack Compose.
ממשק המשתמש אחיד בכל הפלטפורמה, והוא נבנה פעם אחת בלי שינויים משמעותיים בין מה שמוצג בטלפון לבין מה שמוצג בסופו של דבר במכשירים עם מסך גדול יותר, כמו טאבלטים ומכשירי Googlebook.
כדי לעשות את זה, Navigation 3 הוא כלי חשוב מאוד בשבילנו.
הדרך שבה Navigation 3 פועל ב-Google built in Notability היא שעל סמך גודל המסך, אנחנו יכולים להתאים אישית את הפריסה בלי שהתכונה תצטרך לדאוג לאופן שבו היא תוצג.
בהדגמה הזו אפשר לראות שאם יש מקום לפתיחת חלונית צדדית, היא תיפתח.
אם לא, הוא יופיע כגיליון תחתון.
אז איך זה נראה בקוד?
בקוד שמוצג כאן, אפשר לראות שיש נקודת כניסה אחת לחלונית הסיכום בפועל בצד, ואנחנו מוסיפים אותה למקבץ הפעילויות הקודמות (back stack).
אחר כך, אסטרטגיית הסצנה המותאמת אישית שלנו בוחרת פריסה לחלונית הצדדית הזו, בהתאם לשאלה אם יש מקום או לא.
אז בטאבלט או במכשיר Googlebook, הוא ימצא מקום פנוי, יפנה מקום ויחליק את החלונית הזו פנימה מהצד השמאלי.
אבל במכשירים כמו טלפון או מכשיר מתקפל, יכול להיות שלא יהיה מספיק מקום להציג את החלונית הזו כמו שצריך, אז היא תופיע כגיליון תחתון.
מכיוון ש-Notability מתאימה את עצמה לגודל החלון ולא לסוג המכשיר, בין אם זה טלפון, Googlebook, טאבלט, מכשיר מתקפל או כל מכשיר אחר, ממשק המשתמש שלנו יכול להתאים את עצמו באופן אוטומטי לצרכים של המשתמשים.
כאן אפשר לראות שבטלפון, כל הלחצנים והכלים משנים את המיקום שלהם כדי שיהיה קל להגיע אליהם עם האגודל.
בטאבלט, חלוניות הניווט מוצגות לצד כל התוכן הראשי, כי יש יותר מקום במסך וקל יותר להשתמש בו.
במכשירים מתקפלים, אנחנו מנצלים את הקיפול כדי להציע פריסות וממשקי משתמש ייחודיים לדברים כמו בוחן הלימוד שלנו, שבו המשתמשים יכולים לראות את התשובות שלהם בחצי התחתון ואת ההתקדמות בבוחן בחצי העליון.
ולבסוף, ב-Google Books, יש לנו שינוי גודל חלק של החלון.
כמו בכל אפליקציה אחרת שמוצגת בחלון במחשב, Notability תתאים את עצמה כשתשנו את גודל החלון, בהתאם לצרכים שלכם.
כמו שציינתי, כשבנינו את ממשק המשתמש הדינמי, הוא פעל כמעט בכל חוויית המחשב המלאה ב-Google Books.
הוא יביא אתכם ממש קרוב.
אבל אם אתם רוצים חוויה ברמה של מחשב, משהו שהוא באמת יוצא דופן, יש כמה דברים שאנחנו ממליצים לעשות.
קודם כל, חשוב שהמקלדת תהיה האמצעי העיקרי.
המשתמשים לא יהיו רגישים למגע כמו במכשיר טאבלט או טלפון רגיל, וחשוב מאוד שיהיו מקשי קיצור ודרך קלה להגיע לרשימת מקשי הקיצור של Android.
בשלב הבא, לפעמים אפשר לעצב את התכונות כך שהפריסה שלהן תהיה שונה בהתאם לסוג המכשיר ולציוד ההיקפי הזמין לקלט.
כשאנחנו מזהים משהו כמו מחשב נייד עם מקלדת או עכבר, אנחנו מציעים ממשק משתמש קצת שונה במסך הבית, כדי שהמשתמשים יופנו לכלים שאנחנו חושבים שהם יעדיפו על פני משהו כמו טאבלט, שבו עט סטיילוס והערות אוטומטיות בכתב יד יהיו האפשרות העיקרית.
הדבר הנוסף שצריך להתחיל לחשוב עליו הוא איך מכשירים שונים מתקשרים זה עם זה.
"המשך במכשיר אחר" היא תכונה חדשה ב-Android 17 שמאפשרת להעביר את האפליקציה בצורה חלקה ממכשיר אחד למכשיר אחר.
לדוגמה, במקרה הזה אנחנו מעבירים פתק מהטלפון למסך הגדול יותר של המחשב.
כדי לעשות את זה, צריך רק לסנכרן במהירות את מזהה ההערה ולבדוק איפה אתם נמצאים בתהליך.
כך קל לנו מאוד לשלוח כוונה מהירה של אפליקציה למכשיר Googlebook, ואז להמשיך בדיוק מהמקום שבו הפסקתם.
עוד דבר שצריך להביא בחשבון במכשירים ברמת מחשב הוא מודלים של תמיכה בקלט מרובה.
אז לא רק שיהיו לכם דברים כמו מקשי קיצור, כפי שצוין קודם, יהיו לכם משטחי מגע עם סוגים שונים של התנהגויות זום וגלילה ממה שהיו לכם בעבר.
בנוסף, יהיו לכם תפריטי הקשר שאולי תצטרכו להנגיש למשתמשים שלא היו שם קודם.
בנוסף, מכיוון שהרבה ממכשירי Googlebook הם עדיין מכשירים עם מסך מגע, חשוב לוודא שכאשר משתמש יוצר אינטראקציה עם המכשיר הזה, יש לכם זיהוי קלט שונה לא רק עבור העט והאצבע, אלא גם עבור הסמן של משטח המגע, כי צריך להתייחס לכל השלושה בצורה שונה.
אם אתם מתעניינים בדיו ובכתיבת הערות כמו Notability, מומלץ להשתמש ב-Jetpack Ink.
אז זה משהו שאנחנו משתמשים בו כדי לספק מערכת בנייה עם זמן אחזור נמוך לדיו שלנו, בלי שנצטרך לנהל מחסנית כבדה ומסובכת של שרשורים ועיבוד וקוראי מאגר נתונים ודברים שונים שאראה לכם קצת מאוחר יותר.
אבל אם זה עובד עכשיו, אני בעצם, בזכות Logitech, יכול להראות לכם הדגמה חיה של אפליקציית Notability.
כן, מעולה.
אז, אופס, קדימה.
זהו, מושלם.
אז הנה הבדיקה שלי מקודם.
אבל כמו שאתם רואים, אני משתמש באצבע, אז הוא עדיין מזהה את הקלט של האצבע, וזה נהדר.
אני יכול גם להשתמש בעכבר אם אני רוצה.
אבל הצלחנו ליצור כמה מכחולים בהתאמה אישית, שכרגע זמינים רק ב-Android.
אז אתם יכולים לראות כאן, בחרתי את אפקט הקשת והנצנצים, כך שהקלט או אפקטי הדיו שלנו יושפעו מספריית Jetpack Ink שמתחת.
אז אני אכתוב את ההודעה שלי שוב.
אז שלום.
ואז נבחר את הירוק של Android לחלק האחרון כאן.
קשה ללחוץ עליו כמו שצריך.
הנה, ירוק של Android.
ואז אפשר לראות שהצבעים בפועל משתנים בהתאם לצבע של המודל הבסיסי כאן.
מעולה.
בעבר, כשבנינו מברשות מהסוג הזה, לפעמים לקח לנו חודשים עד שכל ההצללות בהתאמה אישית, הממשק וכל השאר היו נכונים ונראו טוב.
למרבה המזל, בזכות Jetpack Ink, אפשר לעשות את זה בפחות משבוע בעזרת AI וכלי ליצירת מברשות בהתאמה אישית.
אז אם אתם מחפשים קעקוע מכל סוג שהוא, תגידו להם.
זה API מעולה שחסך לנו הרבה זמן.
מעולה.
וכמו שציינתי קודם, ככה זה נראה.
אז יש לנו את מה שנקרא שכבת דיו רטוב.
זה הדיו שלנו בתהליך, עדיין מצויר, צריך להיות סופר, סופר רספונסיבי, אתם יודעים, לעומת שכבת דיו יבשה.
זה הגיוני מבחינה פיזית, אפשר לחשוב על זה.
זה הדיו שנשמר, שכבר נגמר.
אז פעם, כל תהליך ההעברה היה באחריותנו.
אז היינו צריכים לעשות את השרשור הזה, היינו צריכים לעשות שרטוט מחדש וניקוי, היינו צריכים להעביר את זה לשכבה יבשה ולוודא שהם מסונכרנים ולא מהבהבים, והיו כל הסיבוכים האלה.
ובסוף, היינו צריכים ליישם את מה שמייחד את Notability, נכון?
יש לנו מודלים משלנו להתאמת עקומות, ויש לנו דרכים שבאמת גורמות לכתב היד שלכם לבלוט.
אז זה היה המודל הישן.
הודות ל-Jetpack Ink, כל מה שאנחנו צריכים לעשות הוא להזין את התאמת העקומה שלנו לתצוגת צורות ההתקדמות המותאמת אישית שלהם, והכל עובד בצורה קסומה מיד ב-Android.
דבר נוסף שאנחנו חושבים עליו, כשאנחנו דנים גם ב-Jetpack Ink וגם בספריות אחרות של Google, הוא KMP.
אז זה בעצם משהו שהתחלנו לבחון בקוד של iOS, שכבר היה בנוי, וחשבנו לעצמנו, "אוקיי, אנחנו רוצים לשתף חלק מהלוגיקה בין Android ל-iOS.
יש לנו מודלים, יש לנו שינויים, יש לנו מתמטיקה מסובכת.
זה הגיוני לשתף".
וחשבנו, "היי, C++, אתם יודעים, Objective-C של אפל, בואו נלך בדרך הזו".
התברר שלא רק שמהנדסי iOS שלנו הצליחו להטמיע את Kotlin Multiplatform בקלות רבה יותר, אלא שזה גם היה מהיר יותר.
אז לא רק שהביצועים השתפרו בזכות השימוש ב-Kotlin, ויכולנו להעתיק הרבה מהקוד של Android, אלא שגם בטווח הארוך זה היה קל יותר ל-iOS.
אז אם אתם רוצים לשתף קוד, אני ממליץ לכם לבדוק את Kotlin Multiplatform.
כרגע אנחנו עדיין בתהליך הבדיקה.
זה לא נתמך ב-100% או משהו כזה, כי כמו שאתם יודעים, מודלים שונים של AI מקלים קצת על הרמאות, כי הקוד נמצא בכמה מקומות, אבל זה עדיין משהו שאנחנו חוקרים באופן די פעיל, ואני חושב שזה ממש חשוב.
עכשיו נעבור לכמה תכונות מיוחדות שקיימות רק ב-Notability.
אם תנסו לבנות כלי לעריכת טקסט ב-Android, יכול להיות שתשימו לב שכרגע אין דרך טובה לבנות כלי לעריכת טקסט למסמכים גדולים.
ב-Android הבסיסי, שדות להזנת קלט לעריכה הם ממשקי משתמש קטנים, EditTexts קטנים, דברים קצרים.
בסופו של דבר היינו צריכים לבנות מערכת מאוד מסובכת, שבעצם נמצאת מעל ממשקי ה-API הקיימים של Android, אבל אז היא מסוגלת לטפל במסמכים הרבה יותר גדולים, אתם יודעים, אלפי דפים של טקסט, כולם בו-זמנית, שאפשר לערוך ביחד, כך שמשתמש במקום אחר יכול לערוך 500 דפים מכם, מה שגורם לשינויים שמשפיעים על העבודה שלכם תוך כדי.
הדרך שמצאנו לעשות את זה היא בעצם שהקשות המקשים שלנו עוברות בשני נתיבים.
אז יש את הדרך הראשונה, שהיא, היי, זה המאמץ הכי טוב שלנו, המפתח הזה צריך להופיע, אתם יודעים, כאן.
אנחנו חושבים שזה טוב, על סמך כל מה שאנחנו יכולים לראות כרגע, ואיך שהכול נראה מתחת.
ואז אנחנו עושים סנכרון מהיר, נכון?
אנחנו בודקים את הנתונים, פונים לשותפים שלנו ושואלים: "היי, הכול בסדר?
האם זה הגיוני?
הכול בסדר?"
אם צריך לשנות דברים, המערכת מתאימה את עצמה מחדש.
אתם יכולים לדמיין שאם שני משתמשים נמצאים באותה שורה ולוחצים על מקשים, זה יהיה קצת מבולגן לגבי מי מקבל מה.
אבל ברוב המקרים, זה עובד ממש טוב.
הסיבה שאני מזכיר את זה כאן היא שזו כמות עצומה של עבודה שהשקענו בה, ואנחנו שוקלים להפוך אותה לקוד פתוח.
אז אם מישהו בכנס כאן או באינטרנט בעתיד רוצה לשתף פעולה בנושא הזה, וחושב שזה רעיון טוב, תודיעו לנו.
אנחנו מתלבטים אם באמת שווה להשקיע בזה, אבל אתם יודעים, זה היה פרויקט ענק מבחינתנו, ואנחנו די גאים בתוצאות.
אוקיי, ועכשיו נראה איך הדיו עובד.
אז מבחינת מודל שיתוף הפעולה, זה קצת יותר ישיר, איך זה עובד מהצד שלנו.
כמו שאפשר לראות כאן, יש שלושה שלבים.
יש את הנגיעה, שבה אנחנו אומרים, "היי, דרך אגב, אנחנו מתחילים אירוע דיו" לכל אחד מהמכשירים המחוברים שלנו, אז במקרה הזה, זה אייפד.
אחר כך יש את השרטוט עצמו, אז יכולים להיות אחד עד מיליונים כאלה, תלוי כמה זמן המשתמש ממשיך להזיז את העט על המכשיר.
אני מקווה שלא יותר מדי זמן.
אני חושב שיש מגבלה בשלב מסוים, אבל, אתם יודעים, לתרחישי שימוש רגילים, זה די בסדר.
ואז יש אירוע של הרמה.
כדי לנהל את זה, יש לנו אובייקט זמני שאנחנו שומרים במודל.
אז באייפד, אנחנו אומרים, "אוקיי, יש סוג של אירוע מוחי שמתקרב, אבל הוא עדיין לא כאן.
אנחנו לא יכולים לבצע פעולות שקשורות אליו.
הוא זמני".
ורק אחרי שאירוע הסיום הזה מופעל, אנחנו באמת נכנסים ואומרים, "אוקיי, מגניב.
עכשיו צריך להחליף את כל זה באובייקט אחד ש-iOS או כל לקוח אחר יכולים פשוט לקחת ולקיים איתו אינטראקציה".
ואנחנו גם משתעשעים ברעיון להפוך את זה לקוד פתוח.
זה, אתם יודעים, לא הדיו הישיר שלנו, אלא חלק מהדברים החולפים, במיוחד בשכבת הטקסט.
מצוין.
ואז, כן.
אז הנה עוד כמה דברים שאנחנו ממליצים להשתמש בהם.
AI במכשיר הוא כלי נהדר.
אנחנו משתמשים בה לסריקת מסמכים, כך שאתם יכולים לסרוק מסמכים, לנתח טקסטים ב-PDF ולזהות כתב יד.
אנחנו גם משתמשים במודלים פתוחים של AI ב-Cloud כמו Gemini כדי ליצור את ההערות החכמות שלנו, שבהן ההערות של המשתמשים מסווגות, מסוכמות ואז מוצגות להם בדרכים טובות ואינטראקטיביות יותר למודל הלמידה.
וכל זה ביחד באמת גורם ל-Notability להרגיש כמו אפליקציה למחשב נייד, נכון?
זו המטרה בסופו של דבר.
יש לנו את כל המודלים השונים והמעניינים האלה, דברים שונים, טקסט, קלט, אבל הדבר החשוב הוא האם זה מרגיש כמו אפליקציה למחשב נייד, או שזה מרגיש כאילו פתחת אפליקציה לטלפון במסך הגדול ואתה קצת משתעשע איתה?
המקלדת, משטח המגע, הסטיילוס, שינוי גודל החלון – כל אלה תכונות חשובות שצריך להקפיד עליהן כדי שהמשתמשים ייהנו מהחוויה.
אבל כמו שציינתי קודם, Jetpack Compose, Navigation 3, Material Design, כל אלה מכסים את זה.
אז אם עושים את הדברים נכון, זה לא דורש הרבה מאמץ.
קל מאוד להגיע לכאן.
אז כן.
אלה המסקנות העיקריות שלנו.
כשחושבים על העתיד של Android, לא צריך לחשוב יותר על מכשירים.
אני לא חושב על זה ככה: "היי, זה טלפון, זה מכשיר מתקפל, זה מכשיר XR, זה מחשב נייח או נייד, או טאבלט, או רכב, או טלוויזיה".
במקום זאת, צריך לשאול: מה גודל המסך שזמין לי, ומהן תיבות הדו-שיח להזנת קלט שזמינות למשתמשים שלי?
ולספק את חוויית השימוש הטובה ביותר למי שמשתמשים בהם.
כמו שציינתי בשקף הקודם, Compose ו-Nav 3 ממש מקלים על התמיכה בכל זה.
ו-Google משיקה כל יום ממשקי API חדשים ומשמעותיים, כמו Jetpack Ink או Gemini במכשיר, או כל מיני דברים שפשוט מקלים עליכם לבנות את חוויות הליבה שלכם, ואז להתמקד ברוטב הקסם שמייחד אתכם.
אוקיי.
אז כן.
תודה רבה.
זה מה שרציתי להגיד.
אני אהיה זמין בהמשך אם יהיו לך שאלות, או שאפשר לפנות ל-Notability.
האפליקציה חדשה לגמרי ב-Android, היא הושקה לפני כחודשיים.
סוף סוף יצאנו מגרסת הבטא.
אז אתם מוזמנים לנסות.
לשלוח לנו משוב.
הוא זמין גם ב-Google Books בתהליך ההדגמה שמאחוריכם.
עכשיו אעביר את רשות הדיבור לג'ו מ-Logitech.
תודה.
טוב.
תודה, רועי.
היום, אוקיי, סליחה.
בואו נציג את השקף.
תודה, רועי.
היום אשתף איך הבאנו את Options+, שהיא אפליקציה להתאמה אישית של ציוד היקפי, למכשירי Chromebook.
ומה המשמעות של יצירת חוויה היקפית?
אני אסביר מה בנינו, כמה נקודות הנדסיות חשובות, בלי נקודות חלשות, ולאן אנחנו מתקדמים.
מכשירי Logitech כבר פעלו עם Android בעבר, ורוב המשתמשים גילו שהציוד ההיקפי משפר את הנגישות, במיוחד במחשבים ניידים פרימיום ובטלפונים שמחוברים למסכים חיצוניים.
אם כבר מדברים על זה, קודם למטה, ראיתי בדוכן ההדגמה של Googlebook, שהם חיברו לשולחן תיבת הילוכים סיקוונסיאלית של Logitech לגיימינג, והם השתמשו בה כדי לעבור בין מסכים שונים בטאבלט.
הנה.
זו דרך אחת להשתמש בו.
אה, דרך אגב, פרארי היו צריכים לגבות עוד 50,000 אירו על תיבת ההילוכים הסיקוונסיאלית שלהם. בכל מקרה,
כן.
אז ב-Googlebook, כמו שריאן ציין בצורה די מקיפה, יש לנו הרבה יותר מקום לעבוד איתו.
כמו שאתם רואים, אפשר לשנות את גודל המסכים, לרוחב, לאורך או ריבוע, אם רוצים, ויש הרבה יותר מקום לעבוד בין אפליקציות.
אתם יכולים להמשיך לעבוד על מה שאתם עובדים, באפליקציות שונות, ולעבור בין הקשרים שונים, כל הדברים האלה.
וזה בהחלט שינה את עיצוב האפליקציות, והפריסות צריכות להישאר שימושיות לאורך כל התהליכים.
מבחינתנו ב-Logitech, זה נראה מעניין במיוחד כי אנחנו חברה עם הרבה ניסיון בציוד היקפי, נכון?
אנחנו מביאים בסיס חזק מאוד לעבודה הזו.
לכן, מבחינתנו, בסביבת עבודה כזו, עכבר או מקלדת הם הכלים שבהם המשתמשים שלנו משתמשים במהלך יום העבודה.
הם יכולים להיכנס לתהליך העבודה שלהם בצורה חלקה מאוד.
ואני חושב שזה לא מוגזם לומר ש-Logitech מביאה עשרות שנים של ניסיון לעבודה הזו.
אני חושב שחגגנו את יום השנה ה-45 שלנו בתחילת החודש.
ואנחנו עושים את זה, לדעתי, מאז שהתחלנו לייצר עכברים, ביום השני של השנה השנייה של Logitech.
אז עם ניסיון כזה, אנחנו בטוחים מאוד ביכולת שלנו להיכנס לתחום הזה.
בנוסף, יש לנו היסטוריה נהדרת עם ChromeOS.
בעבר הבטחנו תאימות מעולה ל-ChromeOS.
אחרי שאמרנו את כל זה, יש לנו ניסיון מעשי טוב מאוד בפריצת הגבולות בין החומרה שאנחנו בונים, התוכנה שאנחנו יוצרים, והפלטפורמה, מערכת ההפעלה, Googlebooks.
לדוגמה, משתמש לוחץ על כפתור ורואה תוצאה צפויה.
זה כמעט כמו משהו שכולם לוקחים כמובן מאליו.
אבל בפועל, צריך תאימות חלקה בין הרכיבים.
בנוסף, כולם אוהבים תאימות לציוד ההיקפי שלהם.
לדוגמה, לכוון את הרגישות שלהם בדיוק כמו שצריך.
65, לא יותר ולא פחות.
לכן, כל הדברים האלה דורשים שילוב תאימות טוב מאוד וחלק בין כל שלושת הדברים האלה.
עכשיו, עם ההשקה של Google Books, אנחנו משיקים את Options+ ל-Google Books.
נכון לעכשיו, אנחנו תומכים במגוון של עכברים ומקלדות, ונוסיף עוד בהמשך.
זה גם המקום שבו אנחנו מאפשרים למשתמשים להגדיר את המכשירים שלהם.
וכמו שציינתי קודם, כמו רגישות, כל הדברים האלה.
עכשיו, כאן הסצנה מתחילה להיות מעניינת.
כשאנחנו מדברים על יכולת הגדרה, אנחנו מדברים בעצם על שני צדדים.
צד אחד הוא החומרה, צד הקושחה, שבו התכונות מוטמעות בקושחה שלנו.
הצד השני הוא למעשה הנקודה המרכזית של ההדגמה הזו והמצגת הזו, והוא הצד של מערכת ההפעלה.
אני חושב שכולם כאן יודעים שבעבר היו מכשירי Android ורוב האפליקציות היו בארגז חול משלהן, במרחבי משתמשים.
יש מגבלות מסוימות על מה שאתם יכולים לעשות, ובמקרים רבים, על מה שאתם לא יכולים לעשות ועל מה שאתם רוצים.
מבחינתנו, זה חשוב מאוד.
עכשיו, הנה צילום מסך, בהמשך תהיה הדגמה, אבל הנה צילום מסך.
יש לנו כאן עכבר, MX Master 4, ויש לנו כאן הרבה פונקציות.
ואנשים שמכירים את עולם הציוד ההיקפי יכולים לזהות שתכונות מסוימות הן תכונות קושחה או תכונות מכשיר.
ואחרים ממש לא.
אנחנו מנסים לאפשר למשתמשים להגדיר את שני הצדדים.
והתפקיד שלנו הוא, קודם כול, להפוך את האפשרויות האלה למובנות, להציע למשתמשים את כל היכולות, ולהגדיר את הדברים האלה בצורה נכונה במערכת ההפעלה ובקושחה.
עכשיו נעבור להדגמה קצרה.
וואו, זו הייתה הדגמה מרשימה מאוד.
אבל בפעם הבאה, ריאן, תשתמש בעכבר.
אוקיי, בואו נתחיל.
זה המסך של המכשיר שלי.
אתם רואים שיש לי עכבר MX Master 4 מחובר, זה.
אז בואו נתחיל.
נעבור ישירות למסך ההגדרות, כמו שראיתם קודם, וכאן קורה הקסם.
עכשיו, קודם נבחר את התכונה "מקיפים ומחפשים" לכפתור האגודל.
ואז נשתמש בסמן הקסם בכפתור התכונה.
עכשיו, בואו נתחיל.
נפתח דפדפן.
כאן.
כאן, אני לוחץ על כפתור האגודל שהקציתי לו את התכונה "מקיפים ומחפשים".
כמו שאתם רואים, אני מקיף מקלדת.
זהו זה!
Google רק מציגה את המידע על המקלדת הזו.
הוא מאוד נוח ופועל בצורה חלקה.
עכשיו ננסה משהו אחר.
אוי, סליחה.
אני אחזור אחורה.
בואו ננסה את סמן הקסם.
כאן, נפעיל את המתג הזה.
ואני יכול ללחוץ על כפתור התכונה, לתייג את זה, ואני לוחץ על "מה זה המכשיר הזה?"
זהו.
Google מתחילה לבצע חיפוש ומציגה את התוצאות.
אז הדבר הנחמד בזה הוא שאתם משלבים את כל תהליך העבודה בפעולה אחת בלבד.
אתם מקצים תכונות, לוחצים, מקיפים, לוחצים וזהו.
לכן, אנחנו מאמינים שפעולה מהסוג הזה תשפר מאוד את הנגישות של המשתמשים ואת הדרך שבה הם עובדים.
עכשיו נחזור לשקפים.
אז אתם יכולים לשאול מה גרם לזה לקרות.
כי בעבר היו הרבה דברים שאפליקציות פשוט לא יכלו לעשות.
הנה, טא-דא, Peripheral Customization API, שזמין גם ב-Googlebooks וגם במכשירי Android.
אבל אלה ההערות של Google.
נכון לעכשיו, ה-API הזה נמצא ברשימת ההיתרים.
אבל אנחנו מתכננים להשיק אותה יחד עם עדכוני Android ברבעון הרביעי של 2026, כלומר ברבעון הנוכחי.
אז כשהיא תושק, אני חושב שמפתחים בכל העולם יוכלו להשתמש בה.
עכשיו נתעמק קצת בצד הטכני.
יש שלושה רכיבים עיקריים לכל העניין הזה: מכשיר, מובן; טריגר, שיכול להיות מקש, יכול להיות כפתור מיועד; ופעולה, שנמצאת בצד של מערכת ההפעלה של האפליקציה.
עכשיו נסתכל על קטע הקוד הזה.
ובחלק העליון, אנחנו מגדירים מכשיר באמצעות מזהה הספק ומזהה המוצר שלו.
// Vendor and product Information
const val VENDOR_ID = 1234
val pid = 123
// Use the mouse Middle Button as the trigger
val trigger = ButtonCustomizationTrigger(MotionEvent.BUTTON_TERTIARY)
// Set Voice Assistant as the action
val actionBuilder = AppCustomizationAction.Builder(component, ACTION_MAIN)
actionBuilder.setData(ActionId.ACTION_VOICE_ASSIST.actionId) // Action IDs are predefined
val action = actionBuilder.build()
val im = context.getSystemService(INPUT_SERVICE) as InputManager
im.addPeripheralCustomization(VENDOR_ID, pid, trigger, action)בדרך כלל אנחנו קוראים לזה vid ו-pid.
בהמשך, נתחיל להגדיר טריגר.
וכאן, כמו שאפשר לראות, אנחנו רוצים להשתמש בלחצן האמצעי כטריגר.
וכאן, אנחנו רוצים למפות את הכפתור האמצעי הזה לחלק של העוזרת הקולית בתכונה של מערכת ההפעלה.
נכון?
יש לנו actionBuilder כאן מ-AppCustomizationAction, וגם כאן.
בהמשך, כאן אנחנו רושמים את המיפוי הזה בין המוצר, המכשיר, הטריגר והפעולה.
כמובן שהקוד האמיתי קצת יותר מסובך, אבל זה הרעיון הכללי.
פשוט מאוד וקל לשימוש.
עכשיו, הנה עוד תכונה מעניינת ומגניבה.
הוספתי כאן קובץ GIF כדי שכולם יוכלו לראות אותו בקלות.
אז בעצם, כשמכשיר תואם ונתמך, במקרה הזה, עכבר Logitech mobifold, מערכת ההפעלה תפעיל התראה רגילה כדי להגיד לך, "היי, יש לך אפליקציה בשביל זה".
כמובן, צריך ליידע את המשתמש.
אחרי שתלחצו עליה, תועברו לחנות Play ותוכלו להתקין את האפליקציה.
היא נקראת "גילוי התאמה מהירה".
עכשיו נעבור לצד של ממשק המשתמש.
ריאן דיבר על הרבה דברים נחמדים ב-Googlebook, איך עושים ממשק משתמש, אז אני אעבור על זה די מהר.
כמו שאתם רואים, Options+ פועלת בפלטפורמות שונות, במקרה שלנו, Windows, Mac ועכשיו גם Googlebooks.
אז המטרה שלנו היא בעצם שתי מטרות: מצד אחד, אנחנו רוצים שזה ירגיש כאילו זה ספציפי לפלטפורמה, אבל בו זמנית, אנחנו רוצים שזה ירגיש דומה בכל הפלטפורמות, מה שאומר שברגע שאתם מכירים את Options+ בפלטפורמה אחת, אתם אמורים להיות מסוגלים להשתמש בה בצורה חלקה בפלטפורמה אחרת.
זה אומר שאנחנו רוצים לנצל את היתרונות של הפלטפורמות הספציפיות האלה, אבל באותו זמן, להשתמש באותה שפת עיצוב.
כמו שאתם רואים, יש שפת עיצוב עקבית בכל הממשק.
וכמו שדיברנו קודם, משתמשי Googlebook נוטים להשתמש ב-Googlebook יותר כמו מחשב נייד או נייח.
אז כמובן שהאפליקציה שלנו, אפילו ב-Googlebook, נראית כמו אפליקציה למחשב.
לכן, האפליקציה עצמה עשויה לפעול כמו אפליקציה למחשב, והיא פועלת היטב בגדלים שונים של חלונות, במגעים שונים, וכמובן, אתם יכולים לשלוט בשימוש בעכבר ובמקלדת.
זה היה סיפור קצר על הציוד ההיקפי של Logitech ועל Options+ ב-Googlebook.
וזה עובד מצוין.
אבל זו רק ההתחלה.
יש לנו כמה שלבים: קודם כול, אנחנו רוצים להביא את החוויה הזו ליותר מכשירים, ליותר מקלדות, עכברים וציוד היקפי אחר, ואנחנו רוצים לשפר את מדף האפליקציות הזה באמצעות משוב ממשתמשים אמיתיים.
וכמובן, הדבר הכי חשוב הוא שאנחנו הולכים לעבוד עם Google בהמשך הדרך, ולשלב את המוצרים שלנו בצורה עמוקה יותר בפלטפורמות החדשות.
המטרה הסופית שלנו היא להפוך את ההתאמה האישית של הציוד ההיקפי לחוויה טבעית מאוד בשימוש ב-Googlebook, ולעזור לאנשים לעבוד כמו שהם רוצים.
אוקיי.
אל תשכחו לבקר בדוכנים שלנו בקומה התחתונה ולנסות בעצמכם את Options+ ואת המכשירים המדהימים של Logitech.
ותודה לשותפה שלנו, Google, ותודה לכולכם על הזמן שהקדשתם.
תודה רבה.
// Vendor and product Information
const val VENDOR_ID = 1234
val pid = 123
// Use the mouse Middle Button as the trigger
val trigger = ButtonCustomizationTrigger(MotionEvent.BUTTON_TERTIARY)
// Set Voice Assistant as the action
val actionBuilder = AppCustomizationAction.Builder(component, ACTION_MAIN)
actionBuilder.setData(ActionId.ACTION_VOICE_ASSIST.actionId) // Action IDs are predefined
val action = actionBuilder.build()
val im = context.getSystemService(INPUT_SERVICE) as InputManager
im.addPeripheralCustomization(VENDOR_ID, pid, trigger, action)