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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Forwarded from mobDev()
Ищем код, который не используется в приложении

Periphery — инструмент, который предназначен для определения неиспользуемого кода в проекте на Swift. Он строит собственный граф проекта и на его основе определяет декларации, на которые нет ссылок.

Материалы:
👉 GitHub проекта

#ios #swift
🔥11👍1
норм собес. не душный и лайтовый. очень понравилась структура и вайбовая атмосфера. могу даже сказать лучший на ютубе.

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

1. Легкий и доброжелательный собес без душнины — это хорошая атмосфера. Даже если кандидат не проходит, то ту энергию, которую он оставил на собесе он транслирует своему окружению. А если проходит, то гораздо больше энергии и мотивации останется дальше. Вероятность принятия им оффера повышается

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

3. Собес должен чекать актуальные технологии. Не стоит спрашивать про автолайут, если его нет на проекте. И также про obj-c. Это не сессия, где мерятся письками интервьюер и кандидат.

https://www.youtube.com/watch?v=a_z4U0RvQgQ
🔥11
Публичная сессия систем дизайна

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

Вот несколько критериев оценки:
- Как хорошо собирает требования?
- Как ищет риски и корнер-кейсы?
- Берет ли кандидат инициативу в своих руки?
- Как легко с ним коммуницировать? (чаще опционально)
👍9💊2
🚀 Результаты большого мобильного опроса: За кем из практикующих экспертов в iOS сообществе в России вы следите?

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

Меня можете не считать всерьез. Это просто потому, что я делал опрос в своем канале.

Вообще честно не стоит близко к сердцу воспринимать этот вопрос. Считаю много кого из разрабов упустили. Например, Витю из iOS Dev и его победах в тг конкурсах. Но самое время задуматься о public visibility
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥4
Forwarded from Polymorphic Blueprint (Aѕtɛmiɾ)
This media is not supported in your browser
VIEW IN TELEGRAM
#wwdc24 #swift

🔗 Consume noncopyable types in Swift

Одна из лучших сессий в этом году. К ней будут возвратятся снова и снова, а важность представленных изменений (во многом реализованных в Swift 5.9) довольно велика. Заложенные принципы и концепции фундаментальны и основополагающи для новых семантик, охватывающие эффектом домино все что есть (ибо те, кто поглядывает в текущие снепшоты Swift видят изменения даже базовых вещей).

При проектировании нового типа у вас уже есть контроль над тем, может ли кто-то глубоко копировать (deep copy) его значения. То, чего у вас нет контроля, это может ли Swift автоматически копировать его. Copyable — это новый протокол, который описывает способность типа быть автоматически скопированным. Как и Sendable, он не имеет требований к членам - или же является протоколом-маркером (marker protocol).

• По умолчанию, каждый тип инфериться как Copyable
• Каждый тип пытается автоматически конформить Copyable
• Каждый дженерик параметр автоматически требует, чтобы тип, который вы используете в качестве плейхолдер-типа, был Copyable
• Каждый протокол и ассоциированный тип автоматически требуют, чтобы конкретный тип конформил Copyable
• Каждый boxed тип протокола автоматически композится из Copyable

Но не все типы должны и могут быть копируемыми по умолчанию. Я уже писал несколько раз про некомируемые типы или ~Copyable протокол. Важность этого изменения сложно переоценить, а прочитать Ownership Manifesto будет полезно всем; Возможность копировать или некопировать тесно связана с концепцией владения (ownership). Разработчики Swift не сильно об этом задумывались, а многие до сих не знают, что у value types появился в Swift 5.9 c вводом некопируемых типов появился деинициализатор (SE-0390 Noncopyable structs and enums).

С вводом некопируемости value types и концепцией владения, мы получаем возможность не просто копировать, но и трансферить владение (ownership tranfer) таким типом, поглощать (consume) или одалживать (borrow). Это новые семантики управления владением.

🏛 Polymorphic Blueprint
Please open Telegram to view this post
VIEW IN TELEGRAM
9221
Как перевезти 250+ SPM модулей из динамики в статику и не сойти с ума

Продолжая тему модуляризации нельзя не затронуть тему линковки модулей.

Модуляризация не ограничивается вопросом "в какой модуль класть фичи, а в какой бизнес-логику?". Ведь помимо чистой структуры и ответственностей команд есть еще один её важный плюс. Это скорость запуска и оптимизация приложения за счет разделения модулей на динамические или статические библиотеки.

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

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