Блог компании mxkmn inc.
97 subscribers
30 photos
6 videos
23 links
Возможны долгие перерывы от творчества. Канал не заброшен. Отписывайся, только если тебе всё это не близко
Download Telegram
Тусовки Глотки - возможно единственное, по чему я буду скучать вне Иркутска. Там все добрые и весёлые. Хотя ради такого можно и возвращаться.

6-7 июля, среди лесов, забытых и заброшенных, побывал на их ежегодном фесте (впервые). Музыка своеобразная и не очень, прошу к просмотру. Особо запомнился шашлык из козла, которому сбежавшая собачка организаторов перегрызла шею на горе днём ранее 🥰 (мясо классное и долго жуётся)
🔥5👍1
Нежданно-негаданно пост, который я делал чтобы напомнить друзьям, что я ведроид-разраб, оказался на канале Кирилла Розова и увеличил аудиторию моего блога вдвое. Теперь большая часть аудитории - разрабы, среди них 85% пишут под андроид. Приятно получать от уважаемого человека такой подгон, спасибо ему.

И хотя акцент именно на прогерстве я не ставлю, сегодня хочется вновь затронуть тему, связанную с ним. Она весьма задротская, не-программистам возможно читать и не стоит, #тяжёлыйконтент:

Опенсорс отвратителен

Изначальный смысл "со свободно распространяемой программой идёт исходный код, поэтому её можно изменить под себя, проверить на проблемы, выслать доработки разработчику" исключительно прекрасен, но жестоко испохаблен блогерами и вкатунами. Сейчас опенсорс - это скорее "у тебя нет опыта? залей своё говно на гитхаб и забудь про него".

Я нисколько не преувеличиваю: если вы попытаетесь найти по ключевым словам что-то, что вам требуется, через поиск гитхаба, то увидите, что большинство найденных репозиториев - в лучшем случае пустые, в худшем - не компилируются и лишь делают вид, что достойны вашего времени. Issues могут игнорироваться, pull request'ы не принимаются (тру стори). На деле достойных репозиториев единицы, искать их ужасно тяжело.

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

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


Ситуация, когда вы что-то делаете вроде как для всех, но не получаете какого-либо профита в виде использований вашего проекта другими людьми, не получаете звёзд, пулреквестов с фиксами багов и добавлением функциональности - это обыденность. Смотря на чужие проекты, даже после публикации проекта в тематических каналах вроде Android Broadcast абсолютный мастхев набирал ну максимум 30 звёзд и пару не особо важных Issue (я про суперполезные библиотеки и расширения, а не тупые семплы кода).

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

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

Гитхаб - для 99% случаев лишь распиаренная помойка сомнительных проектов, не дружащая с гуглом. Опенсорс - сейчас просто баззворд, с изначальными преимуществами сталкивается лишь 1% проектов, у всех остальных судьба - просто тухнуть и умереть в безызвестности. Кажется, всем нам нужна альтернатива.

Рекламная супер-ссылка!
чё повелись да? ахахахах ахахахаха
👍2😁2🔥1
Опенсорц? Статьи? А может лучше…

#тяжёлыйконтент

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

На самом деле ответ у всех перед глазами. Почему о нём никто не говорит - загадка. Этот ответ - StackOverflow.

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

Вы наверное щас думаете что-то вроде "блин, это нужно заходить и отвечать на дурацкие вопросы, в которых сам толком не секу?" - вообще нет!

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

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

В отличие от репозитория на гитхабе, для большинства ответов на SO достаточно всего 15 минут, при этом ответ увидят все. Вместо нуля звёзд будет копиться счётчик просмотров и репутации. Объективно ни на что не влияет, но субъективно - каждый апвоут крайне приятен, просто так их не ставят. Этих показателей жутко не хватает на гитхабе, так как звёзды ставят лишь при желании следить за проектом, а своровать кусок кода можно втихую.

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

Потихоньку добавляю свой опыт, за 18 месяцев я успел добавил 18 ответов - сейчас у меня 383 репутации, 83к просмотров. Пока всё ещё ощущается будто это немного, но этого хватило, чтобы в апреле появилась плашка "вы в 5% топе по влиянию в 2024-ом". Заскринить не догадался, сейчас её там нет, но блин, всё равно круто же!

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

