Андроидѣ | Михаил Белый
325 subscribers
285 photos
33 videos
1 file
140 links
Авторская песочница о карьере в IT в роли Mobile Dev (Android, Kotlin, Multiplatform) и разных вещах, которые мне интересны.

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

Автор: @michaelbel

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

Задонатить: boosty.to/michaelbel
Download Telegram
Жалоба на жизнь

Мне не хватает 36 ГБ оперативки на маке.
🤣11211
Эджайл-коучи

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

Тогда у меня не было времени это осмысливать. Надо – значит надо. Кто платит, тот и музыку заказывает. Но сейчас, оглядываясь назад, ясно следующее: компания зажралась. Деньги жгли карман. Эта коуч была предельно уверена в себе, а такая уверенность обычно идет рука об руку с огромной зп. Корпорации так устроены: скопилось много лишних шекелей – срочно куда-то их пристраиваем.

И как только на горизонте замаячил намек на снижение финансов – коучей выгнали первыми. Честно говоря, не вижу толпы скорбящих. Не похоже, что командная эффективность хоть сколько-то пострадала. Как будто все и так понимают, что делать для успеха общего дела.
🤣95421
Работает ли СДВГ-монтаж

На меня – очень даже да.

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

Есть блогеры, которых я слушаю фоном, пока загружаю посудомойку или жду, когда одуплится кодинг-агент. Это говорящие головы, интервью и прочая почти статичная картинка. Стартую с ×1.25. Если совсем тягомотина – ×1.5, ×1.75, сразу ×2.

Но есть и другая категория. Видео, которые мне просто жалко слушать фоном и смотреть на скорости. В первую и единственную очередь из-за дерганого монтажа. Хороший пример – канал Послезавтра. Каждую секунду что-то происходит: вставки, анимации, графики, звуковые акценты, выскакивающие картинки и прочие визуальные приколы. Если прибавить скорости – вообще ни за чем не уследишь. Даже под еду тяжеловато. Потребляю максимум на ×1.25.

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

К видеомонтажу у меня большой пиетет, примерно как к разработке ПО. Почитаю труд тех, кто профессионально монтирует. Хорошая работа радует глаз. Не хочется упустить ни одной детали.
84🤣3111
Абьюз системы планирования

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

Слоты в календаре
Выглядит красиво. Не просто существуешь, а управляешь жизнью. Раскидал задачи по временным слотам и уже становишься новой версией себя. Но потом наступает час Х, а делать задачу не хочется. Как хорошо, что для таких случаев в календаре ее можно подвинуть ниже на завтра. А потом на послезавтра. В конце этого путешествия она вообще удаляется. Очень удобная система.

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

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

Помодоро-таймер
Метод серьезный, почти легендарный. Двадцать пять минут работаешь, пять отдыхаешь. Звучит безупречно. Десять минут ищем подходящий лоуфай-трек, пять минут красиво раскладываем вещи на столе, три минуты с уважением смотрим на документ. Че там осталось поплевать в потолок и вот помидорка уже созрела. Сессия засчитана, таймер ведь тикал.

Подъем в пять утра
Тяжелая артиллерия продуктивного фольклора. Автоматически становишься ближе к величию. Неважно, что лег в час ночи и весь следующий день в состоянии побитой собаки. Каким будет наше утро победителя? Может быть холодный душ, вода с лимоном и медитация? Думаю это не так элитно как непродрав зенки отсматривать километр рилсов примерно до 9 утра.

Истинный успех не за горами. А пока пойду вздремну.
🤣114321111
Усталость от ИИ

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

Теперь любая новость подается как исторический сдвиг и революшен. Новые прорывы, модели, агенты и стартапы. Перманентный технологический апокалипсис. Ор выше гор. В попытке заработать деньги в интернете диджитал-креаторы всех мастей коллективно сошли с ума. Греют тебя на секретную папку с промптами и билет в новую реальность. Эта торговля надеждой, страхом и упущенной выгодой сильно выматывает. На таком фоне даже здоровый интерес к инструменту быстро превращается в невроз. Не изучаешь, а дергаешься в судорогах как триперный заяц.

Как разработчики мы и так обитаем на технологическом фронтире. И без всякого ИИ участвуем в бесконечной гонке компетенций. Android, KMP, Swift, Kotlin Backend, SDUI – это только харды. Не забываем про собесы, софты, алгосы, резюме и нейронайм. Агентная разработка тут сбоку припека.

