На пути к GNOME Shell на мобильных устройствах

#Перевод #GNOME

В процессе разработки GNOME 40, команда разработчиков работала над рядом экспериментов, некоторые из которых были направлены на улучшение поддержки планшетов и других портативных устройств. С тех пор некоторые из нас думали о том, что нужно сделать, чтобы полностью перенести GNOME Shell на телефонный форм-фактор.

Концепты начала 2020 года, основанные на обсуждениях с хакфеста в Гааге

Концепты начала 2020 года, основанные на обсуждениях с хакфеста в Гааге

Это интригующий вопрос, потому что после релиза GNOME 40 для, пусть и не идеально, но работающего GNOME Shell на телефонах, не хватает не так уж и много. Несколько самых сложных элементов, необходимых для мобильной оболочки, уже в наличии:

Кроме этого, многое из того, над чем мы сейчас работаем для настольных компьютеров, актуально и для смартфонов, включая быстрые настройки, редизайн уведомлений и улучшенную экранную клавиатуру.

Возможно благодаря Фонду Прототипов

Учитывая всю эту синергию, мы посчитали, что настал прекрасный момент попробовать создать мобильную GNOME Shell. Благодаря Фонду Прототипов, грантовой программе поддержки программного обеспечения общественного интереса Министерства образования Германии (BMBF), мы работали над поддержкой мобильных устройств в GNOME Shell в течение последних нескольких месяцев.

Цели

Мы не рассчитываем в рамках этого грантового проекта завершить все аспекты превращения GNOME Shell в повседневную оболочку для телефона. Это было бы куда более грандиозной работой, потому что это означало бы решение таких задач, как звонки на экране блокировки, разблокировка PIN-кодом, экстренные вызовы, быстрое переключение фонарика и другие мелкие, но важные функции.

Однако мы считаем, что основы навигации по оболочке, запуск приложений, поиск, использование экранной клавиатуры и т.д. вполне осуществимы в рамках данного проекта, по крайней мере, на стадии прототипа.

Макеты некоторых основных экранов GNOME Shell на мобильных устройствах (обзор, сетка приложений, область состояния системы)

Макеты некоторых основных экранов GNOME Shell на мобильных устройствах (обзор, сетка приложений, область состояния системы)

Конечно, составить подробную дорожную карту для такого рода работ сложно, и мы будем корректировать её по мере продвижения и конкретизации, но это те области, над которыми мы планируем работать, примерно в том порядке, в котором мы хотим их делать:

Текущий прогресс

Одна из главных вещей, которую мы хотим сделать в этом проекте — это полностью семантические двумерные навигационные жесты, над которыми мы работали начиная с GNOME 40. Для этого потребовалось переработать распознавание жестов на довольно базовом уровне, поэтому бо́льшая часть работы до сих пор была сосредоточена на разблокировке этой функции. Мы ввели новый трекер жестов и переписали значительную часть основ обработки ввода в Clutter.

Разработка хорошего API для этого потребовала много итераций, и здесь есть много интересных деталей, но мы расскажем об этом в отдельном блоге, посвященном распознаванию жестов, в ближайшем будущем.

В результате переработки системы отслеживания жестов мы смогли реализовать двумерные жесты и в целом значительно улучшить работу с сенсорными экранами. Например, экранная клавиатура теперь ведёт себя гораздо более привычно для смартфонов.

Вот как это выглядит сейчас на ноутбуках (очень экспериментально, вторая полоса будет видна только на телефонах):

Некоторые другие вещи, которые уже работают или находятся в процессе разработки:

В совокупности, вот как всё это выглядит на реальном смартфоне прямо сейчас:

Бо́льшая часть этой работы ещё не попала в Mutter и GNOME Shell, но уже есть несколько открытых MR. На случай, если вы захотите погрузиться в детали:

Следующие шаги

Впереди ещё много работы, но прогресс будет более быстрым и заметным, потому что это будет работа над пользовательским интерфейсом, а не над внутренними API. Теперь, когда некоторые основы уже заложены, мы также с нетерпением ждём возможности провести больше испытаний и разработок на реальном мобильном железе, что особенно важно для настройки таких вещей, как экранная клавиатура.

Текущий прототип, работающий на Pinephone Pro, проспонсированный GNOME Foundation

Текущий прототип, работающий на Pinephone Pro, проспонсированный GNOME Foundation


Если вам понравился перевод — отправьте его друзьям, пусть узнают, как быстро развивается GNOME! А если вы нашли ошибку или неточность, пишите в наш Telegram чат.

Ссылки