مهندسة علاقات المطوّرين
يفتح إطلاق Googlebook آفاقًا جديدة لتجارب عالية الدقة على مستوى أجهزة الكمبيوتر المكتبي. في هذه الجلسة، سنلقي نظرة من وراء الكواليس على شريكَين رائدَين أنشآ تطبيقات لهذه المنصة من الصفر.
سيشارك فريق Notability تجربته في إنشاء تطبيق Android متوافق مع أجهزة الكمبيوتر المكتبي باستخدام Jetpack Compose. تعرَّف على رحلة انتقالهم من منصات التطبيقات الأخرى مع التركيز على أجهزة الكمبيوتر المكتبي. ثانيًا، ستتعمّق Logitech في جانب الأجهزة، وستناقش كيفية إنشاء الأجهزة الملحقة وتخصيصها لتتكامل بسلاسة مع Googlebook. انضم إلى الجلسة للحصول على إحصاءات عملية وواقعية حول تحسين الإدخالات والاستفادة من واجهات برمجة التطبيقات للشاشات الكبيرة وتقديم تجربة مستخدم متميزة ومتماسكة على مستوى الأجهزة والبرامج.
النص
مرحبًا، أنا إميلي روبرتس، مسؤولة علاقات المطوّرين، وأعمل في مجال تطبيقات Android على أجهزة الكمبيوتر المحمول منذ تسع سنوات تقريبًا.
وتم إطلاق Googlebook.
رائع
أنا متحمس جدًا للابتكارات التي نقدّمها في مجال أجهزة الكمبيوتر المحمول.
ويسعدني جدًا أن أكون على المسرح هنا مع مطوّرَين استثمرا حقًا في جعل تطبيقاتهما تبدو رائعة على Googlebook.
مرحبًا.
أنا "ريان" من فريق Notability.
أنا مدير Android، وهو تطبيق أوراق ملاحظات رقمية أطلقناه للتو على Android.
وتتوفّر أيضًا على أجهزة iOS وأجهزة الكمبيوتر المكتبي، والآن على Googlebooks.
مرحبًا،
اسمي "جو" وأنا من شركة Logitech المعروفة بأجهزتها وملحقاتها الرائعة.
وسأتحدث عن كيفية نقلها إلى المنصات الجديدة.
سأدفعها لتسقط.
وهكذا، أصبحت كتب Google متاحة.
رائع
رائع
رائع
آمل أن تكون قد أتيحت لك فرصة تجربتها، إما بمفردك أو من خلال اختيار واحدة في الطابق العلوي أو الطابق السفلي في جناح العرض التوضيحي.
ولا تنسَ بالطبع التحقّق من مظهر تطبيقك عليها.
سأقدّم عرضي الترويجي المعتاد، وهو أنّ منظومة Android المتكاملة تنمو.
أردّد هذه العبارة منذ تسع سنوات، ولا تزال صحيحة.
ويجب أن تتطوّر التطبيقات لضمان تلبية احتياجات المستخدمين على جميع أحجام الشاشات والأجهزة.
يُعدّ استخدام تنسيق تطبيق يحقّق أداءً جيدًا ويعمل بشكل جيد من الممارسات العادية في هذه المرحلة.
وأفضل طريقة لإجراء ذلك هي استخدام Jetpack Compose وNavigation 3.
والإدخال، هو الشيء نفسه.
ومن المفترض أن يعمل بشكل صحيح.
وبالطبع، فإن بنية تطبيقاتك وإدارة الحالة كلها جزء من التخطيط والمدخلات.
ولدينا مجموعة من المحادثات في مؤتمر Android Developers Summit حول كيفية إجراء ذلك باستخدام أحدث الأدوات وأفضل الممارسات.
ومع ذلك، اعتقدنا اليوم أنها ستكون فرصة رائعة لإتاحة مساحة صغيرة للمطورين الذين كانوا يبنون لـ Googlebook منذ البداية وسماع قصتهم.
Notability هو تطبيق متقدّم لتدوين الملاحظات تم تصميمه من البداية ليتوافق مع Googlebook.
ولم تعمل Logitech على التأكّد من أنّ لوحات المفاتيح وأجهزة الماوس والأجهزة الملحقة الأخرى تعمل بشكل جيد فحسب، بل عملت أيضًا على التأكّد من أنّها تعمل بشكل رائع على أجهزة Googlebook، بما في ذلك تخصيص المستخدم.
عذرًا على مقاطعتك يا "جو"، ولكننا سنتناول التفاصيل.
لذا، هذا يكفي بالنسبة لي.
لا يمكنني غناء الراب هذه المرة، عذرًا.
وبالتأكيد لن يكون هناك المزيد من الارتجال.
على أي حال، نحن متحمسون جدًا لإطلاق Notability على Googlebooks، لذا سأمرر هذا المؤشر إلى "ريان".
شكرًا.
رائع.
شكرًا جزيلاً لك يا "إم".
ونحن متحمّسون جدًا للانضمام إلى Googlebooks.
يستخدم ملايين الطلاب حاليًا تطبيق Notability للتعلّم، كما يستخدمه المحترفون لتدوين الملاحظات.
كما ذكرتُ سابقًا، يتوفّر التطبيق الآن على أجهزة Android، وسأقدّم لكم نبذة سريعة عن كيفية إنشائه، وكيف أنّ إنشاء التطبيق لنظام Android بشكل صحيح يجعله متوافقًا مع أجهزة Googlebook بشكل مثالي منذ البداية.
في البداية، عندما بدأنا هذا المشروع قبل عامين تقريبًا، أردنا حقًا التأكّد من أنّنا لا ننقل تطبيق iOS الخاص بنا ونطرحه للمستخدمين ونعتبر ذلك كافيًا.
أردنا تقديم تجربة تلبي توقعات المستخدمين، مع توفير جميع الميزات نفسها.
للوصول إلى هناك، استخدمنا التصميم المتعدد الأبعاد والمكونات لتخصيص جميع الشاشات من الألف إلى الياء.
وحرصنا على استخدام Jetpack Compose بشكل أساسي.
بما أنّ تطبيقنا هو تطبيق Android أصلي يعتمد بالكامل على Jetpack Compose، يمكننا توفير الدعم لمجموعة كاملة من الأجهزة، ليس فقط الهواتف الصغيرة والأجهزة المنخفضة المواصفات، بل أيضًا الأجهزة اللوحية المتطورة والقوية ذات الشاشات الكبيرة وأجهزة الكمبيوتر وأجهزة الواقع الممتد والسيارات وكل ما بينهما.
تسهّل أداة Jetpack Compose إتاحة هذه الميزات بشكلٍ أصلي، بدون الحاجة إلى إنشاء الكثير من الميزات الإضافية في واجهات المستخدم.
لننتقل الآن إلى Notability.
تم إنشاء كل شيء في Notability باستخدام Jetpack Compose.
تتسم واجهة المستخدم بالاتساق على مستوى المنصة، ويتم إنشاؤها بالكامل مرة واحدة بدون أي تغييرات حقيقية بين ما يظهر على الهاتف وما يظهر في النهاية على الأجهزة الأكبر حجمًا، مثل الأجهزة اللوحية وأجهزة Googlebook.
لتحقيق ذلك، يُعدّ Navigation 3 إنجازًا كبيرًا بالنسبة إلينا.
تعتمد طريقة عمل Navigation 3 في تطبيق Notability المضمّن في Google على حجم الشاشة، إذ يمكننا تخصيص التنسيق بدون أن تقلق الميزة بشأن كيفية عرضه.
في هذا العرض التوضيحي، يمكنك معرفة ما إذا كان هناك مساحة لفتح لوحة جانبية، فسيتم فتحها.
وإذا لم يكن متاحًا، ستظهر بطاقة سفلية بدلاً من ذلك.
إذًا، كيف يبدو ذلك في الرمز البرمجي؟
في الرمز البرمجي الذي لدينا هنا، يمكنكم ملاحظة أنّ هناك نقطة دخول واحدة هنا للوحة الملخّص الفعلية على الجانب، ونحن نضيفها إلى الأنشطة السابقة.
بعد ذلك، تختار استراتيجية المشهد المخصّص تنسيقًا لتلك اللوحة الجانبية، استنادًا إلى ما إذا كانت هناك مساحة أم لا.
لذلك، على جهاز لوحي أو جهاز Googlebook، سيعثر على المساحة المتاحة، وسيوفر مساحة ويقوم فقط بإدخال هذه اللوحة من الجانب الأيمن.
ومع ذلك، على جهاز مثل الهاتف أو الجهاز القابل للطي، قد لا تكون هناك مساحة كافية لعرض هذه اللوحة بشكل صحيح، لذا ستظهر كبطاقة سفلية بدلاً من ذلك.
بما أنّ تطبيق Notability يتكيّف مع حجم النافذة بدلاً من التركيز على نوع الجهاز، سواء كان هاتفًا أو جهاز Googlebook أو جهازًا لوحيًا أو جهازًا قابلاً للطي أو غير ذلك، من السهل جدًا أن تتكيّف واجهة المستخدم تلقائيًا مع ما يحتاجه المستخدمون.
يمكنك أن ترى هنا على الهاتف، جميع الأزرار والأدوات التي تم تغيير موضعها لتكون في متناول الإبهام بسهولة.
على الجهاز اللوحي، لدينا لوحات تنقل معروضة جنبًا إلى جنب بجوار كل المحتوى الرئيسي لأن لديك مساحة أكبر وشاشات أسهل للتفاعل معها.
على الأجهزة القابلة للطي، نستفيد من ميزة الطي لتقديم تنسيقات وواجهات مستخدم فريدة لميزات مثل اختبار الدراسة، حيث يمكن للمستخدمين عرض إجاباتهم في النصف السفلي ومتابعة تقدّم الاختبار الفعلي في النصف العلوي.
وأخيرًا، في Googlebooks، يمكننا الآن تغيير حجم النافذة بسلاسة.
تمامًا كما هو الحال في أي تطبيق آخر عادي على الكمبيوتر المكتبي، سيتكيّف تطبيق Notability مع تغيير حجم النافذة لتلبية احتياجاتك في ما يتعلق بالعرض جنبًا إلى جنب.
عندما كنا نبني، واجهة المستخدم التكيفية، التي تعمل مع تجربة سطح المكتب الكاملة تقريبًا على Googlebooks، كما ذكرت.
سيجعلك قريبًا جدًا.
ولكن إذا أردت تجربة استخدام على مستوى الكمبيوتر المكتبي، تجربة رائعة حقًا، فهناك بعض الأشياء التي نوصي بالقيام بها.
أولاً، يجب أن تكون لوحة المفاتيح هي الأولوية.
لن يكون المستخدمون حساسين للمس كما هو الحال على جهاز لوحي أو هاتف عادي، كما أن وجود اختصارات لوحة المفاتيح وطريقة سهلة للوصول إلى قائمة اختصارات Android أمر مهم للغاية.
بعد ذلك، يمكنك أحيانًا تصميم ميزاتك بحيث يتم تخطيطها بشكل مختلف اعتمادًا على نوع الجهاز والأجهزة الطرفية للإدخال المتاحة.
عندما نرصد جهازًا مثل كمبيوتر محمول مزوّد بلوحة مفاتيح أو ماوس، نقدّم واجهة مستخدم مختلفة قليلاً على الشاشة الرئيسية، بحيث تتم إعادة توجيه المستخدمين إلى الأدوات التي نعتقد أنّ هذا النوع من المستخدمين يفضّلها على جهاز مثل الجهاز اللوحي، حيث يكون قلم الشاشة وملاحظات القلم المكتوبة بخط اليد تلقائيًا هما الخيار الأساسي.
الشيء الآخر الذي تريد البدء في التفكير فيه هو كيفية تفاعل العديد من الأجهزة المختلفة.
لذا، فإنّ ميزة "المتابعة على" هي ميزة جديدة في Android 17 تتيح لك نقل تطبيقك بسلاسة من جهاز إلى آخر.
في هذا المثال، ننقل ملاحظة من هاتفك إلى جهاز الكمبيوتر المكتبي الأكبر حجمًا.
ويمكن إجراء ذلك بسهولة من خلال مزامنة سريعة لرقم تعريف الملاحظة والاطّلاع سريعًا على مستوى تقدّمك من جانبنا.
لذا، من السهل جدًا إرسال طلب سريع إلى جهاز Googlebook، ثم المتابعة من حيث توقفت.
هناك أمر آخر يجب مراعاته في الأجهزة من فئة الكمبيوتر المكتبي، وهو نماذج الدعم المتعددة الإدخال.
لذلك، لن يكون لديك أشياء مثل اختصارات لوحة المفاتيح فحسب، كما ذكرنا سابقًا، بل سيكون لديك لوحات تتبع بأنواع مختلفة من سلوكيات التكبير والتمرير عما قد يكون لديك من قبل.
ستظهر لك أيضًا قوائم النقر بزر الماوس الأيمن التي قد تحتاج إلى إتاحتها للمستخدمين الذين لم يكونوا متاحين من قبل.
بالإضافة إلى ذلك، بما أنّ الكثير من أجهزة Googlebook لا تزال أجهزة تعمل باللمس، عليك التأكّد من أنّه عندما يتفاعل المستخدم مع هذا الجهاز، يكون لديك طريقة مختلفة للتعرّف على الإدخال ليس فقط للقلم والإصبع، ولكن أيضًا لمؤشر لوحة اللمس، لأنّه يجب التعامل مع الثلاثة بشكل مختلف.
إذا كنت مهتمًا بالكتابة بالحبر وتدوين الملاحظات مثل Notability، ننصحك باستخدام Jetpack Ink.
لذلك، نستخدم هذه الميزة لتوفير نظام إنشاء بزمن انتقال منخفض للحبر بدون الحاجة إلى إدارة حزمة كبيرة ومعقدة من سلاسل المحادثات والعرض وقارئات المخزن المؤقت وأشياء مختلفة سأعرضها لك لاحقًا.
ولكن إذا كان يعمل الآن، فيمكنني في الواقع، بفضل Logitech، أن أعرض لكم عرضًا توضيحيًا مباشرًا لتطبيق Notability.
نعم، ممتاز.
هيا، أسرِع.
ها نحن ذا، ممتاز.
لذا، هناك اختباري من وقت سابق.
ولكن كما ترون، أنا أستخدم إصبعي، لذا يتعرّف الجهاز على الإدخال بالإصبع، وهذا أمر رائع.
يمكنني أيضًا استخدام الماوس إذا أردت.
ولكن تمكّنا من إنشاء بعض الفُرش المخصّصة والحصرية لأجهزة Android في الوقت الحالي.
كما ترون هنا، لقد اخترت تأثير قوس قزح واللمعان، لذا ستتأثر تأثيرات الإدخال أو الحبر بمكتبة Jetpack Ink في الأسفل.
لذا، اسمحوا لي أن أكتب رسالتي مرة أخرى.
مرحبًا.
بعد ذلك، لنختَر اللون الأخضر الخاص بنظام Android للجزء الأخير هنا.
من الصعب لمسها بشكل صحيح.
ها نحن ذا، Android باللون الأخضر.
بعد ذلك، يمكننا أن نرى أنّ الألوان الفعلية تتغيّر حسب اللون الذي اخترته كنموذج أساسي هنا.
رائع، أحسنت.
في السابق، كان إنشاء هذا النوع من الفُرش يستغرق شهورًا للحصول على جميع أدوات التظليل المخصّصة والواجهة وكل شيء بشكل صحيح ومظهر جيد.
بفضل Jetpack Ink، يمكن الآن إنجاز هذه المهمة في أقل من أسبوع باستخدام الذكاء الاصطناعي وأداة إنشاء الفُرش المخصّصة.
لذا، إذا كنت تبحث عن أي نوع من أنواع الحبر، يُرجى إعلامهم بذلك.
إنّها واجهة برمجة تطبيقات رائعة وفّرت لنا الكثير من الوقت.
ممتاز
وهنا كما ذكرت سابقًا، هذا هو الشكل الذي يبدو عليه ذلك.
لذلك لدينا ما يُسمّى طبقة الحبر الرطب.
هذا هو الحبر الذي يتم استخدامه، ولا يزال يتم رسمه، ويجب أن يكون سريع الاستجابة للغاية، كما تعلم، مقارنة بطبقة الحبر الجاف.
هذا منطقي من منظور مادي، ويمكنك التفكير في ذلك.
هذا هو الحبر المحفوظ، وقد انتهى بالفعل.
لذلك كانت عملية التسليم تقع على عاتقنا بالكامل.
لذلك كان علينا إجراء هذا الترابط، وكان علينا إعادة الرسم والتنظيف، وكان علينا تسليمه إلى طبقة جافة والتأكد من مزامنتها وعدم وميضها، وكانت هناك كل هذه التعقيدات.
وفي النهاية، كان علينا تطبيق ما يميّز Notability، أليس كذلك؟
لدينا نماذجنا الخاصة لملاءمة المنحنيات، ولدينا طرق تجعل خط يدك يبرز حقًا.
هذا هو النموذج القديم.
بفضل Jetpack Ink، كل ما علينا فعله هو إدخال منحنى الملاءمة في عرض أشكال التقدم المخصصة، وسيعمل كل شيء بطريقة سحرية على Android على الفور.
الأمر الآخر الذي نفكّر فيه، أثناء مناقشة كل من Jetpack Ink ومكتبات Google الأخرى، هو KMP.
لذا، بدأنا بالاطّلاع على رمز iOS الذي تم إنشاؤه مسبقًا، وفكّرنا في أنّه "من الأفضل مشاركة بعض المنطق بين Android وiOS.
لدينا نماذج وتغييرات وعمليات حسابية معقّدة.
ومن المنطقي مشاركتها".
وقلنا: "لغة C++، ولغة Objective-C من Apple، لنستخدمهما".
تبيّن لنا أنّ Kotlin Multiplatform لم تكن أسهل في التنفيذ لمهندسي iOS فحسب، بل كانت أسرع أيضًا.
لم نحصل على أداء أفضل من استخدام Kotlin فحسب، بل تمكّنا من نسخ الكثير من رموز Android البرمجية، وكان الأمر أسهل بالنسبة إلى iOS على المدى الطويل أيضًا.
لذا، إذا أردت مشاركة الرمز البرمجي، أنصحك بالاطّلاع على Kotlin Multiplatform.
في الوقت الحالي، ما زلنا في مرحلة تقييمها.
لا يتم، كما تعلمون، دعمه بنسبة %100 أو أي شيء من هذا القبيل حتى الآن، كما تعلمون، فإنّ نماذج الذكاء الاصطناعي المختلفة تجعل من السهل الآن الغش من خلال وجود رمز برمجي في أماكن متعددة، ولكنّه لا يزال أمرًا نحقق فيه بنشاط كبير، وأنا أقدّره بشدة.
والآن، لنتعرّف على بعض الميزات الخاصة التي يوفّرها تطبيق Notability فقط.
إذا حاولت إنشاء محرِّر نصوص يعمل على Android، ستلاحظ أنّه لا توجد طريقة جيدة لإنشاء محرِّر نصوص للمستندات الكبيرة في الوقت الحالي.
في نظام Android الأساسي، كما تعلمون، حقول الإدخال القابلة للتعديل هي عبارة عن واجهات مستخدم صغيرة، مثل EditTexts الصغيرة، والأشياء القصيرة.
ما انتهى بنا الأمر إلى إنشائه هو هذا النظام المعقد للغاية الذي يعتمد بشكل أساسي على واجهات برمجة تطبيقات Android الحالية، ولكنه قادر بعد ذلك على التعامل مع مستندات أكبر بكثير، كما تعلم، آلاف وآلاف الصفحات من النصوص، كل ذلك في نفس الوقت، والتي يمكن تحريرها بشكل مشترك، بحيث يمكنك أن يكون لديك مستخدم في مكان آخر يقوم بتحرير 500 صفحة بعيدًا عنك، مما يتسبب في تحولات تؤثر على عملك أثناء تقدمك.
والطريقة التي وجدناها للقيام بذلك هي في الأساس أن ضغطات المفاتيح لدينا تسلك مسارين.
لذا، هناك المسار الأول، وهو، مرحبًا، هذا هو أفضل جهد لدينا، يجب أن يظهر هذا المفتاح، كما تعلم، هنا.
نعتقد أنّ هذا جيد، استنادًا إلى كل ما يمكننا معرفته الآن من خلال شكل كل شيء في الأسفل.
وبعد ذلك، نجري مزامنة سريعة، أليس كذلك؟
ننتقل إلى الخلفية، ونتحقّق من المشغّلين المشاركين، ونسألهم: "هل كل شيء على ما يرام؟
هل هذا منطقي؟
هل نحن متفقون؟"
وإذا كان لا بد من تغيير الأمور، فإنه يعيد التعديل في تلك المرحلة.
يمكنك تخيل أنه إذا كان هناك مستخدمان على نفس الخط يضغطان على المفاتيح، فسيكون هناك القليل من التشويش حول من يحصل على ماذا.
ولكن في معظم الأحيان، تعمل هذه الطريقة بشكل جيد.
أذكر ذلك هنا لأنّنا بذلنا مجهودًا كبيرًا في هذا الصدد، ونفكّر في جعله برنامجًا مفتوح المصدر.
لذا، إذا أراد أي شخص في هذا المؤتمر أو على الإنترنت في المستقبل التعاون في هذا الشأن، ويعتقد أنّ هذه فكرة جيدة، يُرجى إعلامنا بذلك.
نحن نناقش ما إذا كان الأمر يستحق حقًا بذل الجهد للاستثمار فيه، ولكن كما تعلم، لقد كان ذلك جهدًا كبيرًا من جانبنا، ونحن فخورون جدًا بالنتائج.
حسنًا، هذه هي طريقة عمل الحبر.
لذا، من حيث نموذج التعاون، هذا أكثر قليلاً من كيفية عمله من جانبنا.
كما ترون هنا، هناك ثلاث خطوات.
هناك حدث اللمس، حيث نقول، "مرحبًا، بالمناسبة، نحن نبدأ حدث حبر" لأي من أجهزتنا المتصلة، لذلك في هذه الحالة، إنه جهاز iPad.
ثم هناك الرسم الفعلي، لذلك يمكن أن يكون هناك واحد إلى الملايين من هذه اعتمادًا على المدة التي يحتفظ فيها المستخدم بجهازه، كما تعلم، قلمهم يدور.
آمل ألا يستغرق ذلك وقتًا طويلاً.
أعتقد أنّ هناك حدًّا أقصى في مرحلة ما، ولكن بالنسبة إلى حالات الاستخدام العادية، لا بأس بذلك.
وهناك أيضًا حدث رفع.
لذا، فإنّ الطريقة التي نتبعها لإدارة ذلك هي أنّنا نستخدم عنصرًا مؤقتًا نحتفظ به في نموذجنا.
هذا يعني أنّه على جهاز iPad، نقول: "حسنًا، هناك نوع من السكتة الدماغية قادمة، ولكنّها لم تحدث بعد.
لا يمكننا التفاعل معها.
إنّها مؤقتة".
وعندما يتم إطلاق حدث الانتهاء، ننتقل إلى الخطوة التالية ونقول: "حسنًا،
والآن، استبدِل كل ذلك بعنصر واحد يمكن لنظام التشغيل iOS أو أي عملاء آخرين الحصول عليه والتفاعل معه".
وهذا أيضًا أمر نخطط لجعله مفتوح المصدر بعض الشيء.
هذا، كما تعلمون، ليس حبرنا المباشر، ولكن بعض الأشياء العابرة، خاصة في طبقة النص.
رائع.
وبعد ذلك، نعم.
إليك بعض الميزات الأخرى التي ننصحك باستخدامها.
الذكاء الاصطناعي على الجهاز فقط رائع.
نستخدمها لمسح المستندات ضوئيًا، حتى تتمكن من مسح المستندات ضوئيًا، ويمكنك تحليل نصوص PDF، ويمكنك إجراء بعض التعرف على الكتابة اليدوية.
نستخدم أيضًا نماذج الذكاء الاصطناعي السحابية المفتوحة، مثل Gemini، للمساعدة في إنشاء "الملاحظات الذكية"، حيث يتم تصنيف ملاحظات المستخدمين وتلخيصها ثم إرسالها إليهم بطرق أفضل وأكثر تفاعلية لنموذج التعلّم.
كل هذه الميزات تجعل Notability يبدو كتطبيق للكمبيوتر المحمول، أليس كذلك؟
هذا هو الهدف في نهاية المطاف.
لدينا كل هذه النماذج المختلفة والمثيرة للاهتمام، والأشياء المختلفة، والنصوص التي تعرفها، والمدخلات، ولكن الشيء الكبير هو هل يبدو هذا وكأنه تطبيق كمبيوتر محمول، أم يبدو وكأنك قمت بفتح تطبيق هاتف على شاشتك الكبيرة وأنت نوعًا ما تعبث به؟
لوحة المفاتيح ولوحة اللمس وقلم الشاشة وتغيير حجم النافذة، كل هذه ميزات رئيسية يجب ضبطها بشكل صحيح للتأكّد من أنّها تمنح المستخدمين تجربة رائعة.
ولكن كما ذكرتُ سابقًا، فإنّ Jetpack Compose وNavigation 3 والتصميم المتعدد الأبعاد يغطّي كل ذلك.
لذا، لن يتطلّب الأمر مجهودًا كبيرًا إذا اتّبعت الخطوات الصحيحة.
من السهل جدًا الوصول إلى هنا.
هذا صحيح.
هذه هي النقاط الرئيسية التي يمكن استخلاصها.
عند التفكير في مستقبل Android، لا يجب التركيز على الأجهزة بعد الآن.
لا أفكّر في أنّ هذا هاتف، وهذا جهاز قابل للطي، وهذا جهاز XR، وهذا كمبيوتر مكتبي أو كمبيوتر محمول، أو جهاز لوحي، أو سيارة، أو تلفزيون.
بدلاً من ذلك، ما هو حجم الشاشة المتاح لي، وما هي نماذج الإدخال المتاحة للمستخدمين؟
لنقدّم أفضل تجربة ممكنة للمستخدمين في المستقبل.
كما ذكرتُ سابقًا في الشريحة الأخيرة، يسهّل Compose وNav 3 توفير كل ذلك.
وتطرح Google كل يوم واجهات برمجة تطبيقات جديدة وفعّالة حقًا، مثل Jetpack Ink أو Gemini على الجهاز فقط أو جميع أنواع الميزات التي تسهّل عليك إنشاء تجاربك الأساسية، ثم التركيز على الميزة السحرية التي تجعلك فريدًا.
حسنًا
هذا كل شيء.
شكرًا جزيلاً.
هذا ما أردت قوله.
سأكون متاحًا لاحقًا إذا كانت لديك أسئلة، أو يمكنك التواصل مع Notability.
تم إطلاق التطبيق على Android قبل شهرين تقريبًا.
وأخيرًا، خرجنا من المرحلة التجريبية.
لذا، لا تتردد في تجربتها.
أرسِل إلينا ملاحظاتك.
وهي متوفرة في Googlebooks في عملية العرض التوضيحي خلفك أيضًا.
والآن، سأترك الكلمة لـ "جو" من Logitech للمتابعة.
شكرًا لك.
حسنًا.
شكرًا، ريان.
اليوم، حسنًا، عذرًا.
لننتقل إلى الشريحة التالية.
شكرًا، ريان.
واليوم، سأشارك معكم كيف أتحنا تطبيق Options+، وهو تطبيق لتخصيص الأجهزة الملحقة، على أجهزة Chromebook.
وماذا يعني إنشاء تجربة محيطية؟
سأتناول ما أنشأناه، وبعض النقاط الهندسية البارزة وراءه، ولا توجد نقاط ضعف، وإلى أين نتجه بعد ذلك.
في السابق، كانت أجهزة Logitech متوافقة مع Android، ووجد معظم المستخدمين أنّ الأجهزة الملحقة تحسّن من سهولة الاستخدام، خاصةً مع أجهزة الكمبيوتر المحمولة المميّزة والهواتف المتصلة بشاشات خارجية.
بالحديث عن ذلك، رأيتُ في وقت سابق في الطابق السفلي في جناح Googlebook التجريبي، أنّهم ربطوا ناقل حركة تسلسليًا للألعاب من Logitech بالطاولة، واستخدموه للتبديل بين الشاشات المختلفة على الجهاز اللوحي.
إليك ما طلبته.
هذه إحدى طرق استخدامها.
بالمناسبة، اضطرت شركة "فيراري" إلى فرض رسوم إضافية بقيمة 50,000 يورو مقابل ناقل الحركة المتسلسل، على أي حال.
أجل
في ما يتعلّق بـ Googlebook، كما ذكر "رايان" بشكل شامل، لدينا مساحة أكبر للعمل.
كما ترون، يمكنكم تغيير حجم الشاشات أو استخدام الوضع الأفقي أو العمودي أو المربّع، إذا أردتم، وستتوفّر لكم مساحة أكبر للعمل بين التطبيقات.
يمكنك مواصلة العمل على تطبيقات مختلفة، وتغيير السياق، وكل هذه الأمور.
وقد غيّر ذلك بالتأكيد تصميم التطبيقات، ويجب أن تظل التنسيقات مفيدة طوال الإجراءات.
بالنسبة إلينا في Logitech، يبدو هذا مثيرًا للاهتمام بشكل خاص لأنّنا شركة لديها خبرة كبيرة في الأجهزة الملحقة، أليس كذلك؟
نحن نضع أسسًا متينة جدًا لهذا العمل.
لذا، من وجهة نظرنا، بالنسبة لهذا النوع من بيئة العمل، فإن الماوس أو لوحة المفاتيح هي الطريقة التي يتفاعل بها المستخدم طوال يوم العمل.
ويمكنهم الدخول بسلاسة إلى سير العمل.
وأعتقد أنّه ليس من المبالغة القول إنّ Logitech لديها عقود من الخبرة في هذا المجال.
أعتقد أنّنا احتفلنا بالذكرى السنوية الـ 45 في وقت سابق من هذا الشهر.
وأعتقد أنّنا بدأنا في تصنيع الفأرة منذ اليوم الثاني من العام الثاني لتأسيس Logitech.
لذلك، مع هذا النوع من الخبرة، ونحن واثقون جدًا من الدخول في هذا المجال.
والأفضل من ذلك أنّ لدينا إرثًا رائعًا مع ChromeOS.
لقد ضمنا في السابق توافقًا ممتازًا مع ChromeOS.
بعد أن ذكرنا كل ذلك، لدينا تجربة عملية جيدة جدًا في كسر الحدود بين الأجهزة التي نصنعها والبرامج التي ننشئها، ثم المنصة ونظام التشغيل Googlebooks.
لذا، يمكن أن يكون المثال بسيطًا مثل، يضغط المستخدم على زر ويرى نتائج يمكن التنبؤ بها.
يبدو الأمر وكأنّه شيء يعتبره الجميع أمرًا مسلّمًا به.
لكنها تتطلب في الواقع توافقًا سلسًا بين المكونات.
بالإضافة إلى ذلك، يحب الجميع التوافق مع أجهزتهم الملحقة.
على سبيل المثال، ضبط حساسية المستشعرات بشكل صحيح.
65، لا أكثر ولا أقل.
لذا، تتطلّب هذه الأمور كلها تكاملاً سلسًا للتوافق بينها.
والآن، مع إطلاق أجهزة Googlebook، نقدّم تطبيق Options+ لأجهزة Googlebook.
لذا، في الوقت الحالي، نتيح استخدام مجموعة من أجهزة الماوس ولوحات المفاتيح، وسنضيف المزيد منها قريبًا.
وهذا أيضًا مكان نسمح فيه للمستخدم بضبط أجهزته.
وكما ذكرتُ سابقًا، مثل الحساسية، وكل هذه الأمور.
الآن، إليكم المشهد المثير للاهتمام.
عندما نتحدث عن قابلية الضبط، فإننا نتحدث في الواقع عن جانبين.
الجانب الأول هو جانب الأجهزة والبرامج الثابتة، حيث يتم تنفيذ الميزات في برامجنا الثابتة.
الجانب الآخر هو في الواقع النقطة الرئيسية في هذا العرض التوضيحي وهذا العرض التقديمي هو جانب نظام التشغيل.
أعتقد أنّ الجميع هنا يعرفون أنّ أجهزة Android ومعظم التطبيقات كانت تعمل في السابق في وضع الحماية الخاص بها، أي مساحات المستخدمين.
هناك قيود معينة على ما يمكنك القيام به وفي كثير من الحالات، ما لا يمكنك القيام به وما تريده.
بالنسبة إلينا، هذا أمر مهم للغاية.
إليكم لقطة شاشة، وسنقدّم عرضًا توضيحيًا لاحقًا، ولكن إليكم لقطة الشاشة هذه.
لدينا ماوس هنا، MX Master 4، ولدينا الكثير من الوظائف هنا.
وبالنسبة إلى الأشخاص الذين يعرفون عالم الأجهزة الملحقة، يمكنكم التعرّف على ميزات معيّنة تم تنفيذها بشكل كبير في البرامج الثابتة وميزات الأجهزة.
وبعضها الآخر بالتأكيد لا.
بالنسبة إلينا، نحاول أن نتيح للمستخدم إمكانية ضبط كلا الجانبين.
وتتمثل مهمتنا في الأساس في جعل هذه الخيارات مفهومة، وتوفير الإمكانات الكاملة للمستخدم، وضبط هذه الإعدادات بشكل صحيح في نظام التشغيل والبرامج الثابتة.
لنلقِ نظرة معًا على هذا العرض التوضيحي.
كان هذا عرضًا توضيحيًا رائعًا للغاية.
لكن في المرة القادمة، يا ريان، استخدم الماوس.
حسنًا، لنبدأ.
إليك شاشة جهازي.
كما ترون، لديّ ماوس MX Master 4 متصل، هذا الماوس.
لِنبدأ الآن.
سننتقل مباشرةً إلى شاشة الإعدادات، كما رأيتم سابقًا، وهنا يحدث السحر.
لنبدأ الآن بتخصيص ميزة "دائرة البحث" لزر الإبهام.
بعد ذلك، لنضع "المؤشّر السحري" في زر الميزة.
والآن، لنبدأ.
لنفتح متصفّحًا.
تعال إلى هنا.
هنا، أضغط على زر الإبهام الذي خصّصته للتو لميزة "دائرة البحث".
كما ترون، أرسم دائرة حول لوحة مفاتيح.
رائع!
تعرض Google المعلومات المتعلّقة بلوحة المفاتيح هذه.
إنّها ميزة مفيدة وسلسة للغاية.
والآن، لنجرّب شيئًا مختلفًا.
عذرًا.
لنرجع إلى الوراء.
لنجرّب ميزة "المؤشّر السحري".
هنا، لنبدّل هذا.
ويمكنني الضغط على زر الميزة، ووضع علامة على هذا، وأضغط على "ما هذا الجهاز؟"
وهذا كل ما في الأمر.
يبدأ Google في إجراء البحث وعرض النتائج.
لذا، فإن الشيء الجميل في هذا هو أنك تدمج سير العمل بأكمله في عملية واحدة فقط.
يمكنك تعيين الميزات مسبقًا، والضغط، ووضع دائرة، والنقر، وبذلك تكون قد انتهيت.
لذلك، نعتقد أنّ هذا النوع من العمليات سيؤدي إلى تحسين إمكانية وصول المستخدمين إلى المحتوى وطريقة عملهم بشكل كبير.
لنعد الآن إلى الشرائح.
لذا قد تسأل عن سبب حدوث ذلك الشيء.
لأنّ العديد من المهام في الماضي لم يكن من الممكن إنجازها من خلال التطبيقات.
إليكم واجهة برمجة التطبيقات لتخصيص الأجهزة الملحقة، وهي متاحة على كل من أجهزة Googlebook وأجهزة Android.
ومع ذلك، إليك الملاحظات من Google.
في الوقت الحالي، لا يمكن استخدام واجهة برمجة التطبيقات هذه إلا من خلال قائمة مسموح بها.
ولكن من المقرّر طرحه مع تحديثات 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، سيُرسل نظام التشغيل إشعارًا عاديًا لإعلامك بأنّ لديك تطبيقًا لهذا الجهاز.
أخبِر المستخدم بذلك.
وبعد النقر عليه، سيتم نقلك إلى "متجر Google 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)