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
🛸 Паттерны навигации: Роутер vs Координатор

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

Главное же отличие такое: Роутер отвечает за вызов из одного экрана, а координатор управляет потоком экранов.

У координатора обычно есть набор дочерних экранов, где мы можем легко изменять порядок, добавлять или удалять экраны. При использовании координатора, роутер помогает закрывать и показывать ViewController'ы. Роутер не знает какой контроллер показывать, ему об этом сообщает координатор.

Когда использовать координатор:
- Когда хотим отделить знание экранов о друг друге.
- Хотим управлять последовательностью экранов

Доп. ссылки:
- Coordinator Pattern
- Router
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
18
Обновление ноушена и комьюнити за неделю

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

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

За эту неделю мы сделали:
🔘Вопросы по собесам для мидлов по памяти часть 1
🔘Вопросы по собесам для джунов по SwiftUI часть 1
🔘Выделили лучшие идеи для программистов-прагматиков
🔘Написали статьи про модификаторы и навигацию в SwiftUI
🔘Выбрали тему для очередного созвона
🔘В чате попытались перейти на темы, но откатили. А также поговорили про черные списки, как будущие коллеги собирают про нас фидбэк, про цифровые следы в интернете и о многом другом.

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

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

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

Восемь лет назад, когда я был еще фуллстэк разрабом и хотел перейти в мобилку, мне кричали что она умрет. Есть перспективная технология React Native, которая похоронит всех мобильщиков и фронты будут писать для мобилки на джаваскрипте. Есть PWA приложения, которые работают не хуже, Есть офигенный вебвью, который ведь даже чем-то лучше.

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

Я с ними согласен и поэтому перехожу на андроид. Шутка. Но если серьезно такая риторика повторяется каждые пару лет и эту лодку пытаются шатать все. Одна кроссплатформа вымирает и приходит другая. PWA, BDUI и вебвью вот вот придут, но эффект как в том зацикленном меме с грузовиком, который вот вот въедет в столб. А айфоны это также для людей у кого есть понты, даже если эти люди платят зарплату и владеют бизнесом.

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

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

Поверю ли я, что мобильная разработка умрет? Никогда. А те, кто так считает, просто теряют самую платежеспособную аудиторию. А кто пытается заменить натив на гибрид просто не понимает, что юзеру понятней и доступней нативная мобильная платформа, чем инородный вебвью или мобильная версия. Потеря места на рынке равно отдать свой бизнес бесплатно конкурентам. А на это место обязательно придет кто-то новый. Но это совсем другая история.
3184
💎 Вопросы для собеседований UIKit | Junior часть 2

Начал работать над второй часть вопросов для собеседований.

В ней хочу пройтись по:
🔘Методам жизненного цикла UIView
🔘Управление жестами: UIResponder, UIGestureRecognizer
🔘Анимации
🔘Внутренности UIWindow

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

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

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

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

🔘 Прокачивать эстетический интеллект. Об этом есть отличная книга, которую я упонял раньше. Мы работаем с премиум девайсами, а чаще какой-нибудь бюджетный айфон SE выглядят желанней, чем какой-нибудь ксяоми с ценой х2.

Даже ведя канал очень много для меня значит дизайн. Он не должен быть избыточно кричащим. Хороший и дорогой дизайн — сдержан и малословен.

🔘Ценить свое внимание. Наблюдая за некоторыми меркантильными сообществами я вижу главную проблему. Они хотят денег, но не знают что купят на них. Поэтому их формат и философия, за много лет существования, не обрела форму. Они вечно наполняют себя разными темами для бесед, отвлекаются на разные сходки и говорят обо всем, но ни о чем. Спам и флуд засоряют эфир, а сотни чатов уводят от акцентов.

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

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

🔘Стратегия Simple life. Все три принципа очень похожи и кажется, что говорят про одно: сдержанности, емкости и простоте. О каком месте в этой жизни ты можешь говорить, если вечно меняешь его? Прям как наши любимые айфоны. Но стратегия простой жизни не говорит о лени, она говорит о приоритетах. Как не нужно переполнять себя ненужными делами и отдавать себя немногим, но важным делам. Это отлично формулирует книга "Эссенциализм: путь к простоте"

Вся эта подводка для анонса небольшого редизайна канала и ноушена, который будет отражать мои принципы. А вы можете поделиться крутыми дизайнерами.
Please open Telegram to view this post
VIEW IN TELEGRAM
153
Мок-собес сеньора из бигтеха по System Design

Недавно меня спрашивали какие задачи могут встретиться на собесах по архитектуре. Это очень странно, ведь я писал про них в разделе system design. Потом я понял, что многие думают, что system design — это что-то про бэкенд. Хотя это большое заблуждение.

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

Прикладываю отличный мок-собес, где за час пытаются запроектировать ленту новостей Фейсбука* (запрещен). Тут, при необходимости, можно детализировать и архитектуры, паттерны, бэк, хранилище, многопоточку и многое другое.

Основные критерии:
🔘 Разработка должна быть иттеративной
🔘 Бесконечная лента
🔘 Откуда приходят данные (сервер или кэш)?
🔘 Какой тип данных бывает: текст, изображения, видео и тп?

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

🌺Больше задач по проектированию писал в ноушене
Please open Telegram to view this post
VIEW IN TELEGRAM
9
Forwarded from КиберТопор
This media is not supported in your browser
VIEW IN TELEGRAM
Vision Pro может полностью поменять сферу образования.

Так выглядит визуализация изучения работы сердца в очках от Apple.

Приложение называется Insight Heart.

🕹КиберТопор
195
💎 Советы навигации для SwiftUI от Apple разработчиков

Хорошее приложение должно иметь хорошую навигацию. Поэтому до iOS 16 многие приложения на SwiftUI не назовешь хорошими.

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

Начиная же с iOS 16 разрабы сжалились и дали работягам NavigationStack, который упрощает работу. В этом WWDC разрабы попытались показать все плюсы нового API. Насколько оно реальное в больших проектах — решайте сами.

🌄 Еще больше обязательных секций WWDC тут
Please open Telegram to view this post
VIEW IN TELEGRAM
64
💎 SwiftUI: Примеры навигаций с NavigationStack

В ноушене вышла новая статья про навигацию с помощью NavigationStack, который вышел вместе с iOS 16

В ней попытался разобрать:
🔘проблемы прошлых подходов
🔘 какие проблемы решили с релизом нового API
🔘как сделать Coordinator с помощью NavigationStack

💎 Статью можно почитать на бусти
Please open Telegram to view this post
VIEW IN TELEGRAM
5
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