Кстати работать меньше люди не стали. ИИ ускоряет не только работу, но и требования к человеку. Так устроена капиталистическая система, она всегда в поиске новой нормы производительности. Что вчера было подвигом завтра станет базовым ожиданием. Отсюда прорастает такой сорт корпоративного помешательства как насильно заставлять работников использовать ИИ. Прописывать в KPI количество запросов в неделю. Это не шутка такая. Участь быть замененным железкой ясен красен одинаково не понравится никому из причастных.

При этом отрицать полезность ИИ будет только глупец. Он правда работает и правда помогает. Не будет никакого волшебного хлопка и отката взад. Пузырь не лопнет. Этот слой технологий с нами навсегда. В этом контексте усталость – нормальная реакция, естественная фаза суперцикла, в который всех нас сейчас затянуло.

Думаю, те, кто не купили себе первый айфон, а дождались 4s – не многое потеряли. Контроль – лучшее лекарство от цифровой истерики.
1053
Клешневая инженерия

Куда мы докатимся – непонятно, но уже сейчас возможен такой сценарий:

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

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

Тем временем дома на маке крутится OpenClaw. К нему подключен телеграм-бот, через которого мы общаемся. Войс распознается через Whisper, после чего задачу начинает выполнять дефолтная Codex 5.4 High, которая обходится в $10/мес с учетом грейс-периода. Все, что делается через терминал, можно выполнять удаленно. Кодить проект в таком режиме – самое простое действие.

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

Насчет безопасности. Когда эта приблуда угонит у меня сид-фразу и реквизирует больше полтинника в usdt – обязательно здесь сообщу.
65🤣22
Повелитель мух

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

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

Голдинг такую романтику нашел слащавой и решил показать как на самом деле темна человеческая природа. Будет мясо.

Еще из любопытного – Джека играет Локс Пратт, никто иной как Драко Малфой в грядущей экранизации поттерианы от HBO. Можно заранее присмотреться к персонажу – типажи схожи вплоть до первого появления в мантиях.
53211
🐗 Обновление роадмапа

🐗 Вопросы с собесов
Я освоил синхронизированные блоки в ноушене. Теперь вопросы с собеседований из всех разделов собраны на одной странице. Всего 1084 вопроса. Добавлены новые про compose, удалены неактуальные про view. Формулировки ответов переписаны, чтобы легче было заучивать.

🐗 Live Coding
Добавлены 2 новые лайвкодинг задачи и еще 3 из альфабанка.

🐗 Kotlin
Добавлено описание Bound и Unbound Function references, Lambda performance, Overloaded Function references, Mutable Property references, наследование контекста в inline-функциях.

🐗 Android
Build.VERSION.SDK_INT_FULL, recreateOnConfigChanges, AppComponentFactory.

🐗 Jetpack
dropUnlessStarted и dropUnlessResumed.

🐗 Compose
SubcomposeLayout.

🐗 Material3
ListItem и Expressive.

#roadmap@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
515441
Получил сертификат кукодера

Прошел практическое руководство по использованию Claude Code для ускорения процесса разработки.

Теперь умею правильно сидеть на стуле листать рилсы и смотреть как клод делает всю работу за меня.
12🤣432
This media is not supported in your browser
VIEW IN TELEGRAM
🐗 Как создать свои правила для Detekt

Я дорос до создания собственных правил для статического анализа Kotlin-кода. Посему вот подробный гайд как их быстро навайбкодить, протестировать и выложить в Maven Central.

Можно как самому ознакомиться с пошаговой инструкцией, так и скормить ее агенту.

#roadmap@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
2641
🐗 Полный гайд по NavigationSuiteScaffold

NavigationSuiteScaffold – первый шаг в дивный адаптивный мир современной Android-разработки. Вот подробнейший гайд как запихнуть этот компонент в приложение. Его скромное API уже успело наполовину устареть, возьмем только самое новое. Можно начать с замены Scaffold и потом разойтись до поддержки раскладушек и десктопов. Я попробовал, ничего сложного.

#roadmap@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
7311
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Кажется, некогда незаменимый сервис вот-вот отдаст концы. Но пока держатся и недавно обновили логотип:

