Свайп по экрану: что это и для чего он нужен. Что такое свайп: чехол, клавиатуры

Статьи и Лайфхаки

Когда мы жалуемся на низкую скорость набора текста на сенсорном дисплее, нам рекомендуют использовать свайп-клавиатуру.

Что же такое этот самый свайп, и как он может ускорить набор наших СМСок? В действительности всё достаточно просто.

Что это такоеSwype представляет собой способ ввода текста на мобильных устройствах, изначально разработанный компанией Nuance для смартфонов, работающих под управлением Windows Mobile. В переводе термин означает «скользить», что в наилучшем виде отражает сущность способа.

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

Очевидно и логично – для настольных компьютеров. Если же мы работаем с сенсорным экраном, всё не настолько однозначно.

Приложение Swype Keyboard позволяет вводить текст, не отрывая пальца от поверхности экрана гаджета. Оно анализирует траекторию движения пальца и на основе «посещенных» им букв «собирает» слово.

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

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

Для набора может использоваться как палец, так и специальный стилус. В среднем скорость ввода может составлять от 30 до 45 слов в минуту, что в сравнении с обычной QWERTY-клавиатурой смартфона очень неплохо.

Разумеется, поначалу набор будет медленным, но по мере освоения ускорится.

Какие платформы поддерживают SwypeНа данный момент этот метод ввода реализован в следующих мобильных :
  • Android.
  • Windows Mobile.
  • Symbian.
  • MeGo.
  • Bada.
Следует иметь в виду, что далеко не все версии оснащены данной системой. Например, в устройствах она появилась, начиная с 8 версии iOS.Что еще может Swype


Возможности этой системы вышли далеко за рамки простого ввода текста.

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

К сожалению, приложение Swype Keyboard компании Nuance, доступное в , является платным. Стоимость его составляет $0,99.

Однако пользователям доступны бесплатные аналоги :

  • TouchPal;
  • SwiftKey;
  • GBoard.
Есть и другие, менее известные приложения, позволяющие использовать подобный способ ввода, однако все они сильно уступают Swype Keyboard.

Подобный метод ввода текста пришелся по вкусу далеко не всем пользователям. Некоторые предпочитают привычно «колотить» по клавишам, несмотря на то, что освоение свайпа позволило бы существенно увеличить скорость набора.

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

Если вы не , напомним, что Swype — это утилита, которая заменяет штатную клавиатуру Android собственной, более "умной". Отслеживая перемещения пальца по дисплею, система пробует угадать, какое слово набирает пользователь, и предлагает следующее с учетом контекста. Если у нее это не получается — она предлагает варианты замены, и довольно точные.

Как установить и настроить
В Google Play клавиатура доступна начиная с сегодняшнего утра по временно сниженной цене в 1 доллар, есть и бесплатная пробная версия . После первого запуска приложение проведет вас по этапам настройки. Сначала надо будет зайти в "Настройки" → "Язык и ввод" и поставить галку напротив "Swype". Появится предупреждение о том, что приложение может собирать все вводимые данные за исключением паролей - это действительно так, но Nuance это солидная компания с многолетней историей и не доверять ей поводов пока не было, так что соглашаемся. После этого нажимаем кнопку "назад" для возврата к мастеру настройки и на следующем этапе загружаем русский из списка языков.

Наконец, на последнем этапе можно зарегистрировать свой аккаунт в Nuance - это даст клавиатуре доступ к "облачной" словарной базе, а также позволит восстанавливать ваши персональные настройки и синхронизировать их между устройствами, например, смартфоном и планшетником. Кстати, в этом случае покупать Swype дважды (как в случае, например, со SwiftKey) не придется - приложение универсально и работает на устройствах разных форм-факторов.

