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
🌄 Подборка обязательных видосов WWDC за все время

Ролики WWDC очень информативные. В них тонны ценой инфы. Но далеко не у всех есть время их смотреть, а еще важно обсудить и понять. Часто бывает, что одного просмотра мало и непонятно.

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

Получить доступ можно тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
147
🟦 SwiftUI: Объяснение разницы State, StateObject EnvironmentObject, ObservedObject

Одна из самых запутанных тем для новичков в теме property wrappers.

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

SwiftUI дает нам несколько способов хранения состояний, но важно понимать их отличия:

State — это propperty wrapper, для управления простыми типами значений, такими как Int, String, Bool и т. д.,они изменяемые и обновляют вью при изменении значений.

🔵StateObject — юзается для хранения сложных локальных объектов.

🔴ObservedObject — юзается для хранения сложных локальных объектов, переданных извне.

🟠 EnvironmentObject используется когда у нас модель распределена во многих местах. Аналог DI.

Еще больше отличий написал в ноушене. А также добавил статьи про жизненный цикл SwiftUI.

Также там внес поправки с учетом iOS 17
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
232
Новый инструмент в AppMetrica: Предикты lifetime value и оттока

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

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

Потестить можно бесплатно
5
Делаем проект вместе на SwiftUI

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

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

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

📕 Если хочешь хорошо играть в теннис, то тебе нужна хорошая команда и опозиция. Тебе быстро надоест играть в игру с пятилетним ребенком. Я не хочу вести очередной канал, который делится чужими статьями. Я хочу создать что-то большее. В нашем сообществе уже больше 200 человек и чат является главным генератором идей. Каждый день там сотни полезных сообщений и обуждений. И уж лучше быть в первых рядах, чем на задней парте.

Этот проект одна из песочниц. Где снова я придумал нам полезное занятие на выходные в легкой и игровой форме.

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

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

В рамках этого проекта мы попробуем сделать все на SUI:
1️⃣ VIPER, TCA, MVI
2️⃣ Напишем свои архитектурные паттерны
3️⃣ Сделаем метрики для перфоманса
4️⃣ Слои для нетворка и кжширования
5️⃣ Сложные анимации, метал и шейдеры
6️⃣ Подготовка инфраструктуры
7️⃣ Тесты
8️⃣ DI

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

Так этот опыт похож на реальную практику, мы делимся знания, экспериментируем и даем комменты по коду.

Вступить к нам ты можешь тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
191
This media is not supported in your browser
VIEW IN TELEGRAM
С праздником милых дам 🌷

Пусть моя аудитория на 90% мужская, но этот весенний праздник праздную как свой 🤣

Пусть у вас будет быстрый билд. Всегда последняя модель девайса. Четкий тимейт в семье.
Please open Telegram to view this post
VIEW IN TELEGRAM
34
💎 Обновление ноушена и комьюнити за неделю

Традиционный пятничный бриф что изменилось за неделю.

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

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

Моя функция — поддерживать и менеджерить эффективное комьюнити. Слушать потребности аудитории, но при этом не затыкать свое Я.

Вкратце апдейты:
🟣 Провели первый созвон комьюнити. Выложил запись, материала и презу
🟣 Обновил задачи и ресурсы для алгоритмов
🟣 Как и зачем проводят собесы в Яндексе
🟣 Подборка задач от Яндекса на литкоде
🟣 Конспект тренировки по алгоритмам и разбор задач
🟣 Статья по system design: сбор требований
🟣 вопросы с собеседований: диспетчеризацияч
🟣 подборка обязательных секций WWDC
🟣 статьи про SwiftUI
🟣 делаем пет-проект на SwiftUI вместе

Полный чейнджлог на картинке.

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

Вступить можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
83
☝️ Сравнение архитектур в SwiftUI

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

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

Мой выбор метается между Clean, MVI, TCA и Redux. Но даже выбрав стартовую, я опишу еще дополнительные. Все же это исследование.

Дополнительные подборки:
- Clean Architecture for SwiftUI
- Best architectures for SwiftUI
- SwiftUI Architecture and Best Practices

🦄 больше обсуждений по SwiftUI тут
Please open Telegram to view this post
VIEW IN TELEGRAM
12
💎 Вопросы для собесов: Память | уровень Middle ч.1

Начал наконец работать над методичкой по памяти. Собрал ~20 вопросов и планирую дойти до 40. Также будет десяток задачи и пару десятков ресурсов для закрепления. Тема памяти очень любимая в комьюнити и копать в нее можно до бесконечности.

Здесь я попытаюсь разобрать самое важное:
🟣Что такое HeapObject
🟣Когда создается SideTable и как работает с ссылками
🟣Сколько бывает счетчиков ссылок
🟣Что такое Memory Layout и как его считать
🟣Жизненный цикл объектов
🟣Memory Safety
🟣Что такое isa pointer?
🟢Многое другое

По традиции заполняется ориентировочно неделю с активными комментариями в чате.