Полные фрагменты кода - скопируй и вставь
Замена Accompanist Permissions: получение разрешений в Jetpack Compose через одну строку с удобными коллбеками после полной/частичной выдачи или перманентного запрета на доступ (единственное решение, которое работает одинаково отлично на всех версиях Android!!)
Запись/чтение документов при помощи Storage Access Framework
Создание .xlsx таблиц без библиотек
Офигенно удобный Base-класс для работы с Bluetooth Low Energy, совместимый с KMP - с ним можно на изи написать взаимодействие с BLE устройством за час

Фикс косяков
Восстановление работы вечно отваливающегося Wi-Fi ADB
Как создавать рабочие PeriodicWork через забагованный WorkManager (на ловлю крысы у меня ушёл месяц) - внутри параметр, который ни в коем случае нельзя использовать, указание что включать на китайских мобилах чтобы всё точно работало, а также правильное подключение библиотеки через Dagger Hilt
Устранение бага в Compose, из-за которого WindowInsets выдаёт 0dp и интерфейс дёргается при первой отрисовке кадра

Полезное
Добавление action-кнопок в Android Studio - ввод команд в терминал через один клик по небольшой кнопке
Как я оформил аккаунт Google Play из России в 2024
Удаление лишних ресурсных файлов из APK, почему-то не включенное из коробки (вы это уже видели - ссылка для тех, кто хочет поставить апвоут)

Бонус: мои gists (ибо не формат StackOverflow), не относящиеся к андроид-разработке
Полезные настройки Visual Studio Code - вручную просмотрены и проверены (почти) все параметры, после чего выбрано более сотни, которые реально будут влиять на удобство. Абсолютный мастхев для всех, у кого установлен VSCode. Когда-то я пользовался только этим редактором и потратил на тщательную настройку более месяца.
Настройка Android Studio - просто выписал для себя когда пришлось накатить студию с нуля, вряд-ли будет шибко полезно остальным, но…
🔥4👍2
Дорогие друзья!

В рамках диверсификации бизнеса был поставлен вопрос: стоит ли рассмотреть приобретение заправки? Откуда вообще берётся бензин, предлагают ли поставщики бензинопроводы? Снятся ли бензоколонкам электроовцы?

А может автомойка является более прибыльным бизнесом, либо окупаемость наступит быстрее? Что думаете?
😁4🤔1
Как же хорошо
Проехал 111 км!

По времени - с 17:30 до 6:00, то есть 12,5 часов.

Где на скринах ещё 7 км? Ну, galaxy watch4 кусок корейского говна на моей руке опять подвёл, так как в какой-то момент на паузе путь не посчитался (к счастью, телепортация и пруфы сохранились). Впрочем, изначальная цель была 100 км, она на скрине зафиксирована, уже достаточно для флекса.

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

Рад, что не слился и довёл цель до конца, но дальше надо думать не над увеличением циферок, а над другими идеями - например, доехать из одного крупного города в другой. Оказалось, весь день крутить педали ради большой циферки - ну такое).
🔥11
Моя поездка началась!

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

Люблю свободу, практикую получение удовольствия от каких-то приземлённых вещей. Изначально рассказывал, что хотел бы организовать поездку в кочевнических условиях - подразумевал под этим перемещения автостопом, просмотр всех маломальски больших городов на пути, чувствовать ту самую романтику из рассказов попробовавших. После оказалось, что:
– среди близких людей так терялись люди (всё таки небезопасно);
– интересных городов в стране не так уж и много (если не оставаться в малоинтересных городах, в среднем придётся ехать по 1500 км - непонятно как спать, как не умереть от возможных проблем в пути);
– сумкой дело не обойдётся - беру с собой большой чемодан со шмотками, для которого явно понадобится багажный отдел (он найдётся не у всех). К слову, ноут не брал - пора наконец начинать настоящий отдых, наличие возможности что-то создавать этому сильно мешает.

Короче, не вариант. Дальше выбор между поездом и самолётом:
у самолёта гемор и ожидание в аэропорту, отсутствие удобств и неудобное время прилёта, стоимость как до столицы (на ~10к дороже поезда) и плюс чёт они в последнее время не вылетают/жёстко задерживаются - это касается и Иркутска, и Новосиба;
в поезде можно поспать, периодически доступен интернет, а вокзал находится в пешей доступности от центра и моей гостиницы, из минусов - кровать рассчитана на карликов (если вы не худы как пятилетний ребёнок и рост у вас больше 170см, то будет тяжело даже в купе). То, что едет на сутки дольше, легко вывести в плюс - есть время почитать книгу или написать этот пост.

