iOS Makes Me Hate
3.94K subscribers
1.16K photos
169 videos
15 files
1.33K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
ChatGPT для Swift: Топ 5 подсказок для генерации кода

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

🟣Генерацию моделей под JSON
🟣Написание юнит-тестов и моков
🟣Написание кода под специфичные задачи
🟣Добавление документации
🟣Предложения по улучшению кода
Please open Telegram to view this post
VIEW IN TELEGRAM
16
This media is not supported in your browser
VIEW IN TELEGRAM
Мои первые 100 задач в литкоде были максимально юзлес. Почему-то, я послушал советов в интернетах и тупо начал решать все подряд, поверхностно прочитав «грокаем алгоритмы»

Это была жесткая ошибка, где я потратил впустую десятки часов.

Главные советы:
1. Изучать техники и паттерны конкретно под iOS
2. Отличать хорошие задачи от плохих
3. Иметь насмотренноть и решать задачи разными решениями
4. Не зубри решения кодом

А я напоминаю что у меня есть открытый гитхаб с задачами и почти 200 других рекомендованных задач в закрытом ноушене
14
😱 Как дела с увольнениями и что с рынком iOS?

ИТ уже давно переполняется спецами. Поиск работы занимает все больше времени. Например, на западе, чтобы найти работу даже сеньору, нужно сделать около 100 откликов и пройти 30-40 собеседований. А фильтр опыта и нехватка мест для джунов — меньшее из проблем.

Вкратце о треде:
🟣На каждую вакансию около 100 претендентов.
🟣В среднем поиск работы на любую позицию занимает 3-9 месяцев.
🟣Люди расширяют знанию или уходят в другой стэк: flutter, react native
🟣Рынок переполнен низко-качественными спецами, которые усложняют найм всем

Говорят, все что случается на западном рынке, с опозданием приходит к нам. Верим?
Please open Telegram to view this post
VIEW IN TELEGRAM
6
👆👇 Подборка статей как свичнуться из iOS в другой стэк

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

Тема горизонтального роста стоит очень остро. Она стоит гораздо чаще, чем в любой другой профессии. Самый популярный свитчинг из любой технической ветки — это в ветку манагера.

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

Для тех, кто задумался, собрал пару интересных статей:

🌄 Переход от iOS-инженера к Backend-инженера. Автор разбирает чем же отличаются или сходятся задачи, языки и мышление кнопкокрасов и джейсонокладов.

🌄 Mobile development vs Machine Learning. Если вы давно смотрите на ML, то автор собрал лучшие карьерные опции для вас. Какие скиллы нужны для той или другой области.

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

🌄 Переход из iOS в Android. Ну а этот тред для предателей и отступников. Кто решил бросить свое братство

Делитесь в комментах своим опытом перехода в другие стэки или наоборот, почему пришли в iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
168
💎 Скидка на закрытый контент

Недавно мне сказали, что начали читать мой ноушен чаще, чем хабр. Это сильная мотивация придумывать больше идей, которые будут полезны мне и вам. А также потенциальная точка масштабирования.

Что вы можете получить за подписку?
🟣Большая база вопросов для подготовки к собесам, провалидированная экспертами из крупных компаний
🟣Сотня задач на кодинг-алгоритмы с разбором и комментариями
🟣Десяток уникальных статей про кишки и не очень iOS SDK
🟣Задачи на проектирование и систем дизайн: чаты, избранное, DI
🟣Задачи на рефакторинг
🟣Роадмап iOS разработчика
🟣Чат с крутейшими практикующими разрабами, где тебя не будут булить за глупые вопросы
🟣Многое другое

Предложение ограниченное (для старых подписчиков тоже действует скидка)

🚘🚘Подписку можно оформить через бусти или бота
Please open Telegram to view this post
VIEW IN TELEGRAM
97
SwiftUI: советы по оптимизации

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

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

Мы знаем много советов по оптимизации UIKit, но со SwiftUI все не так очевидно.

Автор статьи собрала десяток советов, которые не всегда были бы очевидные:

🟣Для моделей используйте структуры вместо классов
🟣Избегайте AnyView
🟣Чаще используйте Lazy элементы
🟣Используйте @Stateи @Binding вместо @ObservedObject или @EnvironmentObject
🟣Используйте ForEach с явным id

И многие другие.
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Что такое mobile system design?

Большинство форматов собесов себя изживают. Пока мы зубрили доку по iOS рынок придумал еще 2-3 секции, чтобы снизить наши зарплатные ожидания и детальнее оценить кандидатов.

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

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

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

