Вопросы по андроид-разработке
Обновлено 20 июля 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.
(Я вижу, что множество людей НЕ выстроилось к микрофонам.)