Окей, выбираем поезд. Есть причина оказаться в Новосибирске 17-ого августа, что обозначает, что мой поезд выезжает 14-ого (один день будет в запасе). Покупаю билет за 1.5 суток до отъезда, ложусь спать. Просыпаюсь, успеваю собрать всё важное в чемодан, доделать последнее из того, что нужно было успеть в городе, но на сон времени не остаётся. Благодаря 30 часам без сна случайно выравниваю режим.

Обещаю не спамить. Вероятнее всего будет один пост на каждый город, и по классике, в комментах - дополнительная информация, фотографии, обсуждения.
🔥41
Пост про Новосибирск готов. Фотографии ещё не перебрал, и их много. Как поступим?
Anonymous Poll
48%
Постить сейчас, фотографии потом докинуть (возможно через месяц)
52%
Постить всё разом
Новосибирск - искусственный город

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

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

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

Как итог, слова моего знакомого, прожившего в Новосибе 4 года, оказались реальностью: один день на центр, один день на Академгородок, и достаточно.

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

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

Пробыв здесь 4 дня, последние дни, посвящённые неудачному музею и хождению по уже знакомым декорациям сильно замылили восприятие города, и эмоций от него почти не осталось.
Почему последний день я просто ходил, а не изучал наполнение музеев? Я бы зашёл в художественный, но почему-то кто-то решил, что закрывать ВСЕ музеи в стране по понедельникам - отличная идея. Спасибо, очень продуманно 👏.

В общем, для меня Новосибирск стал городом без ярких впечатлений. Непонятно чем тут заниматься. И наверное этого стоило ожидать - это молодой город для учёных, промышленность не может похвастаться добычей каких-то уникальных материалов, исторической застройке неоткуда взяться. Радует лишь удобство улиц, неплохое озеленение, парки и скверы на каждом шагу - наверное это должно быть в каждом городе, но увы.
🔥3👍2
Мне довелось перекинуться парой слов с очень большим количеством людей, и в целом обращал много внимания на прохожих.

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

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

На шмотках как-то избыточно экономят - пожёванная блеклая ткань на молодёжи, безбрендовая и палёная непритягательная обувь на ухоженных взрослых. Я лишь однажды встретил обувь из небюджетной линейки то ли от nb, то ли от adidas - в Иркутске у каждого школьника такое, а здесь одна пара на весь город.

И, что удивительно при вышеописанном, людям на одежду не всё равно - я встретил очень мало людей в расслабленных образах. В 25° на мне были шорты и футболка, на остальных - верх из нескольких слоёв, тяжёлые худаки, чёрные штаны до пола, и далее по списку, исключение - лишь дамы в лёгких платьях. Мне это очень непонятно.
👍4
Самое сладнке - про вульгарщину!

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

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

Однажды, ближе к ночи, я пошёл пожрать и в нескольких метрах от места назначения увидел три полицейских уаз патриота и небольшой автобус, а на самой точке - настоящий круговорот весёлой жизни. Вы видели, чтоб и намалёванные девчата (всё такие же вульгарные), и парнишки на понтах (со смартфоном tecno в руках) ходили по кругу вокруг беседок? Раз в минуту-две я видел одни и те же лица подшофе, бесконечно проходящие мимо меня, стоящего на месте. Интересно, это может прекратиться, или они как муравьи там носятся?

Насчёт этого места с моими новыми знакомыми с Новосиба состоялся небольшой диалог, который дал больше вопросов, чем ответов:
- Ребят чё здесь за блядушник объясните
Никто не сознаётся

- ХАХАХАХА
дворики)
Ты ещё не был, блять, в досках в пятницу и субботу. Там намного хуже.

- В досках я не был, это да

Я не моралфаг - я даже дошёл* до нудистского пляжа, что в Академгородке. Просто тут явное неумение надавить на нужные струны души и интеллектуально проявить свою соблазнительность. Грустно.

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