У всех компаний эта секция проходит по-разному: в одних просят нарисовать только схему и поотвечать на вопросы. В других же могут попросить и покодить.

Автор статьи бегло пробегается по частому формату в фаанга. Какие вопросы задают и что могут спросить
12
🌿 Mobile System Design: Проектируем чат как в телеграме

Чаты — это отдельный вид приложений. В нем нужно учитывать многие детали:
🟣Трафик
🟣Кэширование и его очистку
🟣Частоту обновления
🟣Скорость
🟣Масштабирование

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

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

🌄 А я напоминаю, что завтра заканчивается скидка на ноушен. Подписку можно оформить через бусти или бота
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Как пройти архитектурную секцию собеседования

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

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

Мне нравится этот тренд. Мобильная разработка растет вширь, в ней начинают циркулировать новые идеи. Сейчас смотрю и изучаю много материала для нового раздела в ноушене. Пока один из лучших докладов — это у Кирилла Розова. Обязательно советую
125
Forwarded from Polymorphic Blueprint (Aѕtɛmiɾ)
Media is too big
VIEW IN TELEGRAM
#metal #advancedui

🎶 Смотреть со звуком


Metal in Action: Audio Player. Round V

Ультимативна версия визуализатора для аудиоплеера. Такая, что пришлось дунгрейднуть количество циклов volumetric rendering'a. Процедурное здесь все, кроме UI.

Дюна... одно из самых любимых произведений. Я старался объединить ключевые концепции этой вселенной: Арракис — можно увидеть на фоне с процедурными песчаными бурями, меланж — окутывает Арракис, блестит, развевается по волнам дюн и светится голубым при активных битах. Пустыня и приближение Шай-Хулуда видны в постоянном дрожании песков, синхронизированном под ритм музыки.

Буквы отрендерены через Signed Distance Function и поворачиваются по мере прогресса трека. Благо, это лишь одна функция и поворот на 90 градусов clockwise 🐭

Поверхность Арракиса, точнее песчаная буря, зависит от битов трека, на основе которых происходит вычисление хеш функции для Fractal Brownian Motion и создает уникальный паттерн для движения бурь; Настраивается практически все, а все что нельзя настроить - можно всегда переписать 😂

🏛 Polymorphic Blueprint
Please open Telegram to view this post
VIEW IN TELEGRAM
1364
какой результат выведется в консоли?
14
SOLID принципы в Swift

Понимание солидов и умение применять их на практике, одно из самых частых, что выделяют экспертные разрабы как признак опытности.

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

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

SOLID — это самое популярное в работе с поддержкой кода. Но даже тут возникает кучу вопросов.
142
💎 Серия статей про билд систему

Быстрая скорость работы билда — главная цель крупных проектов. Будь это пайплайны CI/CD или сборка рабочего проекта все это имеет десятки или даже сотни рабочих часов.

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

Я начал писать серию статей про системы сборок. В первой затронул:
🟣Зачем программисту думать о сборке?
🟣Framework vs Library
🟣Статические и динамические библиотеки
🟣Какие есть системы сборки: Xcode, Bazel, Buck

🌄 Получить доступ можно оформить через бусти или бота
Please open Telegram to view this post
VIEW IN TELEGRAM
11
AI для расчета сложности алгоритмов

Вам больше не нужно знать сложность алгоритмов. За вас это оценит нейросеть

Очень удобная вещь сразу на практике изучать какой сложности вы написали код. Забудьте все остальные материалы
17
🧬 Задачи на проектирование: кастомный Notification Center

Добавил в открытый доступ первую статью по кастомному Notification Centr'у. Я уже писал о нем ранее, а сейчас решил выложить полную статью в гитхаб.

Создание своего Notification Center встречается в крупные компании Окко, МТС, ВК. Данный пример не эталонный и скорее показывает одно из сотен решений. Он не гарантирует прохождение собеса, а лишь помогает ознакомиться с вариантами решений.

Поставленная задача такая:
🟣Запроектировать класс
🟣Сделать его thread safety
🟣Сделать его memory safety
🟣type safety

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

💎 Больше других задач можно получить тут через бусти или бота
Please open Telegram to view this post
VIEW IN TELEGRAM
1044
Практические решения проблем с Swift Concurrency

Нет ничего идеального. Новый инструмент решит одни проблемы, но принесет новые.

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

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

Еще раз убеждаюсь, что лучшие продукты можно сделать только имея лояльную аудиторию и собирая фидбэки, а соло авторы, часто, изобретают велосипеды или живут в своих фантазиях
14
219
У литкода вышла крутая фича, которая оценивает сложность вашего решения.

Офигено
97411