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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Forwarded from Код Воробья для iOS разработчиков
📺 🛠 Apple завела канал на YouTube для разработчиков

youtube.com/@AppleDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
13
AI и эмоциональный интеллект. Пора серьезно задумываться про эмоциональный ителлект

Время токсичных кодеров ушло. Еще лет 10 назад большинство разрабов думало, что могут быть Тони Старками, токсичить и делать все что угодно. Ведь кто их заменит? Хороший разраб это тот, кто код пишет. А задачи ставить и вести здоровые коммуникации это для обычных смертных.

В статье рассказывается как опросы Udemy показали, что AI вызвал всплеск интереса к курсам по мягким навыкам: активное слушание, работа с людьми, work-life баланс, командная работа.

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

Пора не только писать хорошо код, но и хорошо понимать своих коллег
104
Обход деревьев: поиск в глубину

Продолжаю разбор техник решения алгоритмов. Поговорим о деревьях.

Обход дерева, как и все обходы графов, делается двумя методами:
🟢в глубину (Depth-first)
🟢в ширину (Breadth-first)

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

Мы разберем обход в глубину (DFS). Разбор будет в слайдах выше.

💎 Полную статью с объяснением про деревья и разбором задач литкода можно найти в ноушене
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6
🧠 Паттерны проектирования: Proxy (Заместитель)

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

🧬 Когда это полезно?
Когда нужно легко добавить логику до или после основной функциональность обернутого объекта, не изменяя его. Отлично подходит для принципа Лисков и открытости-закрытости SOLID'а.

Пример:
Мы хотим создать сервис, который трекает время выполнения экшенов. Для этого создаем прокси-обертку, которая принимает необходимый класс и трекает его логику. Реализация в слайде.

💎 Больше статей, которые помогу писать поддерживаемый код в ноушене
Please open Telegram to view this post
VIEW IN TELEGRAM
10
💎 Релиз вопросов для собесов по UIKit | Джун ч2

Один из моих любимых сборников. В нем я прошелся по:
🟣Жизненный цикл UIView
🟣 Жизненный цикл AutoLayout
🟣Обработка жестов

Для подписчиков доступна интересная задача с тачами и жестами. Позже опубликую в канале.

🌿 Этот и другие сборники можно найти тут
🧬 Ознакомиться с другими сборниками тут
Please open Telegram to view this post
VIEW IN TELEGRAM
10
Обновление ноушена и комьюнити за неделю

Эта неделя была для меня горячей по работе, но я все равно старался наполнять контентом.

На этой недели мы:
🟣Немного ушли в философию
🟣Узнали про задачи для сеньоров по System Design
🟣Разобрались с навигацией в SwiftUI
🟣Обошли деревья в глубину
🟣Поговорили про патрен прокси
🟣В чате порасуждали про переходы в разные стэки, изучение в бэк, выгорание, завалы на работе, прохождение собесов и конечно же вилки.

Полный список изменений в картинке

🌸 Вступить в сообщество и получить доступ к закрытым материалам можно тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Обещанная задача на джуниора из ноушена на знание обработки тачей и жестов.

В ноушен добавил еще две.
2
О базах знаний и порядке


🔘Вы забудете этот пост через пять других. Как и все следующие. Как и все предыдущие.

Наша память ограничена. Сможешь вспомнить о чем я писал 10 постов назад? Даже я не вспомню.

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

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

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

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

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

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

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

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

Так создался симулятор иосника. Так создался мой ноушен, так я экспериментирую с обсидианом.

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

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

Почему? Прочитай сначала.
Please open Telegram to view this post
VIEW IN TELEGRAM
2231
💎 Задачи на рефакторинг ч. 1

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

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

Рекомендованный алгоритм по решению:
🔘Посмотреть код
🔘Найти проблему
🔘Попробовать решить самому
🔘Посмотреть ответ

🌄 Получить доступ можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
15
Делюсь простой задачкой с подборки про рефакторинг
4
День нелюбимой работы

Сегодня день ненавистной работы. День, когда люди посылают далеко и громко ту работу, которую ненавидят.

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

Для меня это целая церемония и ритуал еще с детства, когда мы с отцом могли поговорить по душам и расслабиться. Сегодня я был в ней.

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

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

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

Желаю всем любить свою работу.
39
Отличная новость от Jetbrains, которую все ожидали.

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

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-deprecated/
39219
Как использовать Runloop в iOS приложениях

Когда-то давно мы уже писали свой ранлуп. Но статей про него много не бывает.

RunLoop — это цикл, который помогает обрабатывать получение и обработку входящих событий в конкретном потоке. Для каждого потока есть свой ранлуп.

Какие проблемы решает ранлуп?
- Обработка задач и их выполнение
- Оптимизация задач

💎 Больше ресурсов про многопоточность тут
Please open Telegram to view this post
VIEW IN TELEGRAM
6
🛸 Потокобезопасность в iOS

В ноушене вышла большая статья про потокобезопасность.

Постарался собрать инфу по самым популярным и неочень вопросам:
🟣 Что это такое?
🟣 Как избежать?
🟣 В чем разница семафоров и мутексов
🟣 для чего нужны POSIX мутексы?
🟣Как работают акторы?
🟣Как сделать атормарные свойства?

А также многое другое с кодом и в конце вопросами для самопроверки.

💎 Получить доступ можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
103
🧬 Dependency Injection в современном мобильном приложении

Совсем недавно мы в ноушене написали про DI в SwiftUI и даже сделали свою собственную реализацию в тестовом проекте.

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

В них расматриваются:
- Практики внедрения зависимостей
- Разбор разных библиотек
- Как сделать приложение безопасным, стабильным и тестируемым

Статьи:
🟣Управление зависимостями в SwiftUI
🟣Сравнение библиотек

💎 Больше про DI тут
Please open Telegram to view this post
VIEW IN TELEGRAM
7