Никита Куликов

Никита Куликов

Неделя
Oct 18, 2021 → Oct 24, 2021
Темы

Архив недели @LionZXY

Понедельник


Привет, Твитовчяне! Меня зовут Никита. Я Android-разработчик в Flipper Devices. За плечами у меня и проекты на плюсах, и ассемблер на STM32, и фронт на реакте, и много мобайла. Я в твиттере новенький, так что давайте знакомиться👇

Сейчас я работаю во Flipper Devices и делаю мобильное приложение-компаньон для этого клевого парня
notion image

До работы в Flipper Devices я работал в ламповом Киеве, в Snapchat. Приделывал овечкам головы, разбирался с кодеками, хитрыми багами под железо и писал perf-тесты
notion image

До Снепа я делал библиотеку для авторизации libVerify/libNotify в Mailru в одно лицо. Если вы когда-либо авторизовывались в сервисах Mailru через СМС - знайте, вы пользовались моим кодом. Про это еще будет отдельный тред на неделе, там будет много инсайдов.

В Яндексе я занимался тем, чем постараюсь никогда в жизни больше не заниматься - писал на плюсах. Этот кошмар я до сих пор вспоминаю с содроганием. Если быть конкретным, то писал я Яндекс.Браузер, а точнее ядро браузера - Chromium.

Теперь немного обо мне как о человеке: мне 23, у меня незаконченное высшее, я бросил вуз после 4 курса, не защитив диплом. Преподаю в ВШЭ и Бауманке. Веду канал в телеграмме t.me/localhost_ru
notion image

Учусь кататься на скейте, люблю плавать и видеоигры. Программировать начал из-за Minecraft и до сих пор залипаю в него (пишите, у меня приватный сервер, поиграем). Все больше и больше залипаю в VR на #OculusQuest2, ибо имею крутой компьютер и мало времени.

План на неделю (1/3): Понедельник и вторник: День Apple/Google и текстовые трансляции #AppleEvent и #MadeByGoogle. Расскажу как оно с ноутом на M1 уже полгода и обсудим ожидания. Среда: Как правильно делать авторизацию по СМС и побугуртим про Android-шаблонизацию

(2/3) Четверг: Hardcore-day. Deep dive в мир BLE и кодеков для изображений и видео. Ликбез и инсайды Пятница: День-образование. Мысли про высшее образование (again), тред про мертвую Java и смысл преподавания.

(3/3) Суббота и воскресенье - лайтовые и оффтоп дни. Поговорим про выгорание, релок, попутешествуем по топовым IT-офисам Москвы где я работал и поговорим про токсичные команды.

🔥Тред (Никита Куликов)
Сегодня в 20:00 буду обсуждать #AppleEvent, приходите, пообщаемся. А пока давайте соберем ожидания от презентации

Конечно же, все ждут новые макбуки на #AppleSilicon. У меня все в офисе на них облизываются и готовят денюшки. Я пока не планирую апгрейдить свой MacBook Air на M1, он меня всем устраивает. Не шумит, мегаперформансный, маленький. Но если вы любите 16", то я понимаю ваше ожидание
notion image

В новых ноутах ожидают больше оперативки (16Gb для 2021 маловато), новый MagSafe и больше разъемов. Вот последнее отрадно, а то после подключения монитора и зарядки места не остается. Лайк если жиза : D
notion image

Из менее ожидаемого на презентации мы ждем релиз новой macOS Monterey.
notion image

Жду AirPods. У самого AirPods Pro, хоть и Android-смартфон. Во истину лучшие Bluetooth-уши, которые я щупал
notion image

🔥Тред (Никита Куликов)
Сейчас занимаюсь публикацией в Play Store и подумываю над бета-тестированием прям там. Встречал разные способы дистрибьюции бета-версий, а какой вы (или ваша компания) используете?
🤔 25.2% Google Play
🤔 22.9% Firebase
🤔 6.1% AppCenter/HockeyApp
🤔 45.8% Я iOS, у меня нет выбора

Я мобильный разработчик и у меня M1. У моих коллег множество предубеждений насчет M1, якобы ничего не работает. В этом треде я понятными словами распишу что у вас заработает, а что нет👇

Docker - работает. Можно запускать/собирать x86 образы и arm образы. Собирать arm образы можно на любой машине или CI, смотрите пример: github.com/LionZXY/Docker… Подробнее: docs.docker.com/desktop/mac/ap…
notion image

Parallels Desktop - работает. Но только с arm64 образами. А это Ubuntu/Windows под ARM64 и прочее. Запустить x86-образы можно, но сложно и тормознуто. Если ваша работа завязана на Windows-only софт, то не советую.