Дальнейшая наладка Swype зависит от личных предпочтений. В разделе "Мои слова", к примеру, вы можете разрешить утилите вести индивидуальный словарь, основываясь на текстах из Facebook, Twitter и писем Gmail. Также в настройках можно включить голосовой и рукописный ввод, поменять тему оформления или определить, должна ли клавиатура подчеркивать слова с ошибкой, самостоятельно вносить исправления или ставить автопробел.

Ключевые возможности Swype
В новейшей версии 1.5 Nuance пошла по пути улучшения уже имеющихся функций.

● "Динамический словарь" (Living Language) учитывает при наборе слова и фразы, которые в режиме реального времени употребляют пользователи по всему миру. Он поможет клавиатуре пополнять словарный запас и повысить точность угадываний. Эту функцию можно активировать в разделе "Мои слова". По умолчанию она отключена.

● Еще одна полезная функция, "Интеллектуальный редактор" (Smart Editor), анализирует целые предложения и предлагает исправить возможные ошибки. Когда вы поставите в предложении точку, Swype подчеркнет слова, в которых, по мнению программы, была допущена опечатка (автоисправление должно быть отключено).

Слева — "умный" редактор, подчеркивающий ошибки

● Если у вас несколько Android-устройств (например смартфон и планшет), жизнь облегчит сервис Swype Connect. Эта функция автоматически создает резервные копии словаря, переносит их в "облако" Nuance и синхронизирует между разными гаджетами.

● Текст можно набирать не только скользя пальцем по кнопкам, но также голосом (речь обрабатывает технология Dragon Dictation) и "рукописными" символами, которые Swype сам преобразует в печатные слова. В версии 1.5 ввод голосом включен изначально. В ходе наших тестов выяснилось, что он распознает русскую речь ничуть не хуже, чем голосовой сервис Google, но при этом позволяет набирать сразу несколько предложений подряд (система ставит знак ".", когда вслух произносят слово "точка"). То есть набирать голосом небольшие тексты на ходу теперь не проблема (необходимо подключение к Сети). Что касается ввода "от руки", то толку от него на смартфоне немного. Полезным он может оказаться разве что на планшетнике со стилусом, если они у вас есть.

Как видно, Swype стремится стать максимально удобным и угодить всем: кто любит набирать текст свайпами, нажатиями на кнопки, голосом или вырисовывать каждый символ вручную. Функции клавиатуры эволюционируют с каждой новой версией, и такая стратегия вполне может помочь Nuance расширить и без того крупную пользовательскую базу из 250 миллионов с лишним человек.

В последнее время в качестве лидера альтернативных клаиватур на Android большинство обозревателей называли - и вполне заслуженно - SwiftKey. Теперь лидеру придется потесниться - с выходом Swype в Google Play у него появился весьма достойный конкурент. Причем на Swype имеет смысл посмотреть, даже если ввод текста без отрыва - это, как вам кажется, "не ваше". У программы весьма умный словарь, много тем оформлени на любой вкус, а также отлично работающая функция голосового ввода, которую можно, в том числе, использовать для набора текстов небольшой или средней длины, а не только отдельных слов. Наконец, владельцев нескольких Android-устройств обрадует тот факт, что отдельные клавиатуры для cмартфона и планшетника покупать не надо:

(SwiftKey, GO Keyboard, Kii) вы можете из нашего обзора.

Термин gesture — способ объединить движения пальцем по экрану для запуска какого-то действия; движение пальцем в таком случае используется вместо просто касания или клика. Полное касание (complete touch) или mouse — move-capturing функция — нужна для того, чтобы жесты регистрировались и были абсолютно правильными. Сегодня хорошая поддержка этой функции есть только в браузерах Safari и Android.

Если в твоем веб-приложении пользователю нужно использовать жесты, важно научить его правильным действиям — при помощи справки, анимированных примеров или какого-нибудь другого вида подсказок (рисунок 8.5).

Рис. 8.5. Google Fast Flip новый просмотрищик, использующий жесты на iPhone и Android устройств. Слева вы увидите предупреждающий диалог с инструкциями о том, как его использовать. Вы увидите инструкции только один раз.

