Вопросы по андроид-разработке

Обновлено 25 мая 2024 года.

Сами вопросы

Как я уже́ писал, я приостанавливаю разработку. Но у меня остаются нерешёнными некоторые задачи. Также остаются вопросы. Чтобы быстро вернуться к тому, на чём я остановился, один вопрос оставляю здесь, а остальные будут у меня в жж.

Итак, вопрос:

Что выбрать для хранения несжатых предложений в ленте: ремембер сэйвэбэл или простой ремембер?

Ролики по андроид-разработке

Оставлю также ссылки на ролики из «Ютуба».

Собственные макетирующие компоненты. Сложная графика

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

Разработчик может создавать свои собственные макетирующие компоненты (лэй-а́утс, layouts), в дополнение к стандартным — это «Ряд» (ро́у, Row) (행?), «Столбец» (ко́лэм, Column) (열?) и прочие.

Макетирование

Программная генерация графического интерфейса приложения идёт в три фазы: композиция, макетирование, отрисовка.

Фазе макетирования нужно знать габариты компонентов и их расположение. Для этого «Компоус» использует специальные параметры: ме́жерэбэлс (measureables) и плэ́йсэбэлс (placeables).

Ролик также объясняет модификаторы (мо́дифайэрс, modifiers) и «родительские данные» (пэ́рэнт дэ́йта, ParentData).

Вопросы и ответы по «Компоусу»

Ролик 2021 года с вопросами и ответами по «Компоусу».

Главное — сравниваются «Компоус» и создание графического интерфейса экс-эм-эл кодом, при помощи старого механизма представлений (вьюс, Views).

Также упоминается «Мате́риал ю» (Material You).

Как выглядела разработка андроид-приложения раньше (2007 год)

В ролике есть ява, «Экли́пс» и то, как выглядели кнопочные андроид-смартфоны.

Особенности разработки приложения, адаптированного для незрячих

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

Введение в жесты

Термином «жест» здесь и далее в посте я называю только то, как пользователь смартфона «возит» пальцем по экрану. Про жесты вроде «потряси смартфон, чтобы выполнить действие» разработчики ОС «Андроид», кажется, стараются не вспоминать. (Хотя у меня в настройках смартфона на «Андроиде-11» пока ещё есть меню «Жесты», в котором можно, к примеру, включить возможность «разбудить» смартфон поднятием из горизонтального положения.)

Итак, вот как можно использовать жесты в «Компоусе». («Токбэк» учтён!)

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

Инсеты и системные жесты

Политика принудительного запуска приложений в формате «от края до края», вкупе с системными жестами, заменившими интерфейсные кнопки «назад», «домой» и «последние приложения», дополнительно нагружает разработчиков сложных приложений. Может, всё не так плохо? Посмотрим...

Офтопик: ограничения, которые накладывает грамматика того или иного языка на самовыражение

Я не говорю, что грамматика мешает и что от неё следует избавиться (это невозможно). Скорее, она диктует правила и в определённых случаях у носителя попросту может не хватить умения выразить свою мысль ясно и грамотно.

Для начала приведу два предложения, на разных языках:

Don't press that button yet. (Источник.)

Пока не нажимай ту кнопку.

Оба предложения выражают одну и ту же мысль (?), но языки, используя правила своих грамматик, размещают слова внутри предложений каждый на свой лад. Конечно, слова встают в определённом порядке не случайно, а по разумной воле говорящего или пишущего, но исходное намерение может быть серьёзно искажено или вовсе утрачено.

Первое препятствие для точного самовыражения: способ, среда передачи информации.

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

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

Третье препятствие: грамматика может вводить в заблуждение либо может оказаться неспособной передавать определённый тип информации. Самый очевидный пример: текст на русском языке, без специальных средств форматирования (курсив, подчёркивание, выделение жирным шрифтом или цветными чернилами, использование нескольких гарнитур в пределах одного высказывания, разрядка, нестандартная вёрстка), не передаёт эмфазу (emphasis), то есть выделение голосом, интонацией каких-либо частей предложения. Если следовать нынешней практике письма на русском языке, можно предположить, что «по умолчанию» выделяется голосом последняя часть фразы, — однако в контексте существования иных практик подобный подход вызывает вопросы: смотри про берестяные грамоты выше и сравни с инверсией в английском языке:

So do I.

She I saw so plainly.

Описанные три проблемы, по счастью, легко нивелируются в общении между людьми: способностью договариваться, «здравым смыслом» (common sense), общими интересами и прочими факторами. Однако существующие компьютерные средства моделирования естественных человеческих языков едва справляются с этими проблемами. Голосовой ассистент «Гугла», встроенный в «Андроид», на 2019 год «с трудом справляется» (barely works for) с задачей распознавания речи — не думаю, что спустя пять лет ситуация сколько-нибудь улучшилась...

Напоследок — пример того, как в одном предложении «спряталось» два высказывания:

Записи хранятся в дневниках как листья в гербарии. (По мотивам «Тотального диктанта — 2024».)

И вот ещё пример эмфазы, выраженной изменением порядка слов:

I see a lot of people are lined up at the mics not.

(Я вижу, что множество людей НЕ выстроилось к микрофонам.)