Android | Михаил Белый
309 subscribers
272 photos
32 videos
127 links
Авторская песочница о карьере в IT в роли Mobile Dev (Android, Kotlin, Multiplatform) и разных вещах, которые мне интересны.

Посты каждый день в 5 вечера.

Автор: @michaelbel

Забустить: t.me/boost/foundout

Задонатить: boosty.to/michaelbel
Download Telegram
Как не болеть

Из года в год при наступлении холодов обсуждаем как не болеть. Я открыл в этом деле серебряную пулю.

Болеет человек разумный не из-за холода, а из-за вирусов. Гуляешь в переполненных местах или сидишь дома – не так важно. Зимой при отоплении воздух становится сухим, слизистая носа пересыхает и проклятым вирусам становится легче цепляться за клеточную поверхность. Когда же воздух влажный, вирус вместе со слюнями и соплями улетает в пищевод, где долго не прожить.

То есть воздух надо увлажнять. С этим хорошо справляется увлажнитель воздуха. Регулярно заливать в него водичку. И пусть отрабатывает. В пересушеном воздухе 20-30% влажности. Надо нагнать 40-50%.

Можно спать 5 часов, запивать лейс краб колой, скуфидонить, выгорать и глотать колеса. Главное – делать это в квартире с влажность воздуха > 40%. Проверено на себе. Два года без соплей.
15751
Navigation3

Перетащил свою kmp-поделку на новую библиотеку навигации от гугла. Для приложения на 7 экранов процесс занял 1 час.

Начиналась навигация с переходов между активити с помощью интентов. Потом single-activity + фрагменты. Потом Cicerone. Потом Navigation Component с XML-графами. Потом Navigation Compose. Потом эта же навигация стала Type safe.

И вот теперь мы здесь.

Сегодня котируется подход practice-first, когда сначала код за тебя пишет агент, а уже потом ты разбираешь теорию, чтобы запомнить её через опыт, а не абстрактные определения.

В гугле это осознали и выкатили инструкцию для LLM, как мигрировать с 2 версии навигации на 3. Все что требуется – запустить агента и подождать несколько минут. Я попробовал Gemini 3 Pro в Android Studio и ChatGPT 5 в Codex. Обе справились почти на отлично. Нейросеть от гугла больше понимает за андроид-проекты, а не за kmp. Даже зависимости подключила android-only. В проект влил ветку, созданную в Codex.

Отдельное спасибо агенту, что сообразил обновить koin-модули вьюмоделей, так как в новой навигации больше нет удобного получения аргументов из SavedStateHandle.

Приложение запускается и тыкается. Что пришлось поменять:

• У метода NavDisplay три перегрузки и агент взял ту, где напрямую не используется back stack. Я хоть новостей и не читал, но перед глазами мелькали релизноуты как удобно там экраны добавлять через .add и удалять через .removeLastOrNull. Поэтому поменял перегрузку и управление стеком.

• Агент забыл привязать жизненный цикл ViewModel к entry, а не ко всему NavHost. Добавил rememberViewModelStoreNavEntryDecorator.

• В Nav2 при жесте назад по умолчанию использовалась fade-анимация. Вернул ее в Nav3, переопределив predictivePopTransitionSpec. Новая анимация по умолчанию пока слишком кривая.

Хороший пример kmp-проекта на Nav3 – официальное приложение kotlin-konf. Многим оттуда вдохновился.

Теперь, когда все сделано, можно начинать изучать, что нового в этой навигации. И потом мигрировать проект посложнее.
1032
F1

В этом году наверстал два тренда, которые всегда игнорировал. Первый – мне подарили PS5, теперь я тоже говорю, что Элли – мискаст. Второй – начал шарить за лор Формулы 1.

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

Но за последние пару лет все поменялось. И в этом большая заслуга самих менеджеров формулы. Они агрессивно перестроили маркетинг. Сделали гонку модной и привлекательной. Охватили большую аудиторию.

• Отправили старых руководящих пердунов на пенсию
• Продали стриминг эпплу
• Выкатили игру на последнюю плойку
• Снимают сериал на нетфликс
• Сняли 2.5 часовую рекламу с Бредом Питтом
• Бесконечные рилсы и контент в соцсетях
• Позвали Ханса Циммера, чтоб залупендил саундрек
• Финалы катают в ОАЭ – безвиз + удобный часовой пояс
• Трехдневный фестиваль с фанзоной, едой и мерчом

Так что я, отсмотрев десяток рилсов, видос полное руководство на ютубе, прочитав три статьи в википедии и спросив у перплексити что там и куда, теперь малость шарю за Ферстаппена, Норриса, Леклера, пит-стоп, оверкат и сейфти-кар.

Посмотрел только финал, зато какой! Впервые с 2021 года новый победитель, с логотипами джеминай на тачке и андроида на каске, значит наш слон.
19321
Ох уж этот клятый нейронайм в мертвом интернете
11332
This media is not supported in the widget
VIEW IN TELEGRAM
9731
Android | Михаил Белый
Рождественский дроп

Юху, 300 уважаемых читателей у канала. Держать строй спартанцы. Не отписываемся!

Если победишь – пиши в бота.
11631
Android | Михаил Белый
This media is not supported in the widget
VIEW IN TELEGRAM
143221
Утопил очки за $500 в океане. Как говорится, остров меня не принял.

Это последняя фотка в них. Ко мне на лежак приполз геккон🦎.

С одной стороны досадно, только чехол и остался. С другой – побит рекорд авито-скама.
7221
This media is not supported in your browser
VIEW IN TELEGRAM
1565
Коллекционный юзернейм

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

