iOS Makes Me Hate
4.08K subscribers
1.31K photos
186 videos
24 files
1.44K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK

Самое большое сообщество практиков: https://boosty.to/lionbond
Download Telegram
Forwarded from YDC — Pizza Powered iOS (Kirill Smirnov)
🤖 🔍 Метрики качества и производительности мобильного приложения

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

#Metrics

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
96
главная ложь аи-агентов: Линтер ошибок не показывает. Готово к тестированию.
31
Короче, на выходных наконец записали воркшоп-интервью-подкаст про аи в иос разработке. Тянули долго. За это время рынок аи мог поменяться пару раз.

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

Обсудили почти все. И не просто обсудили, а 90% времени был код. Чистейшая практика.

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

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

Прогрев? Да.

Будет скоро. А пока у меня отпуск.
27107
Наш любимый блогер взял интервью у создателя Swift

Видел как много кто публиковал это интервью. Напомню, что Pragmatic Engineer, один из главных вдохновителей этого канала, взял интервью у Криса Латтнера. И почти все говорят о инфе про сам язык Swift. Как было сложно автору и Apple его не понимало.

Но никто не сказал главное! То, что выделенно в заголовке. То ли специально, то ли из-за отсутствия опыта и погружения в контекст. Но эти мысли все упускают. А именно как "high-performance AI Engineering". Что же создатель любимого нашего языка вообще говорит про АИ?

Gergely Orosz уже писал офигенную статью "AI Engineering in the real world". Но тут он прямо в лоб спрашивает "Видите ли вы влияние на индустрию аи тулкитов?"

И что ответил Крис? Он ответил, что поощряет команду разработки языка Mojo использовать Claude Code, Cursor и все остальные инструменты. Он видит много пользы и повышает производительность на 10%. Но конечно нужно не отключать мозг и не доверять полностью.

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

Вообще советую послушать весь выпуск целиком. Там много крутых мыслей и референсов на целые книги о кодинге с аи, статьи и целые учебные материалы.
9
AI Engineering: Building Applications with Foundation

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

Инфы про аи — за глаза. Каждый инфоцыган, блогер, руководитель, тимлид говорит об этом. Но ни один практик из завода. Мы уже выяснили кого публике интересно читать. Того, у кого дедлайны, асапы, перфревью и бизнес цели. Они молчат.

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

Эта книга без математики и сложных формул. А чисто и в лоб про главное — как строить системы, которые работают в продакшене

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

Что тебя ожидает:
- Подборка воркшопов, интервью и мок-собесов с лучшими экспертами рынка. Изоляция — главный враг развития. Я зову самых лучших экспертов и практиков в своей теме чтобы хорошо изучить любые вопросы
- Более 1000 задач на разные темы и под реальные задачи: память, многопоточка и другое.
- Большой раздел про System Design. До сих пор мало кто его системно разбирал и делал не просто пересказы других тем, а делился опытом из первых рядов.
- Самые важные алгоритмы для мобильщиков. Алгоритмы для мобильщиков, которые задают на собесах и встречаются в жизни, отличаются от литкода и бэка. У многих компаний есть разные критерии оценки, соглашаться с ними или нет — выбор каждого. Но будет полезно хотяб почитать что они рекомендуют.
- Большой блок Swift Councurrency, который я собираю еще со времен преподавания в яндекс.практикуме
- И гигабайты другой информации, которую мы собираем постоянно

Доступ 💰тут или ⭐️ тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
162
Судя по опросу в номинации «самое лучшее приложение Яндекса» - выиграло Яндекс карты.

Давайте поиграем в игру. Какой, любой технический или маркетинговый вопрос, вы бы задали их разрабам?

Нужна ваша помощь. Лучший вопрос попробую донести до них.
12
Forwarded from Сиолошная
Я: пишу про необходимость изменения собеседований в эпоху AI

META: начинает шевелиться

Тот-самый-азиат:

Перевод:
Слышал об собеседующем из ByteDance, который проводил удаленное собеседование. Способ, которым он решил поймать кандидата на жульничестве с использованием ИИ, был настолько наивным, что это даже абсурдно.
Интервьюер внезапно сказал: «Закройте глаза и ответьте на этот вопрос».
22
Forwarded from YDC — Pizza Powered iOS (Kirill Smirnov)
🤫 Что общего у UITableView и git diff

