tm2027 · борд

Телефон в руке

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

Стекло - картинка, а не текст экран пана рисуется на канве из цветных отрезков; выделение придётся вести по клеткам самим - системного выделения текста на канве нет ни на одной из двух платформ.
Вставка уже есть в протоколе буфер уходит в пан как type{text} - ровно то, что делает клавиатура. Ничего на деке менять не надо; вопрос только в том, чем эту кнопку позвать.
Порядок панов один на всё приложение PaneOrder.kt и его swift-двойник дают один порядок и списку, и ленте над стеклом - две карты вместо одной были бы двумя разными «следующими».
Пара сейчас одна и на Android, и на iOS хранится ровно одно подключение (Store, PairingStore). Список дек - это новая форма хранилища и миграция того, что уже спарено.
вот так это выглядит

Слева направо: выделение на стекле, вставка, список панов, список подключений. Набор по умолчанию - долгий тап, поток строк, пузырь с КОПИРОВАТЬ, клавиша ВСТАВИТЬ, линии между строками, список дек, лента с точками.

1 · как начинается выделение

Стекло уже занято жестами: тап зовёт клавиатуру, свайп по ленте ходит между панами, щипок меняет размер, перетаскивание возит картинку. Выделению нужен жест, который у них не отнимут.

1A

Долгий тап

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

цена: малая - жест уже распознаётся, нужен слой выделения
1B

Клавиша ВЫДЕЛИТЬ

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

цена: малая - режим и клавиша; жесты стекла не трогаются
1C

Два пальца

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

цена: средняя - спор с щипком приходится решать по движению
2 · что именно выделяется

Терминал - это сетка, и у выделения в ней два разных смысла: кусок экрана и кусок текста. Они расходятся ровно там, где строка длиннее ширины.

2A

Прямоугольник

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

цена: малая - копия читает прямоугольник клеток
2B

Поток строк

От точки до точки, как читается текст: хвост первой строки, целые средние, начало последней. Так выделяет всё, что показывает текст, и так копируют команду или путь. Плата: столбец таким выделением не взять.

цена: малая - копия склеивает строки в один текст
2C

Целые строки

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

цена: никакая - и самая грубая нарезка из трёх
3 · чем копировать

Выделение сделано - его надо забрать. Вопрос в том, кто предлагает глагол: приложение или система.

3A

Пузырь над выделением

Своя маленькая плашка прямо над выделенным: КОПИРОВАТЬ и ВСЁ (весь экран одним нажатием - то, за чем чаще всего и лезут). Наши слова, наши чернила, одинаково на обеих платформах. Плата: ещё одна всплывающая поверхность, которую надо самим прятать и не давать залезть за край.

цена: малая - плашка и две кнопки
3B

Системное меню

То самое меню, что вылезает над выделенным текстом всюду: Copy, Share, Paste. Знакомо до автоматизма и бесплатно даёт «Поделиться». Плата: на двух платформах оно устроено по-разному, а его слова - системные, не наши.

цена: средняя - две разные системные поверхности
3C

Само при отпускании

Отпустил палец - выделенное уже в буфере, внизу коротко всплыло скопировано. Ноль нажатий, ноль поверхностей: самый быстрый путь из всех. Плата: докрутить выделение после отрыва пальца нельзя - что взял, то и взял, и второй заход начинается заново.

цена: никакая - и никакого шанса поправить
4 · как вставлять

Буфер уходит в пан как type{text}. На iOS вставка уже есть - системным меню; на Android её нет вовсе.

4A

Клавиша ВСТАВИТЬ

В ряду над клавиатурой, рядом с esc и ctrl: одно нажатие, и буфер в пане. Всегда на виду, одинаково на обеих платформах, и рука уже там. Плата: ещё одна клавиша в ряду, где место считают по пикселям.

цена: никакая - кнопка и чтение буфера
4B

Долгий тап

Долгий тап по пустому месту - и всплывает ВСТАВИТЬ. Так вставляют везде, и ряд клавиш остаётся нетронутым. Плата: эту же секунду хочет выделение - значит выделение придётся звать иначе.

цена: малая - и один занятый жест
4C

Системное меню

Там же, где Copy: одна поверхность на оба глагола, и на iOS половина уже написана. Плата: на Android эту поверхность надо поднимать самим, а её вид - системный, не наш.

цена: средняя - и связывает ось 3 с этой
5 · разделители в списке панов

Сейчас паны стоят подряд, а группы разделены только отступом и заголовком. На пятом пане глаз перестаёт понимать, где кончился один и начался следующий.

5A

Линия между строками

Тонкая тёмная линия под каждым паном, кроме последнего в группе. Дешевле и привычнее некуда, и группа остаётся видна тем, что её линия обрывается. Плата: линий на экране столько же, сколько панов - на длинном списке это рябь.

цена: никакая - одна рамка на строку
5B

Карточка на группу

Каждый воркспейс - своя карточка с рамкой и фоном, паны внутри неё. Границы группы видно с любого расстояния, а сам список читается как стопка карточек. Плата: рамки съедают ширину, а её на телефоне и так мало.

цена: малая - контейнер на группу
5C

Линия под заголовком

Одна линия под названием группы - и всё; между панами по-прежнему воздух. Тише всех, и рябь не заводится. Плата: два соседних пана всё так же различаются только отступом, то есть ровно то, с чего начали, только с рамкой сверху.

цена: никакая - и половина ответа
6 · список подключений

Сейчас пара одна: чтобы уйти на другую деку, надо забыть эту и заново сканировать QR. Держать несколько - это новая форма хранилища и миграция того, что уже спарено.

6A

Одна дека

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

цена: никакая - и никакой второй деки
6B

Список дек

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

цена: средняя - форма хранилища, миграция, экран списка
6C

Список и автовход

То же самое, но приложение открывается сразу на той деке, где ты был в прошлый раз, а список ждёт под шапкой. Для одной деки поведение не меняется вовсе - а именно так телефон и живёт большую часть времени. Плата: если та дека спит, первое, что видишь - это ожидание, а не список.

цена: малая сверх 6B - помнить последнюю и её открывать
7 · переход между панами

Лента над стеклом уже ходит по кольцу свайпом, и её порядок - тот же, что у списка. Чего ей не хватает: сказать, где ты в этом кольце, и дать прыгнуть не на соседа, а куда угодно.

7A

Лента как есть

Ничего не добавлять: соседи по краям, свайп между ними, «‹» назад в список. Тише некуда, и на трёх панах этого действительно хватает. Плата: на девяти панах непонятно ни где ты, ни сколько ещё - только «влево» и «вправо».

цена: никакая - и никакой карты
7B

Лента и точки

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

цена: никакая - ряд точек по числу панов
7C

Лента и чипы

Под лентой - прокручиваемая полоса чипов: имя пана и глиф его состояния, тап - прыжок прямо туда. Девять панов становятся девятью адресами вместо девяти свайпов, и видно, кто просит рук. Плата: полоса ест строку у стекла и повторяет то, что уже есть в списке.

цена: малая - полоса чипов с прокруткой
пульт

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

выбрано 0 из 7
кликни по карточке - или по тумблеру на пульте