Эмулятор Android/iOS - работает, из коробки. Единственное, из встроенных образов только Android выше Q
notion image

Что не работает - любая связка x86+arm софта. Например, подключаемые x86-бинари из arm-Java. Завести это можно, но не за один вечер.

В целом, MacBook Air M1 - это моя лучшая покупка техники за несколько лет. Рад как ребенок. Оно просто работает и работает превосходно, без никаких нареканий. Давно я от техники такого восторга не испытывал.

🔥Тред (Никита Куликов)
Смотрю трансляцию #AppleEvent в офисе флиппера :3
notion image

Эксклюзив из первых рук) Лучше чем презентация эпл, я считаю. #FlipperZero
notion image

#AppleEvent Новые HomePode. У меня дома колонка от Google и мне очень нравиться. А какой колонкой пользуетесь вы?
🤔 19.7% Алиса
🤔 7.9% От Google
🤔 6.6% От Apple
🤔 65.8% У меня нет колонки

#AppleEvent Представили новые AirPods. Пользуюсь Pro и очень ценю шумодав, менять не планирую.

#AppleEvent Воу-воу. Новые M1 Pro просто пушка. Мой Macbook Air меня всем устраивает, но, хоспаде, как же хороши M1 Pro

🔥Тред (Никита Куликов)

Вторник


Вчерашняя презентация #AppleEvent , конечно, впечатлила. Только я считаю что, если вы не работаете с фото/видео, девать такую мощь вам некуда, достаточно Air. Чтож, презентацию эпл мои деньги пережили, ждём презентацию #madebygoogle

Сегодня в 20:00 будет презентация от Google. Скорее всего, скучнее и дольше, но мне, как Android-разработчику, эта презентация важнее. В треде ожидания от презентации👇

Конечно, самый очевидный анонс - это новые Pixel. В интернете уже давно есть разборка смартфона, анпакинг и фото/видео со всех сторон. Более того, Pixel 6 - это первый телефон, у которого утек сборочный мануал (!) еще ДО выхода.
notion image

Из менее очевидного - раскладной смартфон Pixel Fold. Раскладной смартфон от Google. О нем уже долго говорят. В пользу этой теории говорит то что сейчас Google Play не позволяет опубликовать приложения без скриншотов планшета.
notion image

Вот так выглядит Google Play на публикации нового приложения.
notion image

Ещё один ожидаемый анонс - часы Pixel Watch на свежепредставленной платформе WearOS
notion image

Лично я ещё в августе купил себе Galaxy Watch 4 с безелем, очень нравиться, грустно только что Telegram удалил версию для WearOS. Кстати, не посоветуете хорошие оффлайн карты для часов?
notion image

Ещё инсайдеры пишут про новую подписку - Pixel Pass, которая будет включать в себя Google Play Pass и Youtube Premium. Ябкупил, сейчас плачу ежемесячно за Premium, очень нравиться.

Лично у меня ожиданий не так много, а что ждете вы? Будете покупать новый PIxel? Я вот свой 3a с уже выцветившимся экраном менять хочу на Pixel 6 Pro в максимальной комплектации. Напомню, цена на Pixel 6, согласно утечкам, будет от 599$, а Pixel 6 Pro от 899$.

🔥Тред (Никита Куликов)
Прямо через несколько минут начинается презентация от Google! Уже на экране ожидания нам заспойлерили несколько продуктов и ранних утечек. Чтож, может презентация будет не скучная, беру слова назад :) #TeamPixel

О_о Зачем она положила яйцо в рот???

Ой, мне так нравиться вайб презентации от гугл. Намного домашнее и уютнее) Я считаю что это правильный шаг #TeamPixel

#TeamPixel Говорят на пикселе лучшее распознование голоса из всех телефонов на рынке. Интересно, какое у этого применение

#TeamPixel Утечка потвердилась. Pixel 6 от 599$, Pixel 6 Pro от 899$

#TeamPixel 12GB оперативки на Pixel 6 Pro, хоспаде, зачем. Я на нем Minecraft сервер запущу такими темпами, скриньте.

#TeamPixel Каждый раз когда я слышу про безопасность, мне сразу больно. Хочу рут! Подробнее про рут и зачем он нужен будет тред завтра)

Опа, Android 12 RC уже доступен на пикселях, качайте

#TeamPixel Фича с удалением людей из жизн... с фото прекрасна, конечно.

#TeamPixel Most inclusive camera available Отличный слоган, я считаю.

#TeamPixel Просто показали уже слитый пиксель. Эх, впустую потраченное время

#TeamPixel Вот и ушла эпоха тканевых чехольчиков :( На Pixel 6 Pro только силиконовый чехол, а жаль.

Среда


