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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
🆙Обновление ноушена за неделю

🟣 Добавлен блок “Код ревью”. В нем будут материалы и статьи про качественный код
🟣Добавлен блок “Архитектура”. Все про архитектурные и дизайн паттерны
🟡Добавлена статья о MVC.
🟣Добален блок с алгоритмами в ноушене. Здесь будет все про алгосы
🟡Добавлена статья “Как оценивать сложность алгоритмов ч.1”.
🟣Добавлена статья “Процессы, Потоки, Очереди и зачем нужен Grand Central Dispatch”
🟣Добавлена статья “Динамическая высота ячейки в коллекции: Frame Based”

Впереди еще материалы с вопросами собесов для джунов про UIKit и язык Swift.

Также чуть буду менять структуру для упрощенной навигации.

получить доступ можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
194
🧬 Как разрабатывать хороший API и почему это важно

Снова контент про стандарты качества. На этот раз древний материал, откопанный в забытой цивилизации. Но это настоящий клад по базовым советам написания кода

Вот саммари:
не забывайте про правильный сбор требований
акцент на нэйминге
декомпозиция и упрощение
использование конструкций, которые принято считать общими для любого языка. это уменьшает объем знаний, которые необходимо изучить для работы с кодом
идеальный код не напишешь с первого раза
помните о производительности, но не жертвуйте ради этого читабельностью.
если класс не предназначен для наследования, запретите его
не заставляйте вашего коллегу делать то, что вы можете для него сделать (это уменьшит количество шаблонного кода, который будет у вашего клиента)

Скоро мы подробнее изучим правила написания читабельного и хорошего кода. Внутри чата мы уже активно ревьюим друг друга.
Please open Telegram to view this post
VIEW IN TELEGRAM
8
Неудавшийся прогноз тысячетелетия
164
🌺 Вопросы на собеседованиях: UIKit | Junior

Одна
из важных и ключевых секций любого собеса

Начал добавлять вопросы к собесам на UIKit:
- Теория
- Практика
- Ресурсы
- Квизы

Контент будет обновляться неделю. Также допом немного обновил вопросы и квизы к многопоточке

Весь контент с вопросами по памяти и многопоточки тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
15
Почему увольняют людей?

Пост немного безжалостный, но честный.

Вы удивитесь. Одна из главных причин увольнения людей это не отсутствие результата. Это недостаточный результат.

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

Особенно это касается джунов и мидлов. Было много случаев, когда стажеров, джуниоров и мидлов просили уволиться или увольняли из-за отсутствия результата. Вроде бы и с задачами для своего грейда справляется, но стоит на одном месте. Зачем такой нужен, если на улице стоят много голодных и горящих?

Почему не получится просто придти на работу и делать минимум, который устраивает всех?

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

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

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

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

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

Здесь мы не строим ложных надежд и веру в быстрые и легкие пути.
2554
Какой цвет будет у вью? Какой цвет будет в дебаг иерархии?

Почему?
💎 Вопросы на собеседованиях: Swift | Junior

Решил добить основные блоки по джуну на недели, чтобы сразу перейти к мидлу с памятью. Swift — самый важный блок и, наверное, нужно было начинать с него. Любое изучение иос разработки на любом уровне должно начинаться с языка.

Скорее всего, это будет самый объемный блок.

Начал добавлять вопросы к собесам на Swift:
- Теория
- Практика
- Ресурсы
- Квизы

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

Весь контент с вопросами по памяти, UIKit и многопоточки тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
18
Добавление метода GroupBy в Sequence

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

Поэтому вот подборка всяких реализаций и вопросов:
- Group elements of an array by some property
- Swift’s Dictionary grouping and how underrated it is

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

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

Задача была прикольная, потому что:
1. Проявлял разные подходы и инструменты продуктовой аналитики. Собирал какие плюсы и минусы есть у сканеров. Как вообще они влияют на бизнес метрики
2. Пытался запроектировать универсальный модуль сканера, который бы использовался в разных продуктовых флоу.

Мне все больше начали нравятся продуктовые задачи, тк в них есть много понимания «а точно ли это нужно кому-то»
132
21 пара по сложности алгоритмам

Нашел какой-то дикий по объему материал про сложности алгоритмов. 21 пара по полтора часа. Нет ни одного похожего по объемам и после просмотра этих лекций можно стать экспертом по алгосам. Теориком*

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

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

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

Доступ все там же
14
какой порядок принтов будет?

ответ разобрали уже в чате
🚘🚘 Анонс первого созвона сообщества «я потерялся. Как расти инженером?»

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

Есть множество проблем:
🟢у новичков переизбыток материалов. Каждый кричит разную информацию и делится своими источниками. В этом легко запутаться и тяжело структурировать. А многие материалы ошибочны
🟡у мидлов не всегда хватает коллег для знаний и постоянные сомнения в правоте. А сеньоры не всегда есть в команде, а если есть, то непонятны или занятые
🟣сеньоры же страдают отсутствием доверия ко всему. Они вечно спорят с другими сеньорами, не доверяют многим источникам и видят неточности

Разберем множество открытых вопросов и попробуем сформировать советы, ресурсы и практики, которые улучшат качество развития

🌿Дата: 03.03.2024 в 11:00 по мск
Please open Telegram to view this post
VIEW IN TELEGRAM
2832
че выведется в консоли?
Какой инструмент или опыт вам не хватает для разработки под iOS?

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

Например, библиотека для краски кнопок, архитектура, сниферы, достойную альтернативу XCode 🤡, кодогенерации? DI, Network, DSL и многое то, что я мог упустить.

Поделитесь в комментариях от чего у вас горит жопа или наоборот вызывает кайф. На какую либу или технологию стоит обратить внимание
Please open Telegram to view this post
VIEW IN TELEGRAM
GCD: Основная и глобальная очереди, Async vs Sync, обновление UI, частые ошибки

По следам прошлых задач набросал в ноушене разбор, решения + причины.

Также дописал связав с прошлыми статьями:
- Что такое очереди
- Обновление UI
- Исправление частых ошибок

Доступ все там же
93