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

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Почему System Design — главный навык сеньорности

Главный собес, который отражает сеньорность — это систем дизайн или же проектирование. Его не зазубришь при накрученном опыте. Не заучишь по слитым вопросникам. Потому что здесь нет правильных ответов.

Как бы круто ты не знал кишки: Side Tables, многопоточку, SwiftUI и Render Server, математику, базу — рынок оценивает твою сеньорность по систем дизайну. В СНГ или на западе. Везде.

Во многих компаниях системный дизайн — важный этап собеседования на senior-позиции. Потому что они хотят видеть, что кандидат умеет не просто писать код, но проектировать систему.

Да и мы полтора года назад мы уже делали опрос "Какие главные навыки сеньора". Где 77% ответили — проектирование сложных и больших систем.

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

Я собрал основные аргументы в карточки.
135
Вам не нужны анимации

Меня не сильно прикалывает верстка. Часто это для меня скучная рутина, если это не какая-то новая технология, видео, нагруженный UI. Или я не пишу сложный генератор лайатуов like BDUI движок.

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

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


А вы как думаете?
73
This media is not supported in your browser
VIEW IN TELEGRAM
Ну или вот. Ресерчил бест практики как работают видео ленты.

Мне нравится ютуб. Он не включает все видео сразу. Он заботится о шуме:
- при скролле все видосы на паузе
- при паузе воспроизводится не все во вьюпорте, а одно.

А представьте что разом вдруг воспроизведутся все? А еще и будет обрывистый зумерский монтаж?

Конечно, можно усложнить и сделать круто. Добавить «живости». Ведь есть миф, что крутость анимации определяет скилл разраба. Но нужно ли это юзеру?
63
Периодическая таблица систем дизайна

Тут один чел зашарил и сделал супер жесткую таблицу.

Собрал и классифицировал принципы, которые часто встречаются в разных областях. Здесь не набор конкретных решений, а абстрактные принципы.

Напомню, что для систем дизайна — принципы важнее шаблонов.

Принципы разделены на группы:

🔘Structure — как разбивать систему на модули, управлять зависимостями и расширениями.

🔘Efficiency — как делать меньше работы, избегать излишних затрат

И другие.

А в каждом принципе уже снабжен символом, целью и примером.

Топ контент
Please open Telegram to view this post
VIEW IN TELEGRAM
1521
Лучшие материалы для подготовки к System Design Interview

Собесы систем дизайна — очень сложны. Их не только сложно проходить, а еще сложнее проводить.

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

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

💎 A Simple Framework For Mobile System Design Interviews (iOS & Android) Наверное, самый популярный репо. Изучить его рекомендуют рекрутеры рф бигтехов перед собесом и даже разрабы из гугла в нашем чате. А я даже делал свой форк и обновил некоторую инфу для iOS разрабов (скоро сделаю обновление)

💎 System Design Interview For Mobile Engineers. Полезная обзорная статья основ что и для чего ожидается от мобильного разраба

💎 Список публичных мок-собесов. А еще можете найти мой публичный собес 😉

💎 Канал про архитектуры и систем дизайн. Очень много разного контента, в котором есть полезное для всех.

Это лишь капля в море. Книги мы будем разбирать отдельно.

А получить доступ к закрытой базе и мок-собесам по систем дизайну можно 💰 тут или ⭐️ тут
Please open Telegram to view this post
VIEW IN TELEGRAM
8
This media is not supported in your browser
VIEW IN TELEGRAM
Ушел со спотика из-за того что это контора поменяла политику подписок. Сижу на Apple Music

Ну и слушайте, этот стеклянный Боттом бар прям пушка

Пример когда анимации и правда решают и не мешают. Вопрос конечно не начнет ли раздражать через время
16
Созвон комьюнити в 18.10 в 10 по мск

Очередной созвон где мы голосом обсудим самые острые и важные темы.

🟣Почему это важнейший навык в эпоху ИИ?
🟣Самые сложные задачи
🟣АРХИТЕКТУРЫ vs MOBILE SYSTEM DESIGN
🟣Всё про собесы
🟣Гайды и роадмапы
🟣И многое другое

🧬Попасть можно 💰тут или ⭐️ тут
Please open Telegram to view this post
VIEW IN TELEGRAM
9
Пагинация: от идеи до реализации

Очень частая задача в систем дизайне — это пагинация.

Особенно важно это в больших объемах инфы: бесконечных лентах, чатах, мессенджерах.

Помню одной только пагинацией+чанканизацией я сократил время загрузки чатов х2 в мессенджере при слабом интернете.

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

Реализаций этой идеи есть разные.

В этом докладе автор расскажет:
- почему стандартная пагинация через offset/limit - неоптимальный выбор
- чем пагинация через курсор поможет вам
- что такое вообще пагинация и какая у этой идеи история
15
Там телега выкатила обновления с жидким стеклом. Примечательно что и для старых версий.

Позже разберем исходники
1151
Please open Telegram to view this post
VIEW IN TELEGRAM
💎 Mobile System Design: Почему это важно в эпоху ИИ?

