Unity и Единство.
Unity переводится как Единство, так почему название статьи объединяет через союз И
два одинаковых слова, написанных на разных языках? Дело в том, что
Ubuntu начала свой путь объединения всех аппаратных платформ и всех
устройств с разными форм-факторами, экранами, сенсорными возможностями
под своим крылом. Canonical движется к цели, когда есть единая кодовая
база Убунту, которая легко адаптируется к тому на чём она работает.
Десктоп? Ок! Смартфон? Нет проблем.
Unity - это графическая среда дефолтной установки Убунту. Появившись 3
года назад, Unity сфокусировалась на простоте и "одинаковости" на
разных устройствах. Данная статья раскроет историю Unity и расскажет как
Unity 8 приведёт нас к единому светлому будущему.
Хоть Unity и одна, но можно найти 3 составляющих:
- Дизайн - внешнее представление и способ взаимодействия с пользователем.
- Платформа - ядро платформы Unity.
- Сервисы - набор функций, которые делают Unity доступной для сторонних приложений в плане интеграции с ней и отображения контента.
Некоторое время назад, когда команда Canonical начала свою работу над
Unity, нужно было решить ключевые проблемы с пользовательским
интерфейсом, который царствовал в мире Linux, чтобы начать строить
простой и эффективный UI. Так же нужно было продумать набор шаблонов
проектирования (design pattern), которые помогут решить задачу
масштабирования на многие устройства.
Разработка абсолютно нового всегда сложный процесс и этот процесс,
наполненный идеями, всегда ограничен суровым реальным миром. Команда
продумывала идеи, тестировала их, снова продумывала и снова тестировала,
чтобы из кучи идей "сварить" готовый набор шаблонов, которые подходят
не только для десктопа, но и могут быть применены к другим видам
вычислительных систем.
Важно помнить, что речь идёт не только о видимых вещах типа launcher,
панелей, индикаторов и других строительных блоков Unity. Нужно
проработать управление жестами, вход в систему, тулкиты, компоненты Dash
и многое другое.
Вначале пути Unity у неё было 2 различные кодовые базы: 3D (не путать
с игровым движком Unity3D) и 2D. Причина раздвоения проста: некоторые
партнёры Canonical желали работу Unity на оборудовании без аппаратного
3D ускорения. Поэтому решено было поддерживать 2 ветки, чтобы поддержать
всех потенциальных партнёров. Обе ветки радикально отличались друг от
друга. Unity 3D была написана с использованием Compiz и применялся
графический тулкит NUX.
Unity 2D была написана с помощью Qt/QML. Как вы видите это порождает
дублирование усилий по реализации одного и того же в разных ветках.
Так как задачей было привести Ubuntu, и следовательно Unity, к
единому целому на всех платформах ТВ, Мобильные системы, Планшеты и
Десктоп, то нужно было принять волевое решение об этой ситуации с двумя
кодовыми базами. После бурных дебатов решено сфокусироваться на Qt/QML
ветке, как на основной, учитывая что Qt/QML ядро Ubuntu SDK.
Джоно Бэкон лично лоббировал акцент на Qt/QML в течение нескольких
лет, чтобы наконец-то наступила техническая согласованность в Canonical.
Qt/QML стал: основой Unity, важной частью Ubuntu SDK, рекомендацией при
разработке приложений, причиной роста количества разработчиков.
Основное преимущество Unity в широком спектре услуг, которые она предлагает:
- Launcher - показывает запущенные приложения, степень
выполнения задачи в программе через индикатор процесса, быстрое меню
приложения (quicklists).
- Меню сообщений - все сообщения в одном месте, в независимости от источника.
- HUD (Head-Up Display) - альтернатива огромным меню приложения, поиск нужного пункта через пару нажатий или даже голосом.
Ещё весомый довод - Dash. В предыдущих версиях Unity Dash
предоставлял место поиска среди локальных данных компьютера и небольшим
набором онлайн сервисов. Для Ubuntu 13.10 Dash уже предлагает более 50
поисковых онлайн сервисов. Но задача осталась неизменна - быть место
поиска приложений, информации и так далее.
Опять же, важно понять, что все предлагаемые сервисы в Убунту не
ограничены десктопом ... услуги доступны всем Убунту на любом устройстве
с любым форм-фактором. Предложенный Ubuntu SDK предоставляет все
возможности платформы Убунту для любого приложения.
Unity 8.
Ранее упоминалось про решение сфокусироваться на Qt/QML как на
платформе разработки, но это было не единственное решение, связанное с
Unity. Целью было создание на единой кодовой базе Unity - всеобъемлющее
единство платформы Убунту. Если вы работаете на Десктопе, то у вы
получаете один опыт общения с системой. Используете Unity на мобильных
системах, то ваш опыт не теряется, а только преумножается.
Когда единение станет абсолютным, исправление бага в единой кодовой базе - исправит его на всех устройствах. Вот абсолют, к которому стремится Canonical - единая кодовая база, с возможностью масштабироваться на широком спектре устройств.
Мечта начинает воплощаться в Unity 8, следующем поколении Unity,
работающая пока в мобильном секторе. На десктопе пока работает Unity 7,
основанная на Compiz и Nux.
Если хотите увидеть будущее единение прямо сейчас, то в
разрабатываемом релизе Ubuntu 13.10 Saucy Salamander можете установить
Unity8: sudo apt-get install unity8
Запустить в виде приложения:
export UBUNTU_ICON_THEME=ubuntu-mobile
unity8 -mousetouch
Загрузится вид схожий с Ubuntu Phone на вашем Рабочем столе в виде окна.
Unity работает, оперируя размерами экрана. Если изменить размер окна, то можно увидеть аля LightDM.
Сделайте экран меньше размер, вернув как было. В этом первоначальном
виде вызовите с левого края Launcher и щёлкните значок с лого Ubuntu и
затем щёлкните Поиск. Заметьте, что поле поиска занимает всю ширину
окна.
Теперь измените окно, чтобы оно стало снова больше, и снова вызовите Поиск. Поисковое поле теперь находится справа.
Этот небольшой пример показывает как Unity 8 адаптируется к размерам экрана устройства, на котором ей предстоит работать.
Цель в том, что будет делаться множество улучшений для Unity, но
основные ингредиенты, технологии и фокусировка на контенте останутся как
и прежде, только будут просматриваться с различных углов.
И где всё это?
Сегодня Unity 8 работает в секторе телефонов и планшетов. Но Unity 8
не рассматривается только в этом узком контексте, она проверяется на
работу и с другими устройствами.
Пример с Поиском может навести на мысль, что Unity 8 выглядит как
эмулятор мобильного устройства. Это не так! Родной десктопный UI будет
добавлен чуть позже, но Dash и все системные сервисы к десктопу уже
готовы. Просто нужно добавить для десктопа экранный профиль, что и будет
сделано.
Другими словами, могло показаться, что все в Canonical только и
работают над "мобильной" Unity 8. Unity разрабатывается и тестируется
одновременно для различных форм-факторов, в том числе и для Desktop.
Теперь каждые 4 часа запускаются тесты кодовой базы и если они успешны,
то пакеты становятся доступны в репозитории. Сообщество может
протестировать и отследить последние достижения Unity 8.
Новые возможности описаны в blueprints и обсуждаются на Ubuntu Developer Summits.
"Телефонный" интерфейс в Unity 8 будет полностью закончен в Ubuntu
13.10 Saucy Salamander. Затем, в центре внимания будет Desktop на
протяжении релизов Ubuntu 13.10 до Ubuntu 14.10. Итогом должно стать
появление Unity 8 на десктопной Ubuntu 14.10 и тогда цель будет
достигнута - единая кодовая база Unity для всех разношёрстных устройств! http://vasilisc.com/unity-convergence
|