* На пляжике, увы, в тот вечер никого не было :(
👍5😁3🤔1🗿1
А что по туризму в России?

У меня была давняя мечта прокатиться по России: ну а как иначе, если все вокруг посещают Ижевски, Костромы и прочую Пермь, а я нормально путешествовал только по Китаю? 🥲

Только перед самой поездкой я начал разбираться с реальной обстановкой - куда ехать, куда не стоит. И что-то я представлял всё немного по-другому: 99% городов в своей сути не отличаются и представляют из себя естественно сформированные советские поселения, где делать нечего.

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

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

Как итог, в мой 1% городов, в которые стоит ехать в рамках культурного туризма, попали Новосибирск, Екатеринбург, Нижний Новгород, Казань, Москва, Питер, Сочи, Воронеж, Владивосток. Но если есть интерес в путешествии ради уникальной природы, архитектуры, изучения истории, водоёмов чтоб поплавать, то список будет шире - поиски и посещение таких городов я пока что намеренно отложил на потом.

Сочи, Воронеж и Владивосток ещё предстоит увидеть. Остальные города я проехал в рамках своего путешествия и не повезло только с Новосибом, в остальных городах горы контента, свой колорит и культурные особенности. Я очень доволен этим опытом и не могу его не порекомендовать: дождитесь лета, лишитесь всех дурацких обязанностей (нужен отпуск хотя бы на два месяца) и едьте в тур, а не вот эти вот двухнедельные халтурки. Как только очередной город надоедает - берём ночной поезд и продолжаем впечатляться новыми местами. Это гораздо проще, чем кажется. И весьма дёшево кстати - потратил где-то 80к, проживая один, питаясь в заведениях (сам готовил только дошик и гречку в поезде), посещая все интересующие музеи, проехав более 6000 километров.

Далее позволю себе немного отойти от основной темы поста.

С опытом, который я получил за ровно месяц путешествия, уже трудно привязываться к городу, меняется мышление - слишком просто менять места проживания, слишком тяжело сидеть на одном месте. Можно куда-нибудь поехать по делам и на какое-то время обосноваться там, одного чемодана ought to be enough for anybody.

В данный момент у меня нет уверенности, что моя конечная в виде Питера - отличное место для жизни, да и вакансии в офисе на хэдхантере уже почти закончились. Я в шаге от смены изначальных идей: может снять квартирку в каком-нибудь Зарайске, работать на удалёнке и не отказывать себе в рандомных перемещениях по настроению - гораздо более надёжный план для поддержания постоянного удовольствия от жизни, чем план просто осесть с хорошим коллективом и сидеть в офисе ну хотя бы год?
👍7🔥21💩1
Как я Baseline Profiles прикручивал

Осторожно, #тяжёлыйконтент

Уже 8 лет, начиная с 7-ого андроида, приложения автоматически ускоряются с каждым использованием - система анализирует, с какими фичами обычно работает пользователь, и оптимизирует их.

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

Мысль простая и гениальная. Как думаете, когда же стало возможным генерировать эти самые профили? Внезапно, во времена 13-ого андроида, спустя 6 лет. Ну, то есть можно было и до этого, но с кучей подводных камней - хорошо это работало только на чистом андроиде и с рутом. С тестированием профилей та же история, оно полноценно заработало лишь на 12-ом.

О проблемах я узнал не из документации, а на деле: подключил рутованный смартфон на 10 андроиде, запустил генерацию профиля, и... телефон либо полностью переставал реагировать на нажатия и кнопки, либо просто перезагружался 👍. Мой основной телефон работает на 12-ом ведре, тоже не подходит. Обновлять вполне живой телефон не хочется - он мне нравится так же, как и в первый день.

В общем, пришлось ставить на комп эмулятор с последним чистым андроидом, где всё точно будет без сучка без задоринки. Или нет?

Эмулятор андроида это вам не винда 11 в vmware - тут нагрузки на комп такие, что он начинает работать аки прораб без зарплаты: сборка приложения замедляется примерно в 10 раз, а сам эмулятор настолько неотзывчивый, что генерация профилей ломается по таймауту пока приложение ещё не успело загрузиться 🥴. Это на самом мощном проце интела 10 поколения для ультрабуков и с 16 гб оперативки, если что. 5-ый андроид эмулируется отлично, а вот 14-ый ложит систему. В остальном процессор справляется со всеми задачами и комп менять ради эмулятора я не планирую. К тому же пользоваться эмулятором весьма неприятно - имитировать свайпы тачпадом ужасно неудобно, а сенсорный экран моего Surface'а не поддерживается.

Короче, идём просить у знакомого мобилу на 13+ ведре. Как и всегда при разработке под андроид, в рандомный момент всё ломается, пацаны со stackoverflow говорят, что надо прожать invalidate caches. Как и всегда, это не помогает, я на опыте переустанавливаю ведростудию, всё опять начинает работать, но время потеряно. На следующий день снова беру мобилу, чё то там делаю с UIAutomator практически вслепую, ибо документация неполная... И Baseline Profile готов! Кстати, вместе с ним готов ещё и Startup Profile - благодаря этому профилю ускоряются не отдельные фичи, а непосредственно запуск приложения.
👍1🔥1💩1
Блог компании mxkmn inc.
Как я Baseline Profiles прикручивал Осторожно, #тяжёлыйконтент Уже 8 лет, начиная с 7-ого андроида, приложения автоматически ускоряются с каждым использованием - система анализирует, с какими фичами обычно работает пользователь, и оптимизирует их. …
Дальше идём тестировать чё ваще изменилось. Macrobenchmark, как много в этом слове! Гугл с барского плеча предоставляет возможность протестировать скорость запуска с разными конфигурациями приложения, в нашем случае - с оптимизациями профиля и без. Приложение с разными конфигурациями просто запускается на конечном устройстве несколько раз, после чего рассчитывается медианная скорость в миллисекундах. И в этом вашем макробенчмарке капец как много проблем!

Что бросилось в глаза первым - почему-то возможности сравнить скорость работы с профилями, которые поставляются с библиотеками, с моими лично сгенерированными, гугл мне не даёт. Возможно я всё сделал просто так, без реального профита - узнать я это не могу.

От чего меня раскорёжило далее? По умолчанию в макробенчмарке уже есть тестирование скорости запуска приложения, остаётся только запустить, но результаты в миллисекундах не стабильны чуть более, чем полностью! При одном прогоне усреднённая скорость запуска приложения может быть 250 мс, а при втором - 600 мс. Если сравнивать разницу между разными конфигурациями (со Startup Profile и без него), то иногда разница достигает 30%, а иногда… она отрицательная!!! 3 запуска, или 30 - неважно, ведь во всех случаях результат неоднозначный.

Как итог, Macrobenchmark, столь продвигаемый гуглом, даёт совершенно рандомные значения. Результаты Baseline Profile невозможно заметить глазом на нормальном железе, так как даже на Snapdragon 845 из 2017-ого моё приложение грузится почти моментально и не лагает (а ведь достаточно было лишь написать приложение не через жопу). UIAutomator2 со времён 2015-ого живёт без нормальной документации, поэтому анимация в приложении пропускается через позорные Thread.sleep(3500). Ну а вместо переустановки шиндовс у меня другая забава - переустанавливать андроид студию. При этом давление со стороны гугла и на мой комп, и на мой телефон с каждым обновлением всё сильнее.

Всё это мне пришлось узнать на личном опыте. Когда вас спросят про боль разработки под андроид, то вы знаете, каким постом поделиться. А это всего-то лишь небольшая часть приложения, которую пользователь даже не заметит.

Впрочем, результат работы как будто бы есть на бюджетных смартфонах, да и алгоритм создания профилей никуда не исчез. Я готовлю обновление для своего приложения, и оставлять его без профиля не собираюсь (для каждого значительного обновления их нужно генерировать заново), вот только сейчас я в Москве, и здесь почему-то у моего ближайшего окружения айфоны (тут у всех почему-то айфоны, видно Москва не Россия). Пришлось обновлять мобилу. Вот только времена, когда за 25к можно было купить нормальный телефон, уже давно прошли - сейчас за эти деньги можно взять только бюджетную пластиковую лопату с никакущими динамиками, стрёмной камерой и сомнительным экраном. Ну или можно взять б/у флагман, который перестанет обновляться через год. Поэтому сегодня мне пришлось выложить 70к за телефон, который меня будет просто устраивать, и, надеюсь, окажется не хуже, чем моя текущая сонька, купленная за 15к, и из минусов которой - лишь 12-ый андроид и недавно отвалившийся сканер отпечатка. Такие дела.
😁1💩1