Когда-то давно, лет 10 назад (у меня была задача: получать пачку данных с сервера, находить различия с кэшем и красиво обновлять UITableView, чтобы не было резких reload'ов, а всё плавно вставлялось, удалялось и двигалось.
Тогда задача обошлась мне, не в один день анализа и проектирования, чтобы научиться сравнивать старый и новый массивы.

Тогда ещё не было никакого CollectionDifference, и я просто пошёл реализовывать алгоритм Вагнера–Фишера и работать с вычислением: расстояния Левенштейна и редакционноого предписания - минимального количества действий и их последовательности чтобы из "ABC" получилось "ACD".

Ну и конечно, всё это руками прикручивалось к performBatchUpdates:


tableView.performBatchUpdates {
tableView.deleteRows(at: ...)
tableView.insertRows(at: ...)
}


Весело? Не очень. Но тогда по-другому никак.


Потом, с приходом iOS 13 и Swift 5.1, всё изменилось.
Apple выкатили DiffableDataSource, и вместе с ним — CollectionDifference.
Это была буквально революция, теперь можно просто сформировать снапшот и отдать его таблице:


var snapshot = NSDiffableDataSourceSnapshot<Section, Item>()
snapshot.appendSections([.main])
snapshot.appendItems(items)
dataSource.apply(snapshot, animatingDifferences: true)


UITableView сама всё поймёт, сама вычислит, что вставить, что удалить, что переместить — и сделает это с анимацией.
А мы — просто передаём новое состояние.

Если копнуть глубже, то под капотом лежит алгоритм Майерса.
Он также находит минимальную последовательность изменений между двумя массивами.

Apple реализует его для CollectionDifference.
Можно глянуть исходники Swift или вот обьяснение алгоритма.

Но если хочется больше контроля или скорости — есть и альтернативы.
Например, DifferenceKit, который использует алгоритм Пола Хекеля.
Вот сам код.
Он быстрее в ряде кейсов, особенно если много данных, на это влияет сложность O(n), бенчмарки можно посмотреть на gh.
И с ним сделали даже backport - DiffableDataSource для старых iOS.

Мораль истории: задача сравнения последовательностей — стара как мир.
Её решают в UI, в git, в текстовых редакторах.
А теперь и мы — наконец-то — можем делать это в UITableView, не теряя нервы на написание сложных алгоритмов и работу с indexPath-ами.

#L #UITableView #DiffableDataSource #CollectionDifference #LevenshteinDistance

👏
Please open Telegram to view this post
VIEW IN TELEGRAM
134
Отпускной контент

Я же взял курс по аи-креаторству. Как делать крутые ролики и контент с помощью нейросетей. Поэтому ждите здесь первые труды. Буду спаривать образовательный контент с креативом.

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

Главная цель любого труда - насмотренность. Будь это аналитика конкурентов в стерильной коммерции. Живой опыт реальных экспертов. Референсы художников на кино лайк Тарантино.

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

1. The Northman (2022). Лучший дарк-фэнтези, что я посмотрел в этом году. Вайбы Берсерка и Саги о Винланде присутствуют.

Я долго откладывал кино, но являясь любителем жанра эпоса, не мог устоять. Это самый красивый фильм о викингах. Каждые 5-10 лет для меня открываются свои фавориты в фольклорных эпосах.

В 2010х - это «Вальгала» от Рефна с Миккельсеном.

В 2015 «Макбет» Курзеля с Фасбендером.

В 2020 неплохой «King» с Шалламе.

В 2025 же охеренный «The Northman» Эггерса.

2. «Человек-бензопила: История Резе». Я фанат мангаки. Мне нравится его FirePunch. Огромное кол-во отсылок на кино с прямыми заимствованиями и цитатами. Неординарный стиль и пост-модернизм.

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

Перечитаю мангу.

3. «Братья Карамазовы» Достоевский. В эпоху нейронок нам все же не хватает естественности и живости. Следующий год я объявил для себя — годом классической литературы. Я хочу оживить речь и стиль.

Даже этот пост я начал писать потому что нужно размывать немного границы и уходить от фокуса только технического контента.

А почему начал с Достоевского? Потому что любимый автор.
1103