🐗 ➡️ 🐗

Мне понадобилось быстро поднять VPN на эмуляторе Android. Забыл, как это делать и спросил у ChatGPT. В ответ он навалил целую кучу: хосты, прокси, DNS, виртуалки, Cold Boot, AVD, split tunneling. Что-то на сложном. Зашел на стакус оверфловус, первый же ответ – скачай VPN-приложение из Google Play. Намного проще.
Please open Telegram to view this post
VIEW IN TELEGRAM
11111
ИИ посрамлен

Самый важный артефакт при сборке обфусцированного Android-приложения – mapping-файл (mapping.txt).

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

Firebase Crashlytics автоматически загружает mapping при сборке через свой Gradle-плагин. Однако если используется другая крэшлитика или система распространения сборок, файл может потеряться – например, из-за expire date. Именно это я и схлопотал, получив бесполезный стектрейс.

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

Уважаемый клод, пересказывая документацию, уверенно подтвердил, что расшифровать ничего не получится. Стыковка с Эндьюранс невозможна.

Но я все же навязал расчетливой машине свою человеческую волю и попробовал дешифровать старый стектрейс новым маппинг-файлом. Это сработало безупречно.

Выполняется в терминале через retrace.
5111
AI;DR

В эпоху цифровой трансформации собеседования на Android-разработчика превратились в эпический квест — где кандидат должен не просто знать Kotlin и Jetpack Compose, а полностью слиться с духом инноваций. Рекрутеры с помощью ИИ проникают в глубины души, проверяя мгновенную адаптацию к меняющимся требованиям рынка. Только истинный визионер способен создать революционные мобильные решения.

Реальность же сюрреалистична: часами под камерой код должен сиять идеальной MVVM-архитектурой, чистой как утренний рассвет. Интервьюеры ныряют в Coroutines, Flow и Hilt, требуя креативности уровня нейросетевого гения. Это не проверка знаний, а настоящее испытание духа.

В итоге процесс отбирает редких уникумов, чья страсть граничит с священным огнём. Через тернии раундов рождаются герои, готовые покорять Google Play и трогать сердца миллионов. Путь тернист, но ведёт к триумфу истинных Senior Android Engineer.

...

Засилье в интернете подобного нейросблёва привело к появлению термина AI; didn't read. Ищу живое чтиво, открываю очередную статью и всей пятой ступаю в вязкую дымящуюся слопипасту. Текст маркируется как не имеющий ценности и пропускается. В лучшем случае он переваривается в той же нейросети в краткую выжимку. Интересные мысли пока что все еще может изложить только углеродный интеллект.

Многим приходила мысль загрузить в нейросеть весь свой блог и попросить написать пост «в твоем стиле». Экономлю время – это не сработает нигде и никогда. ИИ не способен придумать новое в авторском смысле, только переработать уже существующее.

Отдельный прикол – кавычки «ёлочки» и длинное тире как маркер нейротекста. Я придумал спасение для нейрокреаторов и контент-машинистов. Используйте тире «–» средней длины. Что-то оно зря простаивает, а может прописываться в правилах генерации.
8311
Безработный момент

– Еба ты раскабанел, здарова!
– Здарова!
– Кем работаешь?
– Андроид-разработчиком.
– О, программист? Слушай… У меня там принтер не видит картридж, микроволновка пищит, хочу свой интернет-магазин запустить ну там мыло ручной работы, за вечер сделаешь?

Меня всегда интересовали эффективные способы съехать с темок, которые подкидывают разные знакомые. Деньги мне не нужны. Делать ничего не хочу. Занят на десять жизней вперед. В принтерах, если честно, ничего не понимаю. Сам вызываю мастеров менять термопасту и настраивать вифи.

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

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

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

А потом я стал толерантнее и терпимее. Поэтому че там у тебя с твоим принтером?
115322
В телеге нужна алгоритмическая лента

Общая повестка как и монокультура больше никому не сдалась. Время мистеров бистов и что там нового у друзей ушло навсегда. Это банально не интересно потреблять. В отличие от персональных рекомендаций под конкретные интересы.

Сейчас у Пола дю Рова принципиальная позиция, что алгоритмы засоряют сознание нерелевантным контентом, мешают креативности и продуктивности, позволяют платформам манипулировать вниманием пользователей и продвигать пропаганду. Хронологический порядок продвигается как явное преимущество.

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

