Архив недели @LionZXY
Понедельник
Привет, Твитовчяне! Меня зовут Никита. Я Android-разработчик в Flipper Devices. За плечами у меня и проекты на плюсах, и ассемблер на STM32, и фронт на реакте, и много мобайла. Я в твиттере новенький, так что давайте знакомиться👇
Сейчас я работаю во Flipper Devices и делаю мобильное приложение-компаньон для этого клевого парня
До работы в Flipper Devices я работал в ламповом Киеве, в Snapchat. Приделывал овечкам головы, разбирался с кодеками, хитрыми багами под железо и писал perf-тесты
До Снепа я делал библиотеку для авторизации libVerify/libNotify в Mailru в одно лицо. Если вы когда-либо авторизовывались в сервисах Mailru через СМС - знайте, вы пользовались моим кодом. Про это еще будет отдельный тред на неделе, там будет много инсайдов.
В Яндексе я занимался тем, чем постараюсь никогда в жизни больше не заниматься - писал на плюсах. Этот кошмар я до сих пор вспоминаю с содроганием. Если быть конкретным, то писал я Яндекс.Браузер, а точнее ядро браузера - Chromium.
Теперь немного обо мне как о человеке: мне 23, у меня незаконченное высшее, я бросил вуз после 4 курса, не защитив диплом. Преподаю в ВШЭ и Бауманке. Веду канал в телеграмме t.me/localhost_ru
Учусь кататься на скейте, люблю плавать и видеоигры. Программировать начал из-за 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", то я понимаю ваше ожидание
В новых ноутах ожидают больше оперативки (16Gb для 2021 маловато), новый MagSafe и больше разъемов. Вот последнее отрадно, а то после подключения монитора и зарядки места не остается. Лайк если жиза : D
Из менее ожидаемого на презентации мы ждем релиз новой macOS Monterey.
Жду AirPods. У самого AirPods Pro, хоть и Android-смартфон. Во истину лучшие Bluetooth-уши, которые я щупал
Тред (Никита Куликов)
Сейчас занимаюсь публикацией в 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…
Parallels Desktop - работает. Но только с arm64 образами. А это Ubuntu/Windows под ARM64 и прочее. Запустить x86-образы можно, но сложно и тормознуто. Если ваша работа завязана на Windows-only софт, то не советую.
Эмулятор Android/iOS - работает, из коробки. Единственное, из встроенных образов только Android выше Q
Что не работает - любая связка x86+arm софта. Например, подключаемые x86-бинари из arm-Java. Завести это можно, но не за один вечер.
В целом, MacBook Air M1 - это моя лучшая покупка техники за несколько лет. Рад как ребенок. Оно просто работает и работает превосходно, без никаких нареканий. Давно я от техники такого восторга не испытывал.
Тред (Никита Куликов)
Смотрю трансляцию #AppleEvent в офисе флиппера :3
Эксклюзив из первых рук) Лучше чем презентация эпл, я считаю. #FlipperZero
#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 - это первый телефон, у которого утек сборочный мануал (!) еще ДО выхода.
Из менее очевидного - раскладной смартфон Pixel Fold. Раскладной смартфон от Google. О нем уже долго говорят. В пользу этой теории говорит то что сейчас Google Play не позволяет опубликовать приложения без скриншотов планшета.
Вот так выглядит Google Play на публикации нового приложения.
Ещё один ожидаемый анонс - часы Pixel Watch на свежепредставленной платформе WearOS
Лично я ещё в августе купил себе Galaxy Watch 4 с безелем, очень нравиться, грустно только что Telegram удалил версию для WearOS. Кстати, не посоветуете хорошие оффлайн карты для часов?
Ещё инсайдеры пишут про новую подписку - 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 даже в странах, в которых продается телефон.
Как быть тем, кто отправляет на адреса складов пересыльщиков, вообще, непонятно. Гугл отказывается высылать телефоны на эти адреса.
Вчера представили новые Pixel 6 и одна из их главных фишек - это защищенность. Не всем это по душе, кто-то хочет ставить тот же самый Magisk на устройство. Зачем нужен Root на Android-смартфонах и какие проблемы с ним есть обсудим в треде 👇
Для начала давайте обсудим зачем это нужно. Самая нужная фича для меня - запись звонков. На чистом Android записи звонков нет. Если у вас есть рут, можно поставить Magisk-плагин для записи звонков от skvalex. Мне настолько понравилось приложение, что я даже купил про версию.
Без рута мне пришлось перейти на #TinkoffMobile ради записи звонков. Плачу за связь бешеные 1697 рублей, но запись звонков там просто огонь! Автоматически записываются все твои звонки, к ним есть расшифровка и сообщения в диалоге привязаны к таймкодам
Многие операторы продают за деньги доступ к раздаче интернета. Например, Yota или Tinkoff. Делают они обычно это с помощью TTL. С помощью рута можно поменять TTL на телефоне и раздавать без проблем, не платя деньги оператору
В процессе разработки иногда может быть нужно посмотреть как выглядят файлы твоего приложения или похожего приложения в исследовательских целях. В случае с чужим приложением это можно сделать лишь с рутом
Или, например, залезть в 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.
Душераздирающая история. В Android 11 была пасхалка - по нажатию на версию можно было открыть игру с котиками-тамагочи. Жена обновилась до Android 12 и все её котики, которых она кормила и поила, пропали...
Пятница
Чтож, так плотно публиковать контент, как я планировал, не получилось. Не все темы я успел затронуть. Что вы бы больше всего хотели почитать?
🤔
37.8%
Правильная авторизация🤔
21.0%
Что такое BLE🤔
20.2%
Мир кодеков🤔
21.0%
Преподавание и ITВоскресенье
Недавно вечером я сделал автодеплой для плагина Geminio. Это шаблонизатор для Android Studio. Что такое шаблоны в мире разработки и что происходит в этом мире я расскажу в этом треде 👇
Многие мобильные разработчики себя называют перекладыватели JSON. Все потому, что в мобильной разработке очень много типичных задач. Более того, самые популярные архитектуры имеют много бойлерплейт-кода
Решений несколько, одно из них - это шаблоны. Ты один раз пишешь шаблон, а потом просто одним кликом генерируешь код. Выглядит это так
В Android Studio 4.1 убрали эти шаблоны, говоря что путь по которому шаблоны создавались, порочен. Как обычно, в духе Google, альтернативы представлено не было - только неудобный путь с плагинами (тот кто писал плагины под студию, поймет какой это треш)
Но ребята из @hh_ru написали плагин, который возвращает поддержку шаблонов - Geminio. github.com/hhru/android-m…
Особо документации нигде на него нет, по той что есть непонятно что и как. Поэтому, если захотите воспользоваться, лучше смотреть в их семплы: github.com/hhru/android-s…
Тред (Никита Куликов)
До работы в Snapchat и Flipper Devices я делал авторизацию в Mail.ru. В треде я покажу примеры хорошей авторизации и плохой. Объясню как можно было бы сделать лучше. 👇
Самая частая проблема авторизации по телефону - это отсутствие автоподстановки кода из СМС. Apple и Google давно имеют API для этого, так почему бы его не использовать? @X5_RetailGroup с их свежим приложением для доставки Около решили игнорировать это API.
А вот как тот же самый процесс выглядит у @citymobiltaxi, они молодцы! Код самостоятельно подставляется. Уверен, ребята только на этой фиче выиграли пару процентов конверсии на авторизацию.
В догонку к лучам похвалы команде @citymobiltaxi - ребята не поленились и сделали popup с предложением выбрать номер телефона из записанных на телефоне. Да, система предоставляет API под это. Есть скрытое API для чтения номера телефона, но мало кто использует даже открытое
Далее вещь, которая меня больше всего раздражает, есть везде. Даже у @Telegram. Использование модненьких масок абсолютно убивает возможность вставлять номер телефона из записной книжки, например. Или из смски/другого мессенджера.
Ну и лидер нашего сегодняшнего топа это @burgerkingrus. Слать смски при авторизированном инстансе приложения на телефоне, это верх расточительности
И не надо мне говорить про безопасность, если банки себе это позволяют, то и фастфуд может. Дайте мне пару человеконедель и я смогу срезать косты СМСок у @burgerkingrus процентов на 50, что, скорее всего, для БК сэкономит больше пары миллионов рублей в месяц
Скорее всего, в этих приложениях вы узнали свои. Пока я не встретил ни одного приложения, в котором авторизация была бы идеальна. Уверяю вас, каждый из этих пунктов сможет поднять конверсию вашей авторизации. Можете настроить метрику для этого, чтобы убедиться
Тред (Никита Куликов)
Весь прошлый год я жил в Украине, переехал туда из Москвы. В этом треде я расскажу про Украину с точки зрения айтишника👇
Самая неожиданное наблюдение - в Киеве больше зарплаты. Умножайте свою московскую на x1.5. Да, внутреннего рынка тут нет или почти нет, поэтому зарплаты и такие высокие, но не все ли равно вам?
Причем наблюдение было сделано не по моему окружению (Snapchat, впринципе, платит отлично), а по разговорам с коллегами по цеху из других компаний. При этом цена на недвижку сильно меньше, да и все сильно дешевле. Снял очень классную однушку по верху рынка за 40 тысяч рублей
В Москве, чтобы вы понимали, я снимаю сильно хуже квартиру по локации и ремонту за 55к. И это мне ещё повезло.
В самом Киеве мало инфраструктуры, убитый общественный транспорт и метро. Ездить на нем никакого желания, в отличии от московского общественного транспорта
Сам город тоже не особо облагорожен, @varlamov растроился бы
По цифровым сервисам тут все отлично. Если не хотите покидать свою золотую клетку, то у вас есть прекрасные Glovo и Raketa - смогут доставить почти любую еду к вам. Glovo даже имеет подписку Prime.
C такси тут тоже все отлично - есть Uklon, Uber и Bolt. Все очень дешево и редко когда были проблемы. В копилку к прекрасным сервисам - Rozetka. Почти все есть, доставляют быстро.
Ещё есть просто превосходная @novaposhta. Это просто шедевр, только ради них готов был бы остаться. Доставка мегабыстрая по всей Украине и при этом есть кучу клевых фич. Например, вы можете отслеживать свою посылку прямо по карте в реальном времени
В Киев очень сложно не влюбиться, хоть и были спорные моменты, но, в целом, я скучаю по этому городу и по людям там
Украину покинул по личным причинам. Если вдруг у вас есть вакансия с релоком в США/Лондон/Канаду на будущее лето, то можно было бы пообщаться (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 по офисам
- Токсичные команды
и прочее
Тред (Никита Куликов)