Как включить одностраничный режим в FBReader (Android)? Без шуток!!!
Решил сбросить настройки, поскольку у FBReader затупила анимация. Как мне теперь вернуть одностраничный режим?
Моё первое приложение для Android - трекер веса
Всем доброго времени суток, уважаемые погромисты и мимо ходящий люд!
Некоторое время назад я решил похудеть, а чтобы где-то этот процесс зафиксировать пошел искать приложения с трекингом веса. Таких много, не спорю, в одном только RuStore показывает 500 записей (спойлер: теперь их 501), но ведь не интересно взять и выбрать что-то готовое. Посему, мной было принято решение сделать своё собственное приложение на телефон, с помощью которого я мог бы следить за весом и всё такое прочее. Отвечая на витающий в воздухе вопрос: да - навайбкодил. Но при этом базовое понимание архитектуры и в целом языков программирования имею, когда-то давным-давно увлекался созданием безделушек в Visual Studio на c# с помощью Windows Forms.
Само приложение получилось интересным и открытым к новым функциям, помимо отслеживания веса в нём есть, например, более 20 достижений, связанных не только с весом, и калькулятор ИМТ (ваще база), а еще можно по-зумерски отмечать настроение во время взвешивания с помощью эмодзи, эти смайлики потом отображаются на графике. Ну и конечно же карта похудения - свайпайте свои фотки, загруженные в приложение, сравнивайте результат по весу и обхватам. Мы с супругой, кстати, именно этим приложением теперь и пользуемся.
Приложение полностью бесплатное, нет рекламы и подписок;
Приложение работает без интернета, и вообще ничего в интернет не отправляет;
В дальнейшем никакая монетизация приложения не планируется, ну может быть какие-то донаты, если найдутся желающие.
Трекер называется ShowWeight - микс половины моей фамилии и слова "вес" на английском. К сожалению я протупил и не объединил две W в одну, чтобы получилось ShoWeight, возможно так было бы лучше, что уже поделать.






На третьем скриншоте, кстати, наш кот Моррис - три года отроду.
Если есть желающие затестить приложение - оно доступно в RuStore, не хотелось, конечно, ради такого мелкого ИИ проекта регистрироваться в Google Play, импакта никакого всё равно нет. Недавно как раз выпустил обновление, добавил некоторые прикольные штуки
Буду очень рад обратной связи по качеству приложения, в целом я считаю его законченным, оно умеет записывать вес и строить график, это самое главное. Всё остальное добавлялось исключительно в исследовательском интересе, хотелось понять на что способен агент Gemini, встроенный в Android Studio. Свои мысли по приложению можете оставлять здесь или в группе в ВК, ссыль на неё есть в самом приложении и здесь.
Как я попробовал вайб-кодинг и сделал приложение своей мечты (почти, осталось немного)
Вступление перед вступлением:
Для ЛЛ, я навайбкодил Android-суфлёр для музыкантов и, его полную, на текущий момент, версию, можно скачать просто так, бесплатно. И потом тоже можно будет, только версии будут ещё новее. Ссылки в конце.
Извините за простыню текста и не очень складный слог. Рассказать хотелось много, но в прозе я не очень силён.
Вступление
Привет, Пикабу! Меня зовут Роман. В разные периоды своей трудовой деятельности я работал лаборантом на кафедре психологии, преподавал на ней же, работал психологом в поликлинике, но всегда, помимо этих, временами, не самых интересных вещей, я увлекался музыкой. Писал стихи, песни, выступал с ними, какое-то время даже занимался организацией квартирников, а однажды собрал группу, и мы играли мой авторский материал (года 2, наверное).
Нашёл только это фото славных времён группы «Чай с Котом» (да, так и назывались). Зато на нём хорошо видно главных конкурентов моего приложения — пюпитры.
С чего всё началось?
С самого начала своих выступлений у меня в голове сидела мысль, что телефон, бумажки, заметки – это всё не то, что нужно артисту на сцене, что материал надо учить и выступать без «помощи» (честно говоря, сейчас думаю примерно так же). Но частенько я замечал, что люди используют телефон как помощника и страховку для исполнения (и время от времени отрываются, чтобы перелистнуть текст), да и у самого иногда случались ситуации, что забывал первую строчку следующего куплета или аккорды, даже в песнях, которые написал сам и, с которыми, часто выступал.
Во времена группы я впервые воспользовался распечатками на пюпитре. Спойлер – провал, было неудобно, в том числе, потому что зрение у меня не очень. Может, поэтому, когда появилась возможность прикоснуться к разработке, я подумал, а почему бы не попытаться решить этот вопрос.
23 мая этого года мне исполнилось 35 лет, и я решил попробовать что-то новое для себя. У меня была подписка на ChatGPT, и мне стало интересно узнать, как работает Codex. Изначально не было цели делать суфлёр или что-то подобное, но одна из первых идей, которые пришла в голову, сделать приложение, которое может помогать во время выступлений, почему бы и нет.
Раньше я пробовал несколько известных приложений в рамках домашних репетиций, иногда опыт на старте был неплохим, но потом начинались разные штуки, вроде «купите подписку, чтобы сохранять песни офлайн, добавить больше песен, собрать избранное. И как-то желание пользоваться этими штуками отпадало. А ещё, во многие нельзя добавить свои песни. Для меня, как автора, это тоже было важно.
Вайб-кодинг
Итак, мне 35, я открываю ChatGPT и просто спрашиваю, а что такое Codex, а можно ли написать с ним приложение на Android, а что, если это будет, например суфлёр для музыкантов?