Открываю цикл статей вводной.

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

Нам говорят: "сначала MVP, потом рефакторинг". Но потом почти никогда не наступает. Так и рождаются системы, где уровень хаоса высок, а понимание причин — низкое.

Вот почему ценится глубина — не просто знание SDK или фреймворков, а умение залезть внутрь системы, понять её устройство и связи.

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

Как сохранять ясность в растущей энтропии? Как проектировать простое, и четко доносить идеи до команды? Как не свистеть кукухой?

Написал первую статью-исследование, которое открывает цикл статей Modern Mobile System Design:
🟣Почему это ключевой навык в эпоху ИИ
🟣На основе опросов и статей собрал информацию какие программисты будут востребованы
🟣Какие ключевые навыки нужно качать
🟣Кто такие Context инженеры, Контекстное мышление, Архитекторы AI-агентов

🧬Получить доступ к циклу статей можно 💰тут или ⭐️ тут
Please open Telegram to view this post
VIEW IN TELEGRAM
6
This media is not supported in your browser
VIEW IN TELEGRAM
Можно ли отказаться от Xcode?

Есть два мифа:
1. Настоящий иосер пишет только в Xcode
2. Нельзя запускать симулятор нигде кроме Xcode

Сейчас, в эпоху нейронок, многие почти не пользуются Xcode'ом или другими привычными IDE. На их место встал Cursor/Windsurf, CLI, MCP, а для кого-то даже терминал.

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

Например, SweetPad помогает забилдить апку в VSCode. Если вас уже задолбал Xcode и вы не хотите встречаться с его багами — отличная альтернатива.

Чем лучше VSCode?
- VS Code легче по ресурсам: запускается быстрее, меньше тормозов при простых задачах.
- Мульти-языковая среда: если ты пишешь не только на Swift (например, backend, скрипты, веб и т.д.), то VS Code удобно объединять все в одном инструменте.
- Ты можешь ставить только нужные плагины, конфигурировать, как тебе удобно. Легче устанавливать доп плагины
- debug view hierarchy можно заменить через Reveal. Говорят он работает лучше.

Конечно, есть и зависимости:
- Interface Builder — это если вы юзаете Preview или Storyboard'ы. Но я верстаю без этого.
- Для подписи и выкладки в стор все еще нужно скачивать Xcode. Тут, если покряхтеть, можно выгружать через какой-то сервис.

Кстати, у Apple даже есть официальная дока как настраивать Swift на VSCode
141
Watchdog

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

Для чего нужно писать свои Watchdog'и?
- профайлинг Xcode’а только для симулятора/дебага. Нужно подключенное устройство. Сейчас с этим у многих компаний проблемы. Ограничения на реальные девайсы, дебаг усложняется.
- симулятор != реальное устройство. Разные мощности и оптимизации
- Проблемы могут быть только на определенных устройствах, версиях аппки и ios.
Часто нужны реальные условия и окружения юзеров

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

Решил собрать самые интересные решения:

🟣Implementing a main thread watchdog on iOS. Автор предлагает сделать простенький таймер, который следит за нагрузкой главного потока.

🟣Addressing watchdog terminations. Дока от Apple про системный Watchdog

🟣Watchdog Terminations on iOS. Типичные ошибки разрабов почему Watchdog крашит их приложение
Please open Telegram to view this post
VIEW IN TELEGRAM
113
This media is not supported in your browser
VIEW IN TELEGRAM
Что я делаю в Яндексе?

Иногда буду делиться чем не стыдно. И что доходит до прода 😂

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

Было много задач, но расскажу про сторисы. Прям как в запретограме (почти).

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

Заюзал еше самый современный стэк SUI + SC

В итоге вышло аж ~80 тесткейсов. Которые мы еще и почти все автоматизировали.

Тк мы одни из первых, кто работал с видео, то вызовов было много.

Пока это первая версия и на очереди уже крутое обновление. По-любому вы найдете какой-то неприятный маленький косяк. Но я его уже скорее всего исправил :)

Пока работает только в Питере и Москве.
Please open Telegram to view this post
VIEW IN TELEGRAM
32733
Как я проходил собес в Microsoft

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

Мы даже провели опрос, где 70% посчитали собесы сломанами. Может быть в мировых гигантах дела обстоят получше и эти процессы поставили эффективнее?

Автор статьи рассказывает к проходил собес на iOS разраба в Microsoft.

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

Вроде стандартный пак. Но автор говорит, что даже не смотря на провал, такой опыт собесов дал ему много точек роста и стал полезен.
72
This media is not supported in your browser
VIEW IN TELEGRAM
Страшно, очень страшно. Если бы мы знали, что это такое…😱

Но мы в Garage Eight знаем, что это такое, потому что считаем, что настоящие прорывы случаются за пределами зоны комфорта.

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

🔥 Голосуйте за гаражистов, чтобы поддержать их в борьбе со своими фобиями!
Please open Telegram to view this post
VIEW IN TELEGRAM
41