🌿 Этот и другие сборники можно найти тут
Please open Telegram to view this post
VIEW IN TELEGRAM
11
This media is not supported in your browser
VIEW IN TELEGRAM
Ответ на главный вопрос почему дизайнеры забивают на андроид
115
Самые частые ошибки при обучении

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

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

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

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

🔘 1. Зацикливаться на одном навыке. Частая проблема всех — это не знать когда остановиться. Что у джунов, что у сеньоров есть одна проблема. Начинающие изучают язык, но не переходят в UIKit. Поэтому они могут отсортировать массив, но не знают как сверстать кнопку со списком из этого массива.

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

🔘 2. Мало программировать. Почему-то этим страдают чаще публичные личности или новички. Когда многие путают эрудицию и реальные скиллы.

Программиста отличает навык программирования. Здесь и помогают алгоритмы, проектирование, тестирование.

Знание статей, пересказ документации, выступление с докладами, запись видео на ютубе или чтение чатов не дает навык писать код.

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

🔘 3. Ждать помощи и бездействовать. Самостоятельность — главная переменная в уравнении самообучения. Большинство разработчиков ждут, когда за них найдут информацию или сделают задачу. Это их парализует и останавливает. В этой гонке это критично.

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

🔘 4. Плохо коммуницировать. Главный навык после программирования — это эффективное общение. А зачастую даже главнее. Ты можешь быть отличным программистом, но непонятным или токсичным.

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

🔘 5. Критиковать и не предлагать. Критика без предложений никогда не сработает. В 90% компаний фраза на собесе "эта задача никогда не будет на практике. зачем вы мне ее задаете?" будет критической и красным флагом.

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

🧬 Еще больше культуры практикующих инженеров в нашем сообществе
Please open Telegram to view this post
VIEW IN TELEGRAM
1551
Как создавать большие приложения с SwiftUI: Гайд по модульной архитектуре

В чате скинули крутеший материал с разбором всех самых животрепещущих вопросов крупных компаний.

В блоге разбирается:
🔴 Модульная архитектура
🔴 Проблемы MVVM в SwiftUI
🔴 Разбор MV(x) паттернов
🔴 Навигацию
🔴Тестирование
🔴Многое другое

Когда искал серебро, а нашел золото
Please open Telegram to view this post
VIEW IN TELEGRAM
12
🧬 Архитектуры SwiftUI: MVI

В нашем пет-проекте мы почти определились с базовой архитектурой. Я уже создал в проекте первый мерджреквест с MVI архитектурой, написал статью и пролил кровь. Почему она?

UDF архитектуры главный тренд последних лет. Чем она так интересна?
🔘Декларативность и реактивность органично смотрится
🔘Однонаправленость очень удобна для понимания и работы
🔘Новенькая в мире иос
🔘Перспективная и крутая
🔘Хорошо показала себя в web и андроид

Некоторые экраны будут на VIPER, TCA. Так мы на практике тоже их попробуем.

Следующие разборы кодом будут про DI и навигацию.

🟣 Изучить вместе и накидать комменты можете здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
10
Дефицит усидчивости, переизбыток дофамина и барыги сдвг

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

Соц.сети нас обманывают. Телеграм, ютуб и инста и тп — это маркетплейсы дешевых эмоций. Целевая аудитория этих инструментов для продаж — люди, кто не умеет долго сосредотачиваться.

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

Это идеальная аудитория для инфобарыг, которые подсаживают на наркоту. Курицы, с золотыми яйцами на маркетплейсах борьбы за внимание. Они обещают быстрые пути, показывают свою успешную успешность. Мозг жертв дофаминной передозировки принимает только самые понятные материи: бабки, квартиры, вещи. Барыги это понимают и еще больше их подпитывают

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

Что помогает? Учеба. Спорт. Шахматы. Алгоритмы. Людям, с сдвг, сложно решать задачи, которые требуют глубокого погружения. Мы все страдаем этим. Так работает наш быстрый мозг, который не хочет сложности и подменяет понятие лени меркантильностью. Бездумно выбирая легкие пути ты делаешь сделку с дьяволом, который забирает очки защиты у твоей системы внимания. Принимаешь рабство.

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

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

Сейчас в ноушене уже доступно больше 100 вопросов, 50 задач и ресурсов:

🔘Вопросы для собеседований: Многопоточка | Junior ч. 1
🔘Вопросы для собеседований: Память (Junior) ч. 1
🔘Вопросы на собеседованиях: Swift | Junior ч. 1
🔘Вопросы на собеседованиях: UIKit | Junior ч. 1
🔘Вопросы для собесов: Память | уровень Middle ч. 1
🔘Вопросы для собеседований | Диспетчеризация | ч. 1

🔘Частые алгоритмические задачи
🔘Задачи на собеседовании System Design

Цель — создать самый детализированный сборник вопросов и ответов для прохождения и проведения собесов.

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

🖥 Получить сборник можно здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
13