Сохранил для истории. Прокручивать чат на несколько недель вверх - та ещё задачка. Вангую, кто-то поленится прокутить карусель =)
Через 15 минут у меня был первый «прототип» приложения. Криво, косо, но работает. И меня это очень впечатлило. Я не написал ни строчки кода и получил рабочую вещь! Да ладно?!
Под впечатлением, я начал работать с тем, что получилось и стараться его улучшить, в основном, по собственным ощущениям и пожеланиям. Процесс всё так же увлекал. Причём, сначала я не планировал для него какое-то будущее за пределами моего телефона, но через пару дней получилась забавная штука, которой я захотел поделиться с парой друзей. И получил хороший отклик, мне сказали, что это очень удобно и они будут им пользоваться!


Так выглядела версия экрана сценического режима эпохи, когда я решил делиться приложением
Разработка
До определённого момента, я просто старался добавить знакомые функции, но во время теста стало понятно, что этого недостаточно. Есть прокрутка, есть скорость прокрутки, но точности не хватает. Тогда я решил, что мне нужна функция, с помощью которой, можно было бы добавить приблизительное время песни, для того чтобы скорость рассчитывалась исходя из него. Стало лучше, но всё равно не идеально. И борьба за точность продолжилась. Но, не сразу…
Можно сделать замер по затраченному времени. А если знаете, сколько времени у вас уходит на песню, то можно сразу ввести значение. Я записывался на диктофон, выставлял время и сравнивал. Возможно, это не самый лучший способ, да...
В процессе оказалось, что 6000 строк кода в MainActivity это не очень и как будто бы надо с этим что-то делать. И начался рефакторинг. Огромная трудоёмкая работа, полезная… результаты которой не увидит практически никто. Зато в последствии это дало больше свободы в работе – стало не так страшно что-то менять, добавлять новые функции, заниматься дизайном, а после редизайном приложения.
Философия
Также, в процессе работы, начала, простите за громкое слово, проявляться философия проекта. Например, базой для себя я решил сделать offline-first и мысль о том, что «Всё уже у тебя». Локации для выступлений могут быть очень разными, в том числе бары в подвалах, загородные дома и дачи. Даже парковка! Поэтому очень важно, чтобы твой репертуар всегда был тебе доступен. Даже если ты не в «труднодоступном» месте, никто не застрахован от падения интернета.
Следующие основополагающие принципы пошли из базового. Например, аккаунты оффлайн-приложению, по сути, не нужны. Есть твоё приложение и песни в нём. Чего ещё желать?
А вот отсутствие подписки – немного другая история. Да это выливается из offline-first. Но, я считаю, что твой суфлёр – это такой же инструмент, как тюнер и каподастр. И мне не нравится идея того, что каждый месяц тебе продают одно и то же приложение, твои песни и твою работу, проделанную с ними. Никто не платит за молоток каждый месяц просто для того, чтобы им владеть. Инструменты рулят, долой сервисы!
Поэтому, база приложения:
- Музыкант важнее, чем технология. Приложение должно помогать, а не управлять и командовать;
- Инструмент, а не сервис;
- Офлайн в первую очередь, регистрации не нужны, вся работа пользователя принадлежит пользователю;
- Нет функциям ради функций, надёжность важнее;
- Никаких лишних и подозрительных разрешений;
- Интерфейс должен быть простым, не отвлекать, не давить;
В сумме: Я не хочу ещё один музыкальный сервис. Мне нужен инструмент, который не требует интернета, не просит войти в аккаунт за пять минут до выступления, просто хранит мои песни там, где они должны быть и показывает текст, когда он нужен.
Функции
Давайте рассмотрим приложение поближе. В самом начале появились библиотека, редактор текста с аккордами, транспонирование и сценический режим – наш основной рабочий экран. А ещё, на ранней стадии появился «умный» перенос строк, для того чтобы адекватно перенести аккорды и текст при большом размере шрифта. То, что надо для людей со слабым зрением (меня, например).