Жест Swipe

Жест swipe (также известен как flip) — технология для тач-браузеров, обычно используется для перемещения контента вперед-назад. Этот жест используется, например, во многих фото-галереях для смены выведенного на экран изображения и в презентациях для перелистывания слайдов. Суть жеста — простое движение пальцем по оси Х слева направо (горизонтальный swipe) или по оси Y сверху вниз (вертикальный swipe). swipe-жест поддерживается практически в каждом сенсорном устройстве, так как осуществляется одним пальцем.

Для перехвата swipe-действия нет специального стандартного события, поэтому будем эмулировать его, используя имеющиеся стандартные события

В устройствах Symbian 5-го поколения если вместо курсора использовать палец, то для событий mouse down, move и up получаются довольно странные результаты. Событие генерируется только один раз во время действия пальцем «перетащить» (drag), а событие вообще не срабатывает, если палец перемещен из точки начальных mouse-down координат. Поэтому, для обнаружения swipe в некоторых ситуациях нужны разные подходы.

Последовательность действий:

  • Перехват события (или ontouchstart в iPhone и других совместимых браузерах) и старт записи жеста.
  • Перехват (или ontouchmove в iPhone и браузерах с необходимой поддержкой) и продолжение записи жеста, если перемещение по оси Х (или Y) происходит в пределах определенного порога. Отмена жеста, если перемещение происходит по другой оси.
  • Перехват onmouseup (или ontouchend в iPhone и браузерах с необходимой поддержкой) и, если в этот момент жест продолжался (был активным) и разница между исходными и конечными координатами больше, чем определенная константа - определите swipe в одном направлении.
  • Последний пункт может быть заменен проверкой жеста на-лету внутри события onmousemove.

    Если ты используешь в работе jQuery, можно для обнаружения горизонтального жеста swipe на устройствах iPhone использовать бесплатный плагин отсюда http://plugins.jquery.com/project/swipe .

    При помощи следующего кода мы можем создать объектно-ориентированную библиотеку для обнаружения swipe (совместимо iPhone, Android и другими устройствами):

    /** Creates a swipe gesture event handler */ function MobiSwipe(id) { // Constants this.HORIZONTAL = 1; this.VERTICAL = 2; this.AXIS_THRESHOLD = 30; // The user will not define a perfect line this.GESTURE_DELTA = 60; // The min delta in the axis to fire the gesture // Public members this.direction = this.HORIZONTAL; this.element = document.getElementById(id); this.onswiperight = null; this.onswipeleft = null; this.onswipeup = null; this.onswipedown = null; this.inGesture = false; // Private members this._originalX = 0 this._originalY = 0 var _this = this; // Makes the element clickable on iPhone this.element.onclick = function() {void(0)}; var mousedown = function(event) { // Finger press event.preventDefault(); _this.inGesture = true; _this._originalX = (event.touches) ? event.touches.pageX: event.pageX; _this._originalY = (event.touches) ? event.touches.pageY: event.pageY; // Only for iPhone if (event.touches && event.touches.length!=1) { _this.inGesture = false; // Cancel gesture on multiple touch } }; var mousemove = function(event) { // Finger moving event.preventDefault(); var delta = 0; // Get coordinates using iPhone or standard technique var currentX = (event.touches) ? event.touches.pageX: event.pageX; var currentY = (event.touches) ? event.touches.pageY: event.pageY; // Check if the user is still in line with the axis if (_this.inGesture) { if ((_this.direction==_this.HORIZONTAL)) { delta = Math.abs(currentY-_this._originalY); } else { delta = Math.abs(currentX-_this._originalX); } if (delta >_this.AXIS_THRESHOLD) { // Cancel the gesture, the user is moving in the other axis _this.inGesture = false; } } // Check if we can consider it a swipe if (_this.inGesture) { if (_this.direction==_this.HORIZONTAL) { delta = Math.abs(currentX-_this._originalX); if (currentX>_this._originalX) { direction = 0; } else { direction = 1; } } else { delta = Math.abs(currentY-_this._originalY); if (currentY>_this._originalY) { direction = 2; } else { direction = 3; } } if (delta >= _this.GESTURE_DELTA) { // Gesture detected! var handler = null; switch(direction) { case 0: handler = _this.onswiperight; break; case 1: handler = _this.onswipeleft; break; case 2: handler = _this.onswipedown; break; case 3: handler = _this.onswipeup; break; } if (handler!=null) { // Call to the callback with the optional delta handler(delta); } _this.inGesture = false; } } }; // iPhone and Android"s events this.element.addEventListener("touchstart", mousedown, false); this.element.addEventListener("touchmove", mousemove, false); this.element.addEventListener("touchcancel", function() { _this.inGesture = false; }, false); // We should also assign our mousedown and mousemove functions to // standard events on compatible devices }

    Вот простой пример использования нашей бибилотеки swipe.js с с горизонтальным обнаружением swipe и другим с вертикальным обнаружением:

    Swipe Gesture Detection window.onload = function() { var swipev = new MobiSwipe("vertical"); swipev.direction = swipev.VERTICAL; swipev.onswipedown = function() { alert("down"); }; swipev.onswipeup = function() { alert("up"); }; var swipeh = new MobiSwipe("horizontal"); swipeh.direction = swipeh.HORIZONTAL; swipeh.onswiperight = function() { alert("right"); }; swipeh.onswipeleft = function() { alert("left"); }; } Vertical Swipe Horizontal Swipe

    Во многих сенсорных устройствах жест «перетащить» (drag) используется для прокрутки содержимого страницы и, при этом, не поддерживается функция preventDefault (о функции предотвращения поведения по умолчанию мы говорили чуть ранее в этой главе). Именно поэтому мы должны помимо жеста swipe рассмотреть и другие доступные способы навигации.

    Жесты машстабирования и поворота

    Когда iPhone только появился, самыми крутыми функциями в нем были именно жесты изменения масштаба и поворота. Используя жест pinching (сдвигая и раздвигая два пальца в щепотке) пользователь мог увеличить или уменьшить масштаб контента — это, как правило, изображение — на странице, а поворачивая два пальца по кругу изображение можно повернуть.

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

    К счастью, начиная с iOS 2.0 эти жесты можно обнаружить не прибегая с низкоуровневой математике в тач-событиях. В таблице 8.35 перечислены три расширения WebKit, которые доступны в качестве событий. В браузере Android также добавлена поддержка этих событий.

    Для масштабирования и поворота используются эти же события. Все три получают параметр GestureEvent. У этого параметра есть типичные для события свойства, а также дополнительные свойства scale и rotation.

    Свойство scale определяет расстояние между двумя пальцами как множитель с плавающей точкой от начала дистанции, где было начало жеста. Если значение больше 1.0, значит это открытый pinch (увеличение), а если значение 1.0 — pinch закрытия (уменьшение).

    rotation дает значение (в градусах) дельты (расстояния) вращения от начальной точки. Если пользователь вращает объект по часовой стрелке, то мы получаем положительное значение, а если против — то значение будет отрицательным.

    Я знаю, что ты сейчас думаешь: «Вращение и изменение масштаба — это отлично, но какой нам от них толк, если мы работаем с HTML?». Здесь нам приходят на помощь CSS расширения для Safari на iOS (и в других браузеров с соответствующей поддержкой) с одним свойством и двумя функциями для управлением его значением: rotate и scale.

    Функция rotate получает параметр в градусах и нам нужно определить deg unit после числа (например, rotate(90deg)). Узнать это мы можем из скрипта при помощи element.style.webkitTransform.

    Давай рассмотри простой пример:

    Gesture Management function gesture(event) { // We round values with two decimals event.target.innerHTML = "Rotation: " + Math.round(event.rotation*100)/100 + " Scale: " + Math.round(event.scale*100)/100; // We apply the transform functions to the element event.target.style.webkitTransform = "rotate(" + event.rotation%360 + "deg)" + " scale(" + event.scale + ")"; }

    Как работает пример можешь увидеть на Рисунке 8-6. На совместимых устройствах ты можешь двумя пальцами поворачивать и масштабировать (вместе со всем содержимым). Только вот в чем проблема? Стиль преобразования всегда применяется к исходному элементу. Так, если мы применим к элементу масштаб 2.0, а потом еще раз увеличим на 0.5, то новое значение будет 0.5, а не 1.0, как можно было бы ожидать.

    Рис. 8.6. Сочетая сенсорные события с CSS трансформациями, можно вращать и масштабировать элементы на своем сайте.

    Для типичного zoom-rotate поведения мы должны заменить функцию на следующее:

    var rotation = 0; var scale = 1; function gesture(event) { event.target.innerHTML = "Rotation: " + Math.round((event.rotation+rotation)*100)/100 + " Scale: " + Math.round((event.scale*scale)*100)/100; event.target.style.webkitTransform = "rotate(" + (event.rotation+rotation)%360 + "deg)" + " scale(" + event.scale*scale + ")"; } function gestureend(event) { rotation = event.rotation+rotation; scale = event.scale*scale; }

    Не видно виртуальной кнопки «Домой»? Есть жест для её возвращения. Читайте об этих и других возможностях ниже.

    Быстрый вариант работы с быстрыми настройками

    При свайпе (нажать и потянуть) вниз, сверху экрана на разблокированном Android-устройстве появляется небольшой ряд кнопок поверх разных уведомлений (или в верхнем углу экрана на версиях до Nougat). Это «быстрые настройки» - серия кнопок, по одному нажатию на которые можно активировать и деактивировать опции вроде сети Wi-Fi, фонарика, режима «В самолёте» и т.д.

    Повторный свайп вниз откроет ещё больше быстрых настроек, вроде автоматического поворота экрана, Bluetooth, функции «точка доступа».

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

    Свайп для возвращения кнопки «Домой»

    Бывает неприятно, когда смотришь видео или делаешь ещё что-то в полноэкранном режиме на Android, а виртуальная кнопка «Домой» пропадает без видимых причин. Зачастую она возвращается при нажатии пальцем на экран. Это срабатывает не всегда, в зависимости от используемого приложения. Например, в приложении нажатие на экран остановит воспроизведение видео, но не вернёт «Домой».

    Если кнопка «Домой» исчезла, сделайте свайп сверху экрана. Внизу появятся три навигационные сенсорные кнопки, одной из них будет «Домой».

    Двойное нажатие для запуска камеры

    Быть может, нажатие на физические кнопки не считается жестом, но данная подсказка слишком удобна, чтобы её не упомянуть.

    Можно в любой момент запустить Камеру в Android, даже когда аппарат разблокирован и открыто приложение. Делается это двойным нажатием на кнопку включения питания (если установлена версия Android Lollipop и старше).

    Тут проявляется контраст с операционной системой , где нет ярлыка доступа к камере в разблокированном состоянии, так что нужно запускать приложение Камера и рисковать упустить мимолётный момент.

    Новый вид в приложении Карты

    Приложение Карты для Android предлагает столько насыщенной информации, что можно забыть о существовании других вариантов просмотра, имеющихся в нём. Проведите двумя пальцами вниз по экрану, чтобы вращать изображение в трёхмерном пространстве, в том числе со зданиями в 3D (в зависимости от города).

    Для возвращения в плоский режим отображения проведите двумя пальцами вверх по экрану.

    Потянуть для обновления страницы в Chrome

    Поначалу кажется, что нет способа быстрого обновления страниц в браузере Chrome на Android. Нужно открыть главное меню и нажать на кнопку в правом верхнем углу.

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

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

    Свайп по адресной строке для изменения вкладки Chrome

    Если кнопки обновления страницы в Chrome нет, то небольшая кнопка «Вкладки» наверху экрана имеется, но есть более простой способ переключать вкладки, чем пытаться попасть по этой кнопке.

    Сделайте свайп в любую сторону по адресной строке Chrome. Свайп вправо открывает предыдущую вкладку, влево следующую.

    Свайп по клавише «Пробел» для перемещения курсора

    При переходе со смартфонов на Android недостаёт увеличительного стекла, которое появляется при нажатии и удержании редактируемого слова.

    Однако у Android есть собственный ответ на увеличительное стекло iOS. На стандартной клавиатуре системы можно двигать курсор, скользя пальцем по клавише «Пробел». Пусть это не столь элегантное решение, но и оно достаточно удобное.

    Для использования этой возможности нужно установить правильные настройки. Нажмите Настройки > Язык и ввод > Клавиатура Google > Непрерывный ввод > Включить управление курсором .

    Свайп влево от кнопки Backspace для удаления слов

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

    Нажмите на кнопку Backspace и тяните влево. Android начинает выделять текст слева от курсора. Когда нужная часть для удаления выделена, отпустите кнопку. Если передумали удалять, не отпуская кнопку ведите пальцем вправо.

    По своей сути Swype это QWERTY клавиатура с удобным вводом сообщений. Сама идея клавиатуры не нова: для набора текста достаточно соединить линиями необходимые буквы, главное при этом не отрывать палец от экрана до тех пор, пока все буквы слова не отмечены. Такие приложения уже существуют давно, да и во многих гаджетах есть «свайп» в клавиатурах. К слову, Swype тоже существовал ранее, однако, его было очень трудно установить и только самые смелые пользователи решались на это. Приложение вышло в двух версиях: полной и trial. Ознакомительная (бесплатная) версия действует тридцать дней, а полная стоит 31,32 рубля.

    Явное преимущество этого приложения заключается в простоте его использования, количестве различных фишек и удобных жестов. К примеру, пользуясь этой утилитой, вы можете забыть о пробеле. Как только пользователь завершает слово, он может вводить следующее – пробел появится автоматически. После первого запуска программа выводит на дисплей пользовательское соглашение, синхронизацию и, конечно же, обучающие картинки. Картинки подробно разъясняют, как пользоваться этой клавиатурой и рассказывают о её возможностях.

    Swype поддерживает около 50 различных языков мира. Масштаб разработки таков, что для каждого языка разработан свой алгоритм исправления ошибок, а также метод угадывания слов по первым буквам. При этом отгадывает он слова не очень хорошо и зачастую приходится набирать его полностью. Раскладка клавиатуры меняется просто – необходимо зажать пробел на пару секунд и выбрать язык набора. По умолчанию утилита оснащена английской раскладкой, другие языки необходимо скачать в настройках приложения.

    Неудобно скользить по буквам? Нажимайте на каждый символ по отдельности или диктуйте текст в микрофон вашего устройства. Значок записи расположен снизу между точкой и смайликом. Настройки можно вызвать непосредственно с клавиатуры, они замаскированы под иконку приложения Swype, что расположен в нижнем ряду слева.

    Оформление клавиатуры запросто изменить, это можно сделать в настройках приложения. Каждому придется по вкусу хотя бы одна тема, ведь на суд пользователя представлено целых тринадцать абсолютно разных дизайнов. И последнее о чем бы хотелось сказать, это облако слов. Swype это единственная программа в своем роде, которая предлагает удобную синхронизацию словаря пользователя и постоянную подкачку новых слов. А самое главное, в словарь можно записать даже электронные адреса. Далеко не все приложения такого рода позволяют это сделать. Так как пользователь является одним из создателей лексикона своей клавиатуры, он никогда не упрекнет её в малословии.