Сейчас, судя по форумам и сообщениям в чатах, очень плохо с доступностью Pixel 6 и Pixel 6 Pro даже в странах, в которых продается телефон. Как быть тем, кто отправляет на адреса складов пересыльщиков, вообще, непонятно. Гугл отказывается высылать телефоны на эти адреса.
notion image

Вчера представили новые Pixel 6 и одна из их главных фишек - это защищенность. Не всем это по душе, кто-то хочет ставить тот же самый Magisk на устройство. Зачем нужен Root на Android-смартфонах и какие проблемы с ним есть обсудим в треде 👇

Для начала давайте обсудим зачем это нужно. Самая нужная фича для меня - запись звонков. На чистом Android записи звонков нет. Если у вас есть рут, можно поставить Magisk-плагин для записи звонков от skvalex. Мне настолько понравилось приложение, что я даже купил про версию.
notion image

Без рута мне пришлось перейти на #TinkoffMobile ради записи звонков. Плачу за связь бешеные 1697 рублей, но запись звонков там просто огонь! Автоматически записываются все твои звонки, к ним есть расшифровка и сообщения в диалоге привязаны к таймкодам
notion image

Многие операторы продают за деньги доступ к раздаче интернета. Например, Yota или Tinkoff. Делают они обычно это с помощью TTL. С помощью рута можно поменять TTL на телефоне и раздавать без проблем, не платя деньги оператору
notion image

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

Или, например, залезть в HTTP Api приложения. Для этого требуется отключить шифрование и с рутом это можно сделать через Xposed, просто внедрив в функцию подписи свой сертификат. Дальше видны все запросы по HTTP любого приложения. spy-soft.net/xposed-for-byp…

Фиксить чужие баги тоже можно с рутом. Или добавлять фичи, такие как поддержка контроллеров - DualSense от PS5 или чего-то похожего github.com/Magisk-Modules…

Однако при наличии рут, чаще всего, тяжело пройти проверку SafetyNet. А это сразу минус банки и некоторые приложения. Например, когда я работал в Snapchat, там для похода в офис требовалось приложение, которое не открывалось с рутом - Sequoia bit.ly/3G8eqqW

На новых пикселях проверка SafetyNet происходит хардварно, поэтому все тяжелее и тяжелее скрывать там рут. Пока все еще можно обойти эту защиту с помощью модуля, но на Pixel 6 такая возможность может пропасть github.com/kdrag0n/safety…

Моя позиция заключается в том, что я хочу владеть телефоном. Хочу запускать там свой сервер, хочу ходить под рутом по папочкам, хочу ковыряться в исходниках. Поэтому я считаю что рут - это неотъемлемая часть Android-экосистемы

🔥Тред (Никита Куликов)

Четверг


Документация исходников Android как вид искусства S.
notion image

Душераздирающая история. В Android 11 была пасхалка - по нажатию на версию можно было открыть игру с котиками-тамагочи. Жена обновилась до Android 12 и все её котики, которых она кормила и поила, пропали...

Пятница


Чтож, так плотно публиковать контент, как я планировал, не получилось. Не все темы я успел затронуть. Что вы бы больше всего хотели почитать?
🤔 37.8% Правильная авторизация
🤔 21.0% Что такое BLE
🤔 20.2% Мир кодеков
🤔 21.0% Преподавание и IT

Воскресенье


Недавно вечером я сделал автодеплой для плагина Geminio. Это шаблонизатор для Android Studio. Что такое шаблоны в мире разработки и что происходит в этом мире я расскажу в этом треде 👇

Многие мобильные разработчики себя называют перекладыватели JSON. Все потому, что в мобильной разработке очень много типичных задач. Более того, самые популярные архитектуры имеют много бойлерплейт-кода

Решений несколько, одно из них - это шаблоны. Ты один раз пишешь шаблон, а потом просто одним кликом генерируешь код. Выглядит это так
notion image

В Android Studio 4.1 убрали эти шаблоны, говоря что путь по которому шаблоны создавались, порочен. Как обычно, в духе Google, альтернативы представлено не было - только неудобный путь с плагинами (тот кто писал плагины под студию, поймет какой это треш)
notion image

Но ребята из @hh_ru написали плагин, который возвращает поддержку шаблонов - Geminio. github.com/hhru/android-m…

Особо документации нигде на него нет, по той что есть непонятно что и как. Поэтому, если захотите воспользоваться, лучше смотреть в их семплы: github.com/hhru/android-s…

🔥Тред (Никита Куликов)
До работы в Snapchat и Flipper Devices я делал авторизацию в Mail.ru. В треде я покажу примеры хорошей авторизации и плохой. Объясню как можно было бы сделать лучше. 👇