Так выглядит главный экран в текущей версии. Акцентные цвета интерфейса меняются, цвета аккордов, текста, фокусной строки, есть светлая тема(тема сценического режима может настраиваться отдельно). А в конце - вариант экрана с большим текстом.
Вернёмся к погоне за точностью. Я добавил функцию прокрутки по приблизительной длительности песни, она повышала точность, но всё равно была не идеальна. Поэтому я стал думать, как ещё можно повысить точность? Я решил, что в тексты можно закидывать своеобразные якоря-чекпоинты. И тогда родилась одна из функций, которые, можно сказать, является фишкой приложения – Карта песни. С помощью неё можно настроить, в какой момент времени определённый блок песни проходит через фокусную зону - ещё одно изобретение для комфортного чтения текста. Собственно, та самая ситуация, когда текст тебе не нужен постоянно, но может быть нужен только в определённый момент. И он там будет!
Карту можно записывать двумя способами – с внешним источником - по аудиозаписи, если у вас, например, есть записи с репетиций, концертов или просто диктофонная запись исполнения. Второй – непосредственно внутри приложения – открывается рабочий экран с блоками, начинается процесс записи и блоки, по ходу исполнения, с помощью горизонтальной линии записи, выставляются по времени (минус способа – нужно тапать на кнопку «записи», чтобы отметить вход и выход из блока, но «разницу» можно скорректировать вручную)


Два варианта работы с Картой песни. 1. Внешний источник 2. Запись Карты внутри приложения
А ещё, в нём есть метроном. Просто факт. Потому что это была просьба первого человека, который воспользовался приложением. Сначала я сделал его через tone generator, звучало как будто кто-то ритмично нажимает кнопки на телефоне. В последствии, был улучшен с помощью двух звуков деревянного блока – один клик и один акцент, благодаря этому можно ввести любые ритмические рисунки, но пока в нём только 3/4 и 4/4.
А ещё, по просьбе пользователя появилась функция «Галя, у нас отмена!» в редакторе текстов. Раньше если ты ошибся, то ты ошибся, но теперь всегда можно откатиться. Удивительно, но я не замечал этого простого недостатка уровня слона... потому что пользовался импортом своих подготовленных файлов из txt.


