Kỹ sư quan hệ với nhà phát triển
Sự ra mắt của Googlebook mở ra một chân trời mới cho trải nghiệm có độ chân thực cao, cấp độ máy tính. Trong phiên này, chúng ta sẽ cùng tìm hiểu về hai đối tác tiên phong đã xây dựng ứng dụng cho nền tảng này từ đầu.
Notability sẽ chia sẻ hành trình tạo ứng dụng Android cấp máy tính bằng Jetpack Compose. Tìm hiểu về hành trình chuyển đổi từ các nền tảng ứng dụng khác sang nền tảng ưu tiên máy tính. Tiếp theo, Logitech sẽ đi sâu vào khía cạnh phần cứng, thảo luận về cách họ xây dựng và tuỳ chỉnh các thiết bị ngoại vi để tích hợp liền mạch với Googlebook. Hãy tham gia phiên này để có được thông tin chi tiết thực tế về cách tối ưu hoá phương thức nhập, tận dụng API màn hình lớn và mang lại trải nghiệm người dùng cao cấp, gắn kết trên cả phần cứng và phần mềm.
Bản chép lời
Xin chào, tôi là Emilie Roberts, một người hỗ trợ nhà phát triển đã làm việc với các ứng dụng Android trên máy tính xách tay được khoảng 9 năm.
Và sự kiện ra mắt Googlebook đã diễn ra.
Thật tuyệt vời!
Tôi rất hào hứng với những cải tiến mà chúng tôi đang mang đến cho lĩnh vực máy tính xách tay.
Và tôi rất vui khi được đứng trên sân khấu này cùng hai nhà phát triển đã thực sự đầu tư để làm cho ứng dụng của họ trông thật đẹp mắt trên Googlebook.
Chào bạn!
Tôi là Ryan, đại diện cho Notability.
Tôi là người quản lý Android và đây là một ứng dụng sổ ghi chú kỹ thuật số mà chúng tôi vừa ra mắt trên Android.
Tính năng này cũng có trên iOS, máy tính và giờ đây là Google Sách.
Chào bạn.
Tôi là Joe, đại diện cho Logitech, một công ty nổi tiếng với các thiết bị phần cứng và thiết bị ngoại vi chất lượng cao.
Tôi cũng sẽ nói về cách chúng tôi đưa các tính năng này lên nền tảng mới.
Tôi sẽ đẩy chúng qua.
Và thế là Google Sách ra đời.
Thật tuyệt vời!
Thật tuyệt vời!
Thật tuyệt vời!
Tôi hy vọng bạn đã có cơ hội thử nghiệm các tính năng này, dù là tự mình thử hay chọn một tính năng ở tầng trên hoặc tầng dưới tại gian hàng minh hoạ.
Và tất nhiên, đừng quên kiểm tra giao diện của ứng dụng trên các thiết bị đó.
Tôi sẽ nói về chủ đề quen thuộc của mình, đó là hệ sinh thái Android đang phát triển.
Tôi đã nói điều đó trong 9 năm qua và điều đó vẫn đúng.
Và các ứng dụng cần phát triển để đảm bảo bạn đáp ứng nhu cầu của người dùng trên tất cả các kích thước màn hình và thiết bị đó.
Việc có một bố cục ứng dụng hoạt động hiệu quả và ổn định là một phương pháp tiêu chuẩn tại thời điểm này.
Và cách tốt nhất để làm việc đó là sử dụng Jetpack Compose và Navigation 3.
Và đầu vào cũng vậy.
Nó sẽ hoạt động bình thường.
Và tất nhiên, kiến trúc và quản lý trạng thái của ứng dụng đều là một phần của bố cục và dữ liệu đầu vào.
Chúng tôi cũng có một loạt bài nói chuyện tại ADS về cách thực hiện việc đó bằng các công cụ mới nhất và các phương pháp hay nhất.
Tuy nhiên, hôm nay, chúng tôi nghĩ rằng đây sẽ là cơ hội tuyệt vời để dành một chút thời gian cho những nhà phát triển đã xây dựng ứng dụng cho Googlebook ngay từ đầu và lắng nghe câu chuyện của họ.
Notability là một ứng dụng ghi chú mạnh mẽ được thiết kế riêng cho Chromebook.
Logitech không chỉ đảm bảo bàn phím, chuột và các thiết bị ngoại vi khác hoạt động tốt mà còn hoạt động cực kỳ hiệu quả trên Chromebook, bao gồm cả khả năng tuỳ chỉnh của người dùng.
Xin lỗi vì đã cướp lời của anh, Joe, nhưng chúng ta sẽ đi vào chi tiết.
Vậy là đủ cho tôi rồi.
Rất tiếc, lần này không có bài rap nào.
Và chắc chắn là không còn kiểu tự do nữa.
Dù sao thì chúng tôi cũng rất vui khi có Notability trên Chromebook, và giờ tôi sẽ chuyển lời cho Ryan.
Cảm ơn bạn.
Tuyệt vời.
Cảm ơn em rất nhiều.
Chúng tôi rất vui khi được có mặt trên Google Sách.
Notability là nơi hàng triệu học sinh đang học tập và các chuyên gia ghi chú.
Như tôi đã đề cập trước đó, tính năng này hiện đã có trên Android và tôi sẽ nói nhanh về cách chúng tôi xây dựng tính năng này cũng như cách xây dựng cho Android một cách chính xác thực sự giúp xây dựng khá gần với Googlebooks một cách tối ưu ngay từ đầu.
Khi bắt đầu dự án này khoảng hai năm trước, chúng tôi thực sự muốn đảm bảo rằng chúng tôi không chỉ chuyển ứng dụng iOS của mình sang Android rồi cung cấp cho người dùng và cho rằng như vậy là đủ.
Chúng tôi muốn một thứ gì đó thực sự đáp ứng được kỳ vọng của người dùng, nhưng vẫn cung cấp đầy đủ tính năng.
Để đạt được điều đó, chúng tôi đã sử dụng Material Design và các thành phần để tuỳ chỉnh tất cả màn hình từ đầu.
Và chúng tôi đảm bảo rằng chúng tôi đang sử dụng Jetpack Compose.
Là một ứng dụng Android gốc hoàn toàn dựa trên Jetpack Compose, chúng tôi có thể hỗ trợ nhiều loại phần cứng, không chỉ điện thoại nhỏ và thiết bị cấp thấp, mà còn cả máy tính bảng cao cấp, mạnh mẽ có màn hình lớn, máy tính, XR, ô tô và mọi thiết bị khác.
Jetpack Compose giúp bạn dễ dàng hỗ trợ các tính năng này một cách tự nhiên mà không cần phải xây dựng nhiều tính năng bổ sung trong giao diện người dùng.
Tiếp theo là Notability.
Mọi thứ trong Notability đều được xây dựng trên Jetpack Compose.
Giao diện người dùng nhất quán trên toàn bộ nền tảng và về cơ bản, tất cả đều được xây dựng một lần mà không có thay đổi thực sự nào giữa nội dung hiển thị trên điện thoại và nội dung cuối cùng hiển thị trên các thiết bị lớn hơn, chẳng hạn như máy tính bảng và Googlebook.
Để làm được điều này, Navigation 3 là một bước tiến lớn đối với chúng tôi.
Cách Navigation 3 hoạt động trong Notability tích hợp sẵn của Google là dựa trên kích thước màn hình, chúng tôi thực sự có thể tuỳ chỉnh bố cục mà không cần lo lắng về cách trình bày tính năng này.
Trong bản minh hoạ này, bạn có thể thấy nếu có không gian để mở bảng điều khiển bên, thì bảng điều khiển bên sẽ mở.
Tuy nhiên, nếu không, trang này sẽ chỉ bật lên dưới dạng một bảng dưới cùng.
Vậy, mã sẽ trông như thế nào?
Trong đoạn mã ở đây, bạn có thể thấy có một điểm truy cập cho bảng tóm tắt thực tế ở bên cạnh và chúng ta sẽ thêm điểm truy cập đó vào ngăn xếp lui.
Sau đó, chiến lược cảnh tuỳ chỉnh của chúng tôi sẽ chọn một bố cục cho bảng điều khiển bên đó, tuỳ thuộc vào việc có không gian hay không.
Vì vậy, trên máy tính bảng hoặc thiết bị Googlebook, ứng dụng sẽ tìm không gian có sẵn, tạo không gian và chỉ cần trượt bảng điều khiển đó từ phía bên phải.
Tuy nhiên, trên một thiết bị như điện thoại hoặc thiết bị gập, có thể không có đủ không gian để hiển thị đúng cách bảng điều khiển đó, vì vậy, bảng điều khiển đó sẽ bật lên dưới dạng một bảng dưới cùng thay vào đó.
Vì Notability thích ứng với kích thước của cửa sổ thay vì lo lắng về loại thiết bị, điện thoại, Googlebook, máy tính bảng, thiết bị có thể gập lại, bất kể là gì, nên giao diện người dùng của chúng tôi thực sự dễ dàng tự động thích ứng với những gì người dùng cần.
Như bạn có thể thấy trên điện thoại, tất cả các nút và công cụ đều được đặt lại vị trí để ngón tay cái dễ dàng chạm tới.
Trên máy tính bảng, chúng tôi có các bảng điều hướng hiển thị bên cạnh tất cả nội dung chính vì bạn có nhiều không gian hơn và màn hình dễ tương tác hơn.
Trên thiết bị gập, chúng tôi tận dụng nếp gấp để cung cấp bố cục và giao diện người dùng độc đáo cho những tính năng như bài kiểm tra học tập, trong đó người dùng có thể xem câu trả lời ở nửa dưới và tiến trình làm bài kiểm tra thực tế ở nửa trên.
Và cuối cùng, trên Google Sách, chúng ta có thể đổi kích thước cửa sổ một cách mượt mà.
Vì vậy, giống như bất kỳ ứng dụng cửa sổ thông thường nào khác trên máy tính, Notability sẽ điều chỉnh khi bạn đổi kích thước cửa sổ cho phù hợp với mọi nhu cầu đặt cạnh nhau.
Như tôi đã đề cập, khi xây dựng Giao diện người dùng thích ứng, chúng tôi đã tạo ra một giao diện phù hợp với hầu hết trải nghiệm trên máy tính của Google Sách.
Nó sẽ giúp bạn tiến rất gần đến mục tiêu.
Nhưng nếu muốn có trải nghiệm như trên máy tính, một trải nghiệm thực sự vượt trội, thì bạn nên làm một số việc sau.
Trước tiên, hãy ưu tiên bàn phím.
Người dùng sẽ không nhạy cảm với thao tác chạm như trên thiết bị máy tính bảng hoặc điện thoại thông thường, và việc có phím tắt cũng như cách dễ dàng để truy cập vào danh sách phím tắt của Android là cực kỳ quan trọng.
Tiếp theo, đôi khi bạn có thể thiết kế các tính năng sao cho bố cục của chúng khác nhau tuỳ thuộc vào loại thiết bị và thiết bị ngoại vi đầu vào có sẵn.
Khi phát hiện thấy một thiết bị như máy tính xách tay có bàn phím hoặc chuột, chúng tôi sẽ cung cấp giao diện người dùng hơi khác trên màn hình chính để người dùng được chuyển hướng đến các công cụ mà chúng tôi cho rằng những người dùng đó sẽ thích hơn so với máy tính bảng, nơi bút cảm ứng và ghi chú viết tay tự động sẽ là lựa chọn chính.
Điều khác mà bạn cần bắt đầu suy nghĩ là cách nhiều thiết bị khác nhau tương tác.
Vì vậy, Tiếp tục là một tính năng mới trong Android 17, cho phép bạn chuyển ứng dụng một cách liền mạch từ thiết bị này sang thiết bị khác.
Vì vậy, trong ví dụ này, chúng ta sẽ chuyển một ghi chú từ điện thoại sang thiết bị máy tính lớn hơn.
Bạn có thể dễ dàng thực hiện việc này bằng cách đồng bộ hoá nhanh mã ghi chú và nhanh chóng xem tiến trình của bạn trên hệ thống của chúng tôi.
Vì vậy, chúng ta có thể dễ dàng gửi một ý định nhanh về ứng dụng đến thiết bị Googlebook, rồi tiếp tục ngay tại nơi bạn đã dừng lại.
Một điều khác cần cân nhắc đối với các thiết bị thuộc loại máy tính là các mô hình hỗ trợ nhiều phương thức nhập.
Vì vậy, bạn không chỉ có những thứ như phím tắt như đã đề cập trước đó, mà còn có bàn di chuột với các loại hành vi thu phóng và cuộn khác với trước đây.
Bạn cũng sẽ có trình đơn nhấp chuột phải mà có thể cần cung cấp cho những người dùng trước đây chưa có trình đơn này.
Ngoài ra, vì nhiều thiết bị Googlebook vẫn là thiết bị màn hình cảm ứng, nên bạn cần đảm bảo rằng khi người dùng tương tác với thiết bị đó, bạn có một phương thức nhận dạng hoạt động đầu vào khác không chỉ cho bút cảm ứng và ngón tay mà còn cho con trỏ bàn di chuột, vì cả ba đều cần được xử lý theo cách khác nhau.
Nếu bạn quan tâm đến mực và ghi chú như Notability, bạn nên sử dụng Jetpack Ink.
Vì vậy, chúng tôi sử dụng tính năng này để cung cấp một hệ thống xây dựng có độ trễ thấp cho mực mà không cần phải quản lý một ngăn xếp luồng, trình kết xuất, trình đọc vùng đệm và nhiều thứ khác mà tôi sẽ giới thiệu cho bạn sau.
Nhưng nếu nó hoạt động ngay bây giờ, tôi thực sự, nhờ Logitech, có thể cho các bạn xem bản minh hoạ trực tiếp của ứng dụng Notability.
Vâng, tuyệt vời.
Vậy nên, ôi, thôi nào.
Được rồi, hoàn hảo.
Đây là bài kiểm tra tôi đã tạo trước đó.
Nhưng như bạn có thể thấy, tôi đang dùng ngón tay, nên ở đây, ứng dụng vẫn nhận dạng được thao tác nhập bằng ngón tay, thật tuyệt.
Tôi cũng có thể dùng chuột nếu muốn.
Nhưng hiện tại, chúng tôi đã có thể tạo một số bút vẽ tuỳ chỉnh dành riêng cho Android.
Như bạn có thể thấy ở đây, tôi đã chọn hiệu ứng cầu vồng và lấp lánh này, nên hiệu ứng nhập hoặc hiệu ứng mực của chúng tôi sẽ chịu ảnh hưởng của thư viện Jetpack Ink bên dưới.
Vậy nên, tôi sẽ viết lại tin nhắn của mình một lần nữa.
Xin chào.
Sau đó, hãy chọn màu xanh lục của Android cho phần cuối cùng tại đây.
Khó chạm chính xác.
Được rồi, màu xanh lục của Android.
Sau đó, chúng ta có thể thấy màu sắc thực tế thay đổi tuỳ thuộc vào màu bạn chọn làm mô hình cơ sở tại đây.
Tuyệt vời!
Vì vậy, khi tạo loại bút vẽ này trước đây, chúng tôi có thể mất hàng tháng để có được tất cả các chương trình đổ bóng tuỳ chỉnh, giao diện và mọi thứ chính xác và đẹp mắt.
Giờ đây, nhờ có Jetpack Ink, quá trình này có thể chỉ mất chưa đến một tuần nhờ AI và trình tạo bút vẽ tuỳ chỉnh.
Vì vậy, nếu bạn đang tìm kiếm bất kỳ loại hình xăm nào, hãy cho họ biết.
Đây là một API tuyệt vời, giúp chúng tôi tiết kiệm rất nhiều thời gian.
Tuyệt vời!
Và như tôi đã đề cập trước đó, đây là hình ảnh minh hoạ.
Vì vậy, chúng tôi có một lớp mực ướt.
Đó là mực đang được vẽ, vẫn đang được vẽ, cần phải có độ phản hồi cực kỳ cao, bạn biết đấy, so với một lớp mực khô.
Bạn có thể hình dung điều này qua một vật thể vật lý.
Đó là nét vẽ đã lưu, đã hoàn tất.
Vì vậy, trước đây, chúng tôi phải tự mình thực hiện toàn bộ quy trình bàn giao.
Vì vậy, chúng tôi phải thực hiện việc phân luồng này, phải vẽ lại và dọn dẹp, phải chuyển giao cho một lớp khô và đảm bảo rằng các lớp đó được đồng bộ hoá và không bị nhấp nháy, và có tất cả những vấn đề phức tạp này.
Và cuối cùng, chúng tôi phải áp dụng những điểm độc đáo của Notability, đúng không?
Chúng tôi có các mô hình khớp đường cong riêng, có những cách thực sự làm nổi bật chữ viết tay của bạn.
Vì vậy, bạn biết đấy, đó là mô hình cũ.
Nhờ Jetpack Ink, tất cả những gì chúng tôi phải làm là đưa đường cong phù hợp vào chế độ xem hình dạng tiến trình tuỳ chỉnh của họ và mọi thứ đều hoạt động một cách kỳ diệu ngay lập tức trên Android.
Một điều khác mà chúng tôi đang cân nhắc khi thảo luận về cả Jetpack Ink và các thư viện khác của Google là KMP.
Vì vậy, đây thực sự là một điều mà chúng tôi bắt đầu xem xét mã iOS, vốn đã được xây dựng và tự nghĩ: "Được rồi, chúng tôi muốn chia sẻ một số logic giữa Android và iOS.
Chúng ta có mô hình, có thay đổi, có toán học phức tạp.
Việc chia sẻ là hợp lý."
Và chúng tôi nghĩ: "Này, C++, bạn biết đấy, Objective-C của Apple, hãy đi theo hướng đó".
Hoá ra, Kotlin Multiplatform không chỉ giúp các kỹ sư iOS của chúng tôi triển khai dễ dàng hơn mà còn nhanh hơn.
Vì vậy, chúng tôi không chỉ đạt được hiệu suất tốt hơn khi sử dụng Kotlin và có thể sao chép nhiều mã Android, mà về lâu dài, việc này cũng dễ dàng hơn cho iOS.
Vì vậy, nếu bạn muốn chia sẻ mã, tôi khuyên bạn nên tìm hiểu về Kotlin Multiplatform.
Hiện tại, chúng tôi vẫn đang trong quá trình đánh giá.
Như bạn biết, tính năng này chưa được hỗ trợ 100% vì các mô hình AI khác nhau hiện giúp việc gian lận trở nên dễ dàng hơn một chút khi chỉ cần có mã ở nhiều nơi, nhưng đây vẫn là điều mà chúng tôi đang tích cực điều tra và tôi đánh giá rất cao.
Giờ thì hãy cùng tìm hiểu một số tính năng đặc biệt chỉ có trên Notability.
Vì vậy, nếu từng thử xây dựng một trình chỉnh sửa văn bản hoạt động trên Android, bạn có thể nhận thấy rằng hiện tại không có cách nào thực sự hiệu quả để xây dựng một trình chỉnh sửa văn bản cho tài liệu lớn.
Android cơ bản, bạn biết đấy, các trường nhập dữ liệu chỉnh sửa đều là về giao diện người dùng nhỏ hơn, EditText nhỏ, những thứ dạng ngắn nhỏ.
Cuối cùng, chúng tôi phải xây dựng một hệ thống rất phức tạp, về cơ bản là nằm trên các API Android hiện có, nhưng sau đó có thể xử lý các tài liệu lớn hơn nhiều, bạn biết đấy, hàng nghìn trang văn bản, tất cả cùng một lúc, có thể được đồng chỉnh sửa, vì vậy, bạn có thể có một người dùng ở nơi khác đang chỉnh sửa cách bạn 500 trang, điều này gây ra những thay đổi, bạn biết đấy, ảnh hưởng đến công việc của bạn khi bạn đang làm.
Và cách chúng tôi tìm ra để làm điều đó về cơ bản là các lần gõ phím của chúng tôi đi theo hai đường dẫn.
Vì vậy, có cách đầu tiên, đó là, đây là nỗ lực tốt nhất của chúng tôi, khoá này sẽ xuất hiện, bạn biết đấy, ở đây.
Chúng tôi cho rằng đây là một dấu hiệu tốt, dựa trên mọi thông tin mà chúng tôi có thể biết được ngay lúc này về tình hình bên dưới.
Sau đó, chúng ta sẽ đồng bộ hoá nhanh, đúng không?
Chúng tôi đến văn phòng, kiểm tra các cộng sự, chúng tôi hỏi: "Mọi thứ ổn chứ?
Bạn có hiểu không?
Chúng ta có ổn không?"
Và nếu có thay đổi, thì hệ thống sẽ điều chỉnh lại tại thời điểm đó.
Bạn có thể hình dung nếu hai người dùng đang ở trên cùng một dòng và cùng nhấn phím, thì sẽ có một chút nhầm lẫn về việc ai nhận được gì.
Nhưng nhìn chung, cách này hoạt động rất hiệu quả.
Lý do tôi đề cập đến vấn đề này ở đây là vì chúng tôi đã đầu tư rất nhiều công sức vào việc này và đang cân nhắc việc biến nó thành nguồn mở.
Vì vậy, nếu có ai tại hội nghị này hoặc xem trực tuyến sau này muốn cộng tác về vấn đề này và cho rằng đây là một ý tưởng hay, hãy cho chúng tôi biết.
Chúng tôi đang cân nhắc xem có thực sự đáng để đầu tư công sức vào việc này hay không, nhưng bạn biết đấy, đây là một nỗ lực rất lớn của chúng tôi và chúng tôi khá tự hào về kết quả đạt được.
Được rồi, sau đây là cách hoạt động của mực.
Vì vậy, về mô hình cộng tác, đây là cách hoạt động trực tiếp hơn một chút về phía chúng tôi.
Như bạn thấy ở đây, có 3 bước.
Có sự kiện chạm xuống, trong đó chúng ta nói: "Này, nhân tiện, chúng ta đang bắt đầu một sự kiện viết tay" với bất kỳ thiết bị thông minh nào được kết nối, trong trường hợp này là iPad.
Sau đó là bản vẽ thực tế, vì vậy có thể có từ một đến hàng triệu bản vẽ này tuỳ thuộc vào thời gian người dùng giữ thiết bị, bạn biết đấy, bút của họ xoay tròn.
Hy vọng là không quá lâu.
Tôi nghĩ là có giới hạn, nhưng đối với các trường hợp sử dụng thông thường thì không sao.
Sau đó là sự kiện nhấc ngón tay lên.
Vì vậy, cách chúng tôi quản lý là chúng tôi thực sự có một đối tượng tạm thời mà chúng tôi giữ trong mô hình của mình.
Vì vậy, trên iPad, chúng tôi nói: "Được rồi, có một nét vẽ sắp xuất hiện nhưng chưa có ở đây.
Chúng tôi không thể tương tác với nội dung đó.
Nó chỉ tồn tại trong thời gian ngắn."
Và chỉ khi sự kiện kết thúc đó bắt đầu, chúng ta mới thực sự bắt đầu và nói: "Được rồi, tuyệt vời.
Giờ đây, hãy thay thế toàn bộ bằng một đối tượng mà iOS hoặc bất kỳ ứng dụng nào khác có thể lấy và tương tác."
Và chúng tôi cũng đang cân nhắc việc cung cấp một số mã nguồn mở.
Đây không phải là tính năng viết tay trực tiếp của chúng tôi, mà là một số nội dung tạm thời, đặc biệt là trong lớp văn bản.
Tuyệt vời.
Sau đó, đúng vậy.
Vì vậy, bạn nên sử dụng một số thành phần khác.
AI trên thiết bị là một lựa chọn tuyệt vời.
Chúng tôi sử dụng Gemini để quét tài liệu, nhờ đó bạn có thể quét tài liệu, phân tích văn bản PDF và nhận dạng chữ viết tay.
Chúng tôi cũng sử dụng các mô hình AI trên đám mây mở như Gemini để tạo Ghi chú thông minh, trong đó ghi chú của người dùng được phân loại, tóm tắt và sau đó được cung cấp lại cho họ theo những cách tốt hơn và mang tính tương tác cao hơn cho mô hình học tập.
Và tất cả những điều đó kết hợp lại thực sự khiến Notability có cảm giác như một ứng dụng trên máy tính xách tay, phải không?
Đó là mục tiêu cuối cùng.
Chúng tôi có tất cả những mô hình thú vị, những thứ khác nhau, văn bản, dữ liệu đầu vào, nhưng điều quan trọng là ứng dụng này có giống như một ứng dụng dành cho máy tính xách tay hay không, hay giống như bạn mở một ứng dụng dành cho điện thoại trên màn hình lớn và bạn đang loay hoay với ứng dụng đó?
Bàn phím, bàn di chuột, bút cảm ứng, tính năng đổi kích thước cửa sổ, tất cả đều là những tính năng chính cần được chú trọng để đảm bảo người dùng có trải nghiệm thực sự tốt.
Nhưng như tôi đã đề cập trước đó, Jetpack Compose, Navigation 3, Material Design, tất cả đều hỗ trợ việc này.
Vì vậy, bạn không cần phải nỗ lực quá nhiều nếu làm đúng cách.
Đến đây khá dễ dàng.
Vậy nên, đúng vậy.
Đó là những điểm chính cần ghi nhớ.
Khi nghĩ về Android trong tương lai, tôi sẽ không nghĩ về thiết bị nữa.
Tôi sẽ không nghĩ rằng, này, đây là điện thoại, đây là thiết bị có thể gập lại, đây là thiết bị XR, đây là máy tính để bàn hoặc máy tính xách tay, hoặc máy tính bảng, hoặc ô tô, hoặc TV.
Thay vào đó, bạn cần xem xét kích thước màn hình và phương thức nhập liệu mà người dùng có thể sử dụng.
Và hãy mang đến trải nghiệm tốt nhất có thể cho những người dùng trong tương lai.
Như tôi đã đề cập trong trang trình bày trước, Compose và Nav 3 thực sự giúp bạn dễ dàng hỗ trợ tất cả những điều đó.
Và hằng ngày, Google đều ra mắt các API mới, thực sự mạnh mẽ như Jetpack Ink hoặc Gemini trên thiết bị hoặc tất cả các loại API giúp bạn dễ dàng xây dựng trải nghiệm cốt lõi, sau đó tập trung vào yếu tố kỳ diệu giúp bạn trở nên độc đáo.
Được rồi.
Vậy đó.
Cảm ơn bạn rất nhiều.
Đó là nội dung tôi muốn chia sẻ.
Tôi sẽ có mặt sau nếu bạn có câu hỏi, hoặc bạn biết đấy, cứ thoải mái liên hệ với Notability.
Ứng dụng này mới ra mắt trên Android khoảng hai tháng trước.
Cuối cùng, chúng tôi đã ra mắt phiên bản chính thức.
Vì vậy, bạn cứ thoải mái thử nghiệm.
Gửi ý kiến phản hồi cho chúng tôi.
Bạn cũng có thể tìm thấy cuốn sách này trên Google Sách trong quá trình minh hoạ sau đây.
Giờ tôi xin nhường lại sân khấu cho Joe đến từ Logitech.
Cảm ơn bạn.
Được rồi.
Cảm ơn Ryan.
Hôm nay, được rồi, xin lỗi.
Hãy đưa trang trình bày của chúng ta vào, được rồi.
Cảm ơn Ryan.
Hôm nay, tôi sẽ chia sẻ cách chúng tôi đưa Options+ (một ứng dụng tuỳ chỉnh thiết bị ngoại vi) lên Chromebook.
Và việc xây dựng trải nghiệm ngoại vi có ý nghĩa gì?
Tôi sẽ trình bày về những gì chúng tôi đã xây dựng, một vài điểm nổi bật về kỹ thuật đằng sau đó, không có điểm yếu và hướng đi tiếp theo của chúng tôi.
Trước đây, các thiết bị của Logitech đã hoạt động với Android và hầu hết người dùng đều nhận thấy các thiết bị ngoại vi này giúp cải thiện khả năng hỗ trợ tiếp cận, đặc biệt là với máy tính xách tay cao cấp và những chiếc điện thoại được kết nối với màn hình ngoài.
Nói về điều này, trước đó ở tầng dưới, tôi thấy tại gian hàng minh hoạ Googlebook, họ đã gắn một cần số tuần tự chơi game của Logitech lên bàn và dùng cần số đó để chuyển đổi giữa các màn hình trên máy tính bảng.
Thông tin cho bạn đây.
Đó là một cách sử dụng.
À, nhân tiện, Ferrari phải tính thêm 50.000 euro cho hộp số tuần tự của họ. Dù sao thì...
Vâng.
Vì vậy, trên Googlebook, như Ryan đã đề cập khá đầy đủ, chúng ta có nhiều không gian hơn để làm việc.
Như bạn có thể thấy, bạn có thể đổi kích thước màn hình, ngang, dọc hoặc vuông, nếu muốn và bạn có nhiều không gian hơn để làm việc giữa các ứng dụng.
Bạn có thể tiếp tục công việc đang làm, các ứng dụng khác nhau và bạn biết đấy, chuyển đổi bối cảnh, tất cả những điều đó.
Và điều đó chắc chắn đã thay đổi thiết kế ứng dụng, đồng thời bố cục cần duy trì tính hữu ích trong toàn bộ quy trình.
Đối với Logitech, điều này đặc biệt thú vị vì chúng tôi là một công ty có nhiều kinh nghiệm về thiết bị ngoại vi, đúng không?
Chúng tôi có nền tảng rất vững chắc cho công việc này.
Vì vậy, theo quan điểm của chúng tôi, đối với loại môi trường làm việc đó, chuột hoặc bàn phím là cách người dùng tương tác trong suốt ngày làm việc.
Họ có thể dễ dàng bắt nhịp với quy trình làm việc.
Và tôi nghĩ không hề quá khi nói rằng Logitech đã mang nhiều thập kỷ kinh nghiệm vào công việc này.
Tôi nghĩ chúng tôi vừa kỷ niệm 45 năm thành lập vào đầu tháng này.
Và chúng tôi đã làm việc này từ khi bắt đầu sản xuất chuột, tức là từ ngày thứ hai, năm thứ hai của Logitech.
Vì vậy, với kinh nghiệm đó, chúng tôi rất tự tin khi bước vào lĩnh vực này.
Tuyệt vời hơn nữa, chúng tôi có một nền tảng vững chắc với ChromeOS.
Trước đây, chúng tôi đảm bảo khả năng tương thích cao nhất với ChromeOS.
Giờ đây, sau khi đã nói tất cả những điều này, chúng tôi có một trải nghiệm thực tế rất tốt, phá vỡ ranh giới giữa phần cứng mà chúng tôi xây dựng, phần mềm mà chúng tôi tạo ra và sau đó là nền tảng, hệ điều hành, Googlebooks.
Ví dụ: một ví dụ đơn giản có thể là người dùng nhấn một nút và họ thấy kết quả có thể dự đoán được.
Nó gần như là một thứ mà mọi người đều coi là hiển nhiên.
Nhưng trên thực tế, các thành phần này cần phải tương thích liền mạch với nhau.
Hơn nữa, ai cũng thích khả năng tương thích với các thiết bị ngoại vi.
Ví dụ: điều chỉnh độ nhạy sao cho phù hợp.
65, không hơn không kém.
Vì vậy, tất cả những điều này đều đòi hỏi khả năng tương thích liền mạch giữa cả ba yếu tố.
Giờ đây, khi ra mắt Google Sách, chúng tôi cũng ra mắt Options+ cho Google Sách.
Vì vậy, hiện tại, chúng tôi hỗ trợ nhiều loại chuột và bàn phím, đồng thời sẽ hỗ trợ thêm nhiều loại khác trong tương lai.
Đây cũng là nơi chúng tôi cho phép người dùng định cấu hình thiết bị của họ.
Và như tôi đã đề cập trước đó, như sự nhạy cảm, tất cả những điều đó.
Giờ thì cảnh này bắt đầu thú vị rồi đây.
Khi nói về khả năng định cấu hình, chúng ta đang nói về hai khía cạnh.
Một bên là phần cứng, chương trình cơ sở, nơi các tính năng được triển khai trong chương trình cơ sở của chúng tôi.
Mặt còn lại thực sự là điểm mấu chốt của bản minh hoạ này và bản trình bày này là phía hệ điều hành.
Tôi nghĩ mọi người ở đây đều biết rằng trước đây, các thiết bị Android và hầu hết ứng dụng đều hoạt động trong hộp cát và không gian người dùng riêng.
Có một số giới hạn nhất định về những việc bạn có thể làm và trong nhiều trường hợp, những việc bạn không thể làm và những việc bạn muốn.
Đối với chúng tôi, điều này cực kỳ quan trọng.
Bây giờ, đây là ảnh chụp màn hình, chúng ta sẽ có một bản minh hoạ sau, nhưng đây là ảnh chụp màn hình.
Chúng ta có một con chuột ngay tại đây, MX Master 4, và chúng ta có rất nhiều chức năng ở đây.
Và đối với những người biết về thế giới thiết bị ngoại vi, bạn có thể nhận ra một số tính năng nhất định là các tính năng của chương trình cơ sở, tính năng của thiết bị được triển khai rất nhiều.
Và một số khác thì chắc chắn là không.
Và đối với chúng tôi, những gì chúng tôi đang làm là cố gắng cho phép người dùng có khả năng định cấu hình cả hai bên.
Và công việc của chúng tôi về cơ bản là, thứ nhất, làm cho các lựa chọn này dễ hiểu và cung cấp đầy đủ tính năng cho người dùng, đồng thời chúng tôi định cấu hình chính xác những điều này cho hệ điều hành và chương trình cơ sở.
Bây giờ, hãy cùng xem một bản minh hoạ nhanh.
Ồ, đây là một bản minh hoạ rất ấn tượng.
Nhưng lần tới, Ryan, hãy dùng chuột.
Được rồi, bắt đầu thôi.
Đây là màn hình thiết bị của tôi.
Bạn thấy tôi đã kết nối chuột MX Master 4, chính là chuột này.
Vậy nên, hãy cùng bắt đầu nhé.
Chúng ta sẽ chuyển thẳng đến màn hình cấu hình, như bạn đã thấy trước đó, và đây là nơi điều kỳ diệu xảy ra.
Bây giờ, trước tiên hãy chọn tính năng Khoanh tròn để tìm kiếm cho nút ngón cái.
Sau đó, hãy đưa Con trỏ thần kỳ vào nút tính năng.
Giờ thì bắt đầu thôi.
Hãy mở trình duyệt.
Đến đây.
Tại đây, tôi nhấn nút ngón cái mà tôi vừa gán tính năng Khoanh tròn để tìm kiếm.
Như bạn thấy, tôi khoanh tròn một bàn phím.
Thế là xong!
Google chỉ hiển thị thông tin về bàn phím này.
Nó rất tiện dụng và mượt mà.
Bây giờ, hãy thử một cách khác.
Ồ, xin lỗi.
Hãy để tôi quay lại.
Hãy thử dùng Con trỏ thần kỳ.
Ở đây, hãy bật nút này.
Tôi có thể nhấn nút tính năng, gắn thẻ thiết bị này rồi nhấn vào "Thiết bị này là gì?"
Và bạn đã hoàn tất.
Google bắt đầu tìm kiếm và hiển thị kết quả.
Vì vậy, điểm hay của tính năng này là bạn có thể tích hợp toàn bộ quy trình làm việc vào một thao tác bằng một tay.
Bạn chỉ định tính năng, nhấn, khoanh tròn, nhấp, thế là xong.
Vì vậy, chúng tôi tin rằng loại hoạt động này sẽ cải thiện đáng kể khả năng hỗ trợ tiếp cận của người dùng và cách họ làm việc.
Bây giờ, hãy quay lại trang trình bày.
Vậy nên bạn có thể thắc mắc điều gì đã khiến việc đó xảy ra.
Vì trước đây, có nhiều việc mà ứng dụng không thể làm được.
Và đây, API Tuỳ chỉnh thiết bị ngoại vi, có trên cả Chromebook và các thiết bị Android.
Tuy nhiên, sau đây là ghi chú của Google.
Hiện tại, API này nằm trong danh sách cho phép.
Tuy nhiên, chúng tôi dự kiến sẽ phát hành tính năng này cùng với các bản cập nhật Android cho đến quý 4 năm 2026, tức là quý này.
Vì vậy, sau khi tính năng này được phát hành, tôi nghĩ các nhà phát triển trên khắp thế giới sẽ có thể sử dụng.
Bây giờ, hãy cùng tìm hiểu một chút về khía cạnh kỹ thuật.
Có 3 thành phần chính trong toàn bộ quy trình này: thiết bị, trình kích hoạt (có thể là phím, có thể là nút) và hành động (ở phía hệ điều hành của ứng dụng).
Bây giờ, hãy xem nhanh đoạn mã này.
Ở trên cùng, chúng ta xác định một thiết bị bằng cách sử dụng mã nhà cung cấp và mã sản phẩm của thiết bị đó.
// 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)Chúng tôi thường gọi là vid và pid.
Tiếp theo, chúng ta sẽ bắt đầu xác định một điều kiện kích hoạt.
Và ở đây, như bạn có thể thấy, chúng ta muốn dùng nút giữa làm nút kích hoạt.
Và ở đây, chúng ta muốn liên kết nút giữa đó với phần Trợ lý thoại của tính năng hệ điều hành.
Đúng không?
Chúng ta có một actionBuilder ngay tại đây từ AppCustomizationAction và tại đây.
Sau đó, di chuyển xuống dưới, đây là nơi chúng ta đăng ký mối liên kết này giữa sản phẩm, thiết bị, điều kiện kích hoạt và hành động.
Tất nhiên, mã thực tế phức tạp hơn một chút, nhưng khái niệm tổng thể là như vậy.
Rất đơn giản và dễ sử dụng.
Giờ thì, đây là một tính năng rất thú vị khác.
Tôi đặt một tệp GIF ở đây để mọi người dễ xem hơn.
Về cơ bản, khi một thiết bị tương thích và được hỗ trợ (trong trường hợp này là chuột Logitech Mobifold), hệ điều hành sẽ kích hoạt một thông báo chuẩn để cho bạn biết: "Này, bạn có một ứng dụng cho thiết bị đó".
Tất nhiên là cho người dùng biết.
Sau khi nhấp vào đó, bạn sẽ được chuyển đến Cửa hàng Play và có thể cài đặt ngay tại đó.
Đây được gọi là tính năng phát hiện ghép nối nhanh.
Cuối cùng, hãy chuyển sang phần giao diện người dùng.
Ryan đã đề cập đến nhiều điều thú vị về Googlebook, cách bạn tạo giao diện người dùng, vì vậy tôi sẽ trình bày khá nhanh ở đây.
Như bạn thấy, Options+ chạy trên nhiều nền tảng, trong trường hợp của chúng tôi là Windows, Mac và giờ là Chromebook.
Vì vậy, chúng tôi có hai mục tiêu: một là chúng tôi muốn mang lại cảm giác như ứng dụng này dành riêng cho nền tảng đó, nhưng đồng thời, chúng tôi muốn mang lại cảm giác tương tự trên mọi nền tảng, nghĩa là khi đã quen với Options+ trên một nền tảng, bạn sẽ có thể sử dụng ứng dụng này một cách mượt mà trên một nền tảng khác.
Điều đó có nghĩa là chúng ta muốn tận dụng các nền tảng cụ thể đó, nhưng đồng thời sử dụng cùng một ngôn ngữ thiết kế.
Như bạn có thể thấy, ngôn ngữ thiết kế nhất quán trên toàn bộ sản phẩm.
Và như chúng ta đã thảo luận trước đó, người dùng Googlebook có xu hướng sử dụng Googlebook theo cách giống như máy tính xách tay/máy tính để bàn hơn.
Vì vậy, tất nhiên, bản thân ứng dụng của chúng ta, ngay cả trên Googlebook, cũng trông giống như một ứng dụng dành cho máy tính.
Vì vậy, bản thân ứng dụng có thể hoạt động như một ứng dụng dành cho máy tính và hoạt động tốt trên nhiều kích thước cửa sổ, nhiều thao tác chạm và tất nhiên, bạn có thể điều khiển bằng chuột và bàn phím.
Đó là câu chuyện ngắn gọn về các thiết bị ngoại vi của Logitech và ứng dụng Options+ trên Googlebook.
Và cách làm này rất hiệu quả.
Tuy nhiên, chúng tôi chỉ mới bắt đầu.
Chúng tôi có một vài bước: thứ nhất, chúng tôi muốn mang trải nghiệm này đến nhiều thiết bị, nhiều bàn phím, chuột và các thiết bị ngoại vi khác, đồng thời chúng tôi muốn tinh chỉnh ứng dụng này bằng cách sử dụng ý kiến phản hồi của người dùng thực tế.
Và tất nhiên, điều quan trọng nhất là chúng tôi sẽ tiếp tục hợp tác với Google trong tương lai và tích hợp sâu hơn vào các nền tảng mới.
Vì vậy, mục tiêu cuối cùng của chúng tôi là biến việc tuỳ chỉnh thiết bị ngoại vi thành một trải nghiệm rất tự nhiên khi sử dụng Chromebook và giúp mọi người làm việc theo cách họ muốn.
Được rồi.
Hãy nhớ ghé thăm các gian hàng của chúng tôi ở tầng dưới và tự mình trải nghiệm Options+ cũng như các thiết bị tuyệt vời của Logitech.
Cảm ơn Google đã hợp tác với chúng tôi và cảm ơn các bạn đã dành thời gian.
Cảm ơn bạn rất nhiều.
// 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)