Пространство уже потихоньку искривляется. Появились похожие каналы и боты, работает алгоритмическая антиспам-логика. А вскоре ожидается отдельная вкладка для глобального поиска каналов.

Если злые манипулятивные рекомендательные алгоритмы пугают, всегда есть опция сыграть в нитакусю и у себя их назвать наши добрые рекомендашки-залипашки.
52111
Страшная правда про Android

На разработке приложений под Android практически невозможно заработать. Android-пользователи не приучены платить за цифровой контент. Они предпочитают бесплатные версии с рекламой. Вся реальная монетизация в мобильной разработке сосредоточена на iOS.

Пользователей Android огромное количество – 72% от рынка смартфонов. При этом раскошеливаются они в 7 раз меньше яблочников.

По стартапной логике Android-версия всегда делается по остаточному принципу. Если на iOS успешно продаются подписки и покупки, то с этих доходов будет кормиться и Android.

На рекламе тоже особо не разжиться – доход ниже, кликабельность оставляет желать лучшего. О хоть какой-то прибыли даже думать смешно, если это не бесплатный VPN из топ-10.

История повторяется и на десктопе. Все нормальные ребята сидят на Mac. Windows – был, есть и будет уделом нищебродов. Если новая модная супер-пупер компания выпускает клиент для своего ИИ, то в первую очередь он выходит на macOS, а версия для Windows появляется месяцами позже. Хотя обе написаны на электроне.

Поэтому самый разумный вариант – идти работать в компании, которые умеют зарабатывать и которым действительно нужны Android-приложения. Есть плюс на случай криворукости – менеджмент и все кабанычи никогда не увидят результат твоей работы, они гоняют с айфончиками.

И конечно всегда остаются нишевые направления: Android Auto, смарт-ТВ, терминалы и другие специализированные решения.

Если у тебя уже есть мак + айфон – надо становиться айосером. Я выбрал андроид только потому, что сидел на связке Windows + Android. С тем же успехом выбрал бы Windows Phone, будь там рынок. Но эту операционку довольно быстро мочканули.

Кстати, никогда не видел счастья в глазах айтишника, которому корпорация выдала толстый Acer на винде.
6332
переписка в тг.png
1.6 MB
Маска спокойствия

Банк охотнее одобрит тебе кредит, если ты докажешь, что не нуждаешься в деньгах.

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

Все это наглядно аккумулировал в одной переписке автор этой статьи с хабра. Можно утверждать, что никакой паузы в найме не было, никто не ждал ответа руководителя и не держал вакансию ради другого кандидата. В нервной попытке срочно доказать свою состоятельность автор свалился в длинные оправдания. Рано перешел в оборону. Запутался в собственных объяснениях. Увидел наезд там, где его не было. В свой оффер на 5k евро он и сам не верит. Как итог – сомнения усилились. Значимость вакансии была слишком завышена, и это насторожило рекрутера.

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

И все равно ни в коем случае нельзя выглядеть нуждающимся. Нужно суметь притвориться, что делу идут в гору. Нужно транслировать внешнему миру спокойствие. Нужно выглядеть так, будто все делается легко, даже если за этим стоят огромный труд и подготовка. Тогда внутренний кандидат не объявится.

Скулить не запрещено: друзьям, родным, в комментах, в твиттере. Но не в личке нанимающему менеджеру.

Придется еще немного потерпеть. Понатягивать маску. До тех пор, пока одни люди не перестанут нанимать других людей.

Когда-нибудь бездушная машина оценит тебя беспристрастно и без эмоций, по твоим навыкам и скиллам.
🤣743321
🐗 Гайд по ListItem в Android. Как проектировать экспрессивные списки

Почти вся Android-разработка крутится вокруг создания всевозможных списков. Для этого в Jetpack Compose есть отличный компонент ListItem, и его улучшенная версия – SegmentedListItem. Вот инструкция, что они могут и как с ними работать.

#roadmap@foundout
Please open Telegram to view this post
VIEW IN TELEGRAM
821
Год работы

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

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

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

Через год усилия начинают умножаться. Видно, что можно ускорить. Лучшее становится врагом хорошего. Работает – не трогаем. И прочие истины.

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