1. Undo и Redo. 2. Однажды, до этого, был проведён "книжный тест", была загружена книга на 217к символов. Файл открылся, хоть и загружался заметно дольше. Прокрутка работала. Android один раз ругнулся, мол приложение не отвечает.
Что произошло за месяц
На текущий момент идёт второй месяц разработки. И я понял, что вайб-кодинг значительно упрощает работу, при условии, что вы знаете над чем работаете. А вот разработка в целом – не настолько простая вещь. За этот период я успел попробовать себя в роли продакт-менеджера, UX/UI-дизайнера, архитектора, тестировщика, технического писателя, аналитика, маркетолога, бренд-стратега, SMM-щика, копирайтера, комьюнити-менеджера, специалиста по публикации приложений, исследователя конкурентов и иногда — психолога собственного проекта. В общем, за короткий период я, можно сказать, прошёл практический курс по продуктовой разработке. А ещё, поверил в то, что можно делать хорошие вещи не только для себя.
Что дальше
К чему дальше движется проект StageLyrics? Сейчас я пытаюсь разобраться с регистрацией в Google Play Console, но несмотря на это, я считаю, что приложение должно быть доступным. Поэтому, если я и осилю этот этап, возможность скачать apk бесплатно останется, а покупка в приложении будет просто способом отблагодарить автора. А ещё, можно отблагодарить добрым словом, честным отзывом или сообщением о баге. Также, думаю о локализации.
А вот не планируется и не будет планироваться превращение инструмента в музыкальный сервис с подписками, аккаунтами и прочими прелестями, которые когда-то оттолкнули меня от других приложений.
Финал
Хочется пожелать всем, кто связан с музыкой и исполнением (да и тем, кто не связан, тоже, чего уж там) успехов в творчестве, будьте смелыми, уверенными и продолжайте делать этот жесткий мир более прекрасным!
"Извинитес, это телеграм"
Если вам интересно скачать приложение и познакомиться с ним, следить за судьбой проекта или просто поддержать «присутствием», можете вступить в тг-чат приложения t.me/stagelyrics
Если хотите просто познакомиться с приложением, но не заходить в тг-чат, я подготовил альтернативные варианты – Яндекс Диск и Google Drive:
Почему не GitHub? Честно, я пока ещё не умею, но, надеюсь, что и с этим справлюсь!
Спасибо за ваше внимание! И если StageLyrics поможет хотя бы нескольким музыкантам чувствовать себя спокойнее на сцене — значит, всё это время прошло не зря.
P.S. Маленький бонус, я сделал небольшой demopack, чтобы вы могли без труда посмотреть функционал. Внутри песни из моего сольного проекта с настроенными картами, вы можете открыть песню на любой площадке и посмотреть, насколько точно работает синхронизация. Загрузить demopack можно с помощью импорта резервной копии в настройках приложения.
P.P.S. Это моё первое приложение, но, надеюсь, что не последнее
Делаю в MRead тап-зоны: теперь экран можно разметить под себя
Делаю для MRead настраиваемые тап-зоны
Это настройка, где можно самому разметить экран чтения: какая область листает вперёд, какая назад, где открывается меню, где меняется яркость, а где вообще ничего не происходит.
Сначала думал, что это будет небольшая фича. Ну что там: прямоугольник, действие, сохранить.
Но дальше началось интересное.
Нужно было сделать так, чтобы зоны можно было двигать, растягивать, удалять, пересекать друг с другом и при этом не превратить настройку в панель управления космическим кораблём.
В текущем виде задумано так:
можно создать несколько зон;
перетащить зону куда удобно;
растянуть за угол;
выбрать действие;
поставить пресет;
очистить всё и вернуться к обычной схеме.
Из действий есть листание вперёд/назад, меню, закладки, оглавление, яркость плюс/минус, TTS, выход из приложения и “ничего”.
“Ничего” оказалось не шуткой. Иногда реально нужна область экрана, которая не делает ничего. Например, если туда часто случайно попадаешь при чтении.
Отдельно пришлось решать пересечения.
Например, можно сделать большую зону “вперёд” почти на весь правый край, а поверх неё маленькую зону “меню” в углу. Тогда возникает вопрос: если тап попал сразу в обе зоны, кто победил?
Я сделал правило простым: побеждает меньшая зона. Обычно маленькую область ставишь специально, а большая работает как фон.
Самая неприятная часть была не в математике прямоугольников, а в жестах.
В Compose зона могла начать перетаскиваться, потом интерфейс пересобирался, pointerInput перезапускался, и drag срывался прямо во время движения. Визуально это выглядело так, будто блок просто отлип от пальца.
Починилось через стабильные ключи для зон. Без key Compose начинал путать элементы при изменении порядка отрисовки, особенно когда выбранная зона поднималась поверх остальных.
В итоге фича получается больше, чем я ожидал. Не просто «тап слева/справа», а маленький редактор управления чтением. Выйдет в следующем обновлении.
Параллельно в последних версиях уже завезено: полка «Читаю», дробные проценты прогресса, PDF-фильтры, кроп, контраст, настройка карточек в библиотеке и фиксы для больших библиотек.
Но тап-зоны сейчас, наверное, самая заметная штука именно в интерфейсе чтения.
MRead бесплатный, без рекламы. GitHub использую как страницу релизов: APK, changelog и контрольные суммы.
Скачать, посмотреть changelog и закинуть баг/идею удобнее всего через канал - там же все ссылки на сторы в закрепе:
Отдельное спасибо всем, кто пишет баги, предлагает фичи и просто рассказывает, где неудобно. Большая часть правок появилась именно из такого фидбека.
Слабый пк или же что то да может показать?
У меня есть пк который собирался ещё в 2011-2013 в ручную(точную дату не помню),gt 660,8 гб оперативки и еще какой то там AMD или AMX но тут к сожалению не помню,пк в ремонте из-за кое каких нюансов... тянет ранее популярные игры "grand theft auto" все части на данный момент,cs go(cs 2 не тянет по логичным причинам,sse 4.2 инструкций нету),TWD(the walking dead 1-4),beaming drive(в 5 фпс...),и CoD 1/2/3/advanced и прочие старые игры,думаю в этом году полностью пересобрать этого франкенштейна...
Просто поставь APK, говорили они!
Apple уже вынесла Макс и ВК из App Store. А толпа андроидоводов радостно ржала.
С сентября Google окончательно закроет и эту лавочку! Приложения будут ставиться только от верифицированных разработчиков. Никаких сторонних источников, никаких сторонних APK. Только Play Market и одобренный корпорацией софт. Теперь и эти умники окажутся в той же жопе, что и айфонщики.
Интересно как отреагируют те кто вчера поддерживал блокировки "плохих" приложений, на такой пассаж от "корпорации добра"? Свобода - это когда разрешено только то, что одобрили.
Добро пожаловать в светлое будущее, где на обеих платформах можно ставить только то что вам разрешили.
UPD: Разъяснения в коментах