Самая частая проблема авторизации по телефону - это отсутствие автоподстановки кода из СМС. Apple и Google давно имеют API для этого, так почему бы его не использовать? @X5_RetailGroup с их свежим приложением для доставки Около решили игнорировать это API.
notion image

А вот как тот же самый процесс выглядит у @citymobiltaxi, они молодцы! Код самостоятельно подставляется. Уверен, ребята только на этой фиче выиграли пару процентов конверсии на авторизацию.
notion image

В догонку к лучам похвалы команде @citymobiltaxi - ребята не поленились и сделали popup с предложением выбрать номер телефона из записанных на телефоне. Да, система предоставляет API под это. Есть скрытое API для чтения номера телефона, но мало кто использует даже открытое
notion image

Далее вещь, которая меня больше всего раздражает, есть везде. Даже у @Telegram. Использование модненьких масок абсолютно убивает возможность вставлять номер телефона из записной книжки, например. Или из смски/другого мессенджера.
notion image
notion image

Ну и лидер нашего сегодняшнего топа это @burgerkingrus. Слать смски при авторизированном инстансе приложения на телефоне, это верх расточительности
notion image

И не надо мне говорить про безопасность, если банки себе это позволяют, то и фастфуд может. Дайте мне пару человеконедель и я смогу срезать косты СМСок у @burgerkingrus процентов на 50, что, скорее всего, для БК сэкономит больше пары миллионов рублей в месяц

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

🔥Тред (Никита Куликов)
Весь прошлый год я жил в Украине, переехал туда из Москвы. В этом треде я расскажу про Украину с точки зрения айтишника👇

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

Причем наблюдение было сделано не по моему окружению (Snapchat, впринципе, платит отлично), а по разговорам с коллегами по цеху из других компаний. При этом цена на недвижку сильно меньше, да и все сильно дешевле. Снял очень классную однушку по верху рынка за 40 тысяч рублей
notion image

В Москве, чтобы вы понимали, я снимаю сильно хуже квартиру по локации и ремонту за 55к. И это мне ещё повезло.

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

Сам город тоже не особо облагорожен, @varlamov растроился бы
notion image

По цифровым сервисам тут все отлично. Если не хотите покидать свою золотую клетку, то у вас есть прекрасные Glovo и Raketa - смогут доставить почти любую еду к вам. Glovo даже имеет подписку Prime.

C такси тут тоже все отлично - есть Uklon, Uber и Bolt. Все очень дешево и редко когда были проблемы. В копилку к прекрасным сервисам - Rozetka. Почти все есть, доставляют быстро.

Ещё есть просто превосходная @novaposhta. Это просто шедевр, только ради них готов был бы остаться. Доставка мегабыстрая по всей Украине и при этом есть кучу клевых фич. Например, вы можете отслеживать свою посылку прямо по карте в реальном времени

В Киев очень сложно не влюбиться, хоть и были спорные моменты, но, в целом, я скучаю по этому городу и по людям там
notion image

Украину покинул по личным причинам. Если вдруг у вас есть вакансия с релоком в США/Лондон/Канаду на будущее лето, то можно было бы пообщаться (t.me/lionzxy). Думаю, одна из этих стран вполне может стать моей следующей любовью)

🔥Тред (Никита Куликов)
Вот и подходит моя неделя к концу. Не скрою - для меня это было очень сложно и как показал результат - полностью все задуманное я так и не опубликовал. Давайте пройдемся по топикам недели👇

Вчера представили новые Pixel 6 и одна из их главных фишек - это защищенность. Не всем это по душе, кто-то хочет ставить тот же самый Magisk на устройство. Зачем нужен Root на Android-смартфонах и какие проблемы с ним есть обсудим в треде 👇
Украина: twitter.com/mobileunderhoo… Авторизация: twitter.com/mobileunderhoo… Шаблонизация: twitter.com/mobileunderhoo… Root-права: twitter.com/mobileunderhoo…

Прямо через несколько минут начинается презентация от Google! Уже на экране ожидания нам заспойлерили несколько продуктов и ранних утечек. Чтож, может презентация будет не скучная, беру слова назад :) #TeamPixel
MacBook M1 для разработки: twitter.com/mobileunderhoo… Трансляция Apple: twitter.com/mobileunderhoo… Трансляция Google: twitter.com/mobileunderhoo…

Если хотите и дальше читать меня, можете подписаться - t.me/LionZXY. Я понял что очевидные вещи для меня, неочевидны для многих, поэтому оставшиеся топики довыкладываю там. А именно: - Кодеки - BLE - Преподавание и IT - Trip по офисам - Токсичные команды и прочее

🔥Тред (Никита Куликов)

Ссылки