Любое такое имя должно быть коллекционным, то есть приобретенным на аукционе/у владельца на площадке Fragment.

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

Можно пойти и выкупить юзернейм на площадке. Но проще заранее застолбить его в телеграме и затем преобразовать в NFT. Для этого открывается аукцион. Длится неделю. Минимальная ставка – 10 TON. Никому нет дела до этих торгов и ставка как правило не перекрывается.

Потом уже купленный юзернейм можно присвоить личному профилю, публичным группам и каналам. И активировать в настройках.

Изначально мне нужен был коллекционный юзернейм, чтобы присвоить его боту, который работает здесь в закрытом чате. Это единственный способ включить для него премиум функции. Но в момент привязки просят единовременно занести 1000 TON. А-ху-еть. Курс еще и вырос. Отказался.

@android_career

t.me/android_career

android_career.t.me
10221
Криптовалютное будущее

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

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

У меня полгода в телеграм-кошельке пылились 50 USDT и я от нечего делать решил их задепать на Полимаркете за Трампа, когда в США шли выборы. Пополнить полимаркет из РФ тот еще квест. Раньше я юзал Бинанс. Потом русских оттуда попросили и я переполз да Байбит. Из телеги перегнал USDT туда. Потом оттуда перегнал их в Gate через блокчейн Солана. Там купил на них USDC и через Полигон перегнал их уже на Полимаркет. Он работает только с USDC и Полигоном.

Переводы чудовищно медленные, могут идти до 10 минут. Транзакции стоят по 1 доллару. Если бы Виза сотку сжирала за перевод – она бы обанкротилась. А тут терпим. В итоге ставка сыграла и я поднял бабла. Но пока гнал выигрыш обратно в телеграм – по пути растерял половину на комиссиях. Одни расстройства.

Даже в самой телеге надо звездами платить за переводы между кошельком и TON. Нельзя купить сколько надо звезд – бери только 500 штук.

Спасибо крипте за возможность вывести котлету денег в другую юрисдикцию, минуя красный коридор. В остальном она мне не нравится.
863
This media is not supported in your browser
VIEW IN TELEGRAM
6211
Вкусная несъедобная сущность

«HR получит свой процент – а ты вкусный оффер»
«Мои менти лутают самые вкусные офферы»
«В ВК тоже вкусно работается»
«На вкусные вакансии собешусь»

У меня уши в трубочку сворачиваются от таких эпитетов. Скрип пенопласта легче переносить. Ну какой к черту вкусный оффер? Оголодал – поешь. Даже «сочный» теперь звучит не так мерзко.

Без негатива.
Всем добра и позитива.
866421
Вайбкодинг на шезлонге

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

Именно этим я и занялся, лёжа на шезлонге. Мне понадобились две простые штуки:
• сервис для скачивания обложек с ютуба по ссылке в 1 клик – просто jpg в максимально доступном качестве
• калькулятор чисел в столбик, чтобы считать расходики – с поддержкой любых форматов ввода

Для таких простых штук даже мак не нужен, достаточно смартфона с приложениями ChatGPT и GitHub. В первом запускается Codex. Во втором мерджатся изменения и происходит деплой проекта на Pages.

Первые проекты по привычке писал на Kotlin. Логика простая: его я знаю лучше, чем другие языки, он транслируется в джаву, а она запускается где угодно. Быстро понял, что это херня. Для веба нужно использовать JavaScript. На какую-либо архитектуру и чистоту кода тоже забил – у меня всё в файле index.html.

Мой вайбконвеер работает так:

1. Создаю пустой репозиторий и добавляю его в Codex
2. Пишу промпт «делай давай проект»
3. Жду пока нейросеть одумается
4. Мерджу PR
5. Деплой проекта
6. Запуск
7. Повторить итерацию

И на каждом этапе вылезают недостатки:

Долго думает. Нейросеть размышляет продолжительное время. Написал что надо сделать, дальше индексация, написание кода и создание PR. Я вынужден в эти 2 минуты отвлекаться на ленту твиттера. Хотелось бы, чтобы PR создавался за 5 секунд. Жду когда понастроят датацентров и включатся в работу над удержанием.

Конфликты веток. Параллельный вайбкодинг со смартфона не работает. Если делать две задачи одновременно – неизбежно прилетят конфликты. Коммиты дерутся за строчки как коты за сосиску. Нужна очень распределенная архитектура для такого. И то не поможет. Поэтому пока – по одной задаче за раз. Медленнее, чем хотелось бы, но зато стабильно.

Много итераций. Нейросеть пока не понимает меня с полуслова – отсюда куча итераций. Вокруг этого растут сборники промптов, секретные техники, советы как угрозами заставить работать лучше, гайды по персонализации и правильным рамкам. Я понимаю, что можно написать идеальное ТЗ, учесть все нюансы и крайние случаи. Но я просто не хочу. Я написал как отрезал: «сделай вот это», «дизайн как тут ссылка» и получил в разы меньше когнитивной нагрузки. Меня устраивает.

Из прагматизма я сознательно скипаю «хороший» промптинг. Мне нужен результат, а не олимпийский разряд. Печатать или наговаривать получается в разы медленнее, чем поток сознания в моей голове. К тому же нейросети очень быстро развиваются и еще быстрее приучают нас к простоте. Зачем учить промпты и все такое, если через месяц выйдет новая версия, которая будет по моему усталому вздоху понимать, что воюет не туда. А пока я и так получил что хотел.
85321