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
16
📺 Премьера первого видео на ютуб

Ну что, врата в ад открываются сегодня в 18:00 по мск.

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

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

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

Напоминаю, что еще есть другие выпуски и они пока в закрытом доступе:
🟣Систем-дизайн-воркшоп: Как проектировать телеграм
🟣Мок-собеседование с разработчиком из яндекса
🟣Мок-интервью по алгоритмам
🟣Мок-интервью по рефакторингу

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

🧬 Получить доступ к закрытым мок-собесам оформив подписки на бусти и в боте
Please open Telegram to view this post
VIEW IN TELEGRAM
11955
О конкуренции

Давно слышал о книге «От нуля к единице» и решил почитать. Понравился этот отрывок.

Отличная книга для выходных
12
😡 Никогда не начинайте задачу с верстки UI

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

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

Объясняю на пальцах почему этот подход неправильный и опасный. Мне нравится, как эту часть разобрали в книге "Mobile System Design":

1. Верстать UI сразу экран хорошая практика только когда вы делаете соло проект в стартапе, где не важен дизайн и конечный результат. В больших командах это не выйдет, так как в 99% множество кейсов не учтены дизайнерами и продактами

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

3. Сколько стоят компоненты для DesignKit. Часто дизайнеры обладают невероятной фантазией, которая может быть слишком сложна в разработке и избыточна для бизнеса. Обязанность UI разработчика подсветить сложность или неэффективность дизайна и предложить альтернативы, а не слепо доверять каждому слову и макету.

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

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

Ну и главный совет — скептично относиться к информации в интернетах. Особенно от людей с малым колличеством опыта в неподходящих для вас корпорациях или забросивших практику, агрессивно предлагающих свое менторство. Ищите окружение практиков, а не новичков. В чатах новичков часто много искажений из-за отсутствия критики и оценки от тех, кто имеет реальный опыт.
Please open Telegram to view this post
VIEW IN TELEGRAM
1443
Вы разраб с большим количеством опыта. У вас на руках офферы на одинаковую сумму во все компании.

От какой компании бы отказались впервую очередь?
Anonymous Poll
27%
Сбер
22%
VK
23%
Яндекс
10%
Т-банк
8%
Авито
5%
Озон
37%
Вайлберис
11%
Альфа
19%
МТС
20%
Все херня
1
Советы по прохождению алгоритмических собеседований

На моей практике около 300 проведенных собесов. Это не считая моков и работы с менти. Реальные собесы сильно отличаются от тестовых: совсем другой уровень напряжения и стресса; тайминги; требования и конкуренция.

В реальном бою больше всего я провел алгоритмические собесы. Есть две причины:
🟣Я сам хуже всего их прохожу
🟣В крупных компаниях алгоритмы могут проводить любые разрабы. Андроид или бэк разраб легко могут отсобесить иосера.

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

Давайте же разберемся что же оценивают на алгоритмических собеседованиях:

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

2. Поиск корнер-кейсов. Никто не дает вам полных условий. В каждой задаче есть специально не озвученных 3-4 кейса, которые кандидат должен сам найти. Если кандидат ждет идеально описанных условий и требований, то это плохой кандидат

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

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

5. Не спеши отдавать код. Твоя задача не отдать первое попавшееся решение. Нужно еще перепроверить. Все мы ошибаемся

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

7. Будь вежлив и дружелюбен. Помни, что тебя оценивают не только по хардам, но и софтам. Много случаев, когда разработчик начинал психовать и токсичить, когда встречался со сложной задачей. Тебя оценивают не просто как генератора хороших идей, но и коллегу в команду.
Please open Telegram to view this post
VIEW IN TELEGRAM
995
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Push уведомления: как создать кастомный пуш с видео, гифкой или фото

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

Как-то на одном собеседовании в банк меня спросили: "Умеет ли по умолчанию пуш уведомление открывать гифку, фото или проигрывать видео?"

Как раз для этого вопроса я подготовил статью. Узнаем:
🟣Что такое Rich Notifications
🟣Как создавать и настраивать кастомные пуши
🟣Как тестировать пуши

Записал даже видео туториалы

🧬 Получить доступ к статье можно через подписку в бусти или в боте
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Погружаемся глубже в CoW

Наверное, лучшая статья про Copy-On-Write.

В ней разбираются не просто очередные вопросы про стандартную работу и для чего нужен isKnownUniquelyReferenced, а более глубже:
🟣покопается в исходниках
🟣объяснит работу языка и компилятора
🟣дойдем до SIL и Swift Runtime

Изучайте быстрее, а то скоро начнут на собесах спрашивать, если уже не начали.

Ну а мы чуть позже сделаем расширенный разбор CoW в ноушене
Please open Telegram to view this post
VIEW IN TELEGRAM
13
🧬 Вопросы для собеседований: Push-уведомления

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

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

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

В этом блоке из ~20 вопросов мы соберем основные тезисы из двух моих последний статей
🟣Какие виды пуш-уведомлений существуют
🟣Что такое APNS
🟣Какие библиотеки бывают и как это все тестировать
🟣Как создавать кастомные пуши
🟣А также многое другое

Статьи тут:
🧬 Push уведомления: APNS, виды пушей, хитрости и гайд по настройке
🖥 Push уведомления: как создать кастомный пуш с видео, гифкой или фото

🧬 Получить доступ к вопросам можно через подписку в бусти или в боте
Please open Telegram to view this post
VIEW IN TELEGRAM
33
Как прокачать себя на поведенческом интервью

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

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

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

На то, чтобы объяснить своему менеджеру, что ты именно тот сотрудник, у тебя есть час. В статье очень хорошо расписан фреймворк как делиться правильно своим опытом
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Идеальное приложение

На днях я вернулся в Spotify. Сейчас расскажу о самом лучшем приложении на текущий момент. Как такие приложения влюбляют в себя и вдохновляют.

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

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

Я не могу и дня без музыки. Она задаёт ритм, настроение, успокаивает, вдохновляет, запечатывает воспоминания и создает саундтрек жизни. Долго искал приложение, которое будет отлично закрывать мою доебистость. Я сидел на Яндекс.музыке, ВК музыке и даже, просто господь, на сберзвуке. Ни одно приложение не справлялось лучше.

Разберем причины:
1. Качество приложения. На своем стареньком 11 pro почти каждое приложение накаляет мое терпение. Любой мини лаг или баг портит лояльность и UX. Но только не со спотифай.

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

2. Контент. Ты то, что ты ешь, слушаешь и читаешь. Сидя в Яндекс музыке или ВК музыке я будто питался отходами на мусорке, представляя себя обделенным человеком и смотря в соседнее окно, где лучшие люди хавают еду, а я их объедки.

Именно поэтому ютуб никогда не заменят рутюбы и ВК видео. Выигрывают те, у кого лучше контент.

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

Только качественная кухня, только высшая лига, только лучший контент.

3. Дизайн и UX. Каждое мое действие предугадывается. Я делаю минимальное действие и получаю лучшую услугу. Приятную, понятную.

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

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

Пока ничего лучше спотифай я не встречал. Делитесь своими любимым приложениями
128
Гайд по собеседованию iOS инженера в Google

Вчера у нас в чате был ажиотаж. Пришел сеньор разработчик (L5) из гугла. Реальный сеньор, что прошел отбор 5 алгособесов, а не контрактник через упрощенные собесы за жили были.

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

Рассказал о многих интересных вещах. Точнее мы заваливали его вопросами, а он отбивался. Было интересно. Вкратце о важном:
🟣сколько и каких задач надо обрешаться на литкоде чтобы пройти собесы
🟣В гугле не запускают Xcode. Все работает удаленно через облачные сервисы и веб IDE, а исходники запрещенно держать локально. Сборки 5 минут и ipa сразу подгружается в симулятор
🟣Много BDUI. Чаще это свой метаязык, где в некоторых проектах бан на Swift, а уж тем более на SwiftUI
🟣Все разработчики пишут не только для iOS, но также и бэк, фронт и другое.
🟣Всё свое. Свой git, свои собственные программы, которые надо изучать с нуля
🟣Спросили какое было собеседование и какие материалы посоветует
🟣узнали сколько часов в день работает и есть ли переработки

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

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

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

Вступить в чат можно тут c минимальной подпиской.
Please open Telegram to view this post
VIEW IN TELEGRAM
18
Проверка гипотезы производительности Swift Concurrency vs GCD

Многие разработчики делают внутренние эксперименты технологий, прежде чем запихать ее в проект. Проверяют как же она покажет себя на реальном проекте, в текущем окружении. Этот процесс называется апробация или тесты проводятся через tech design review.

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

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

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

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

Делали ли вы у себя разборы и тесты Swift Concurrency? Упрощало, ускоряло или наоборот разработку? Насколько был большой проект?
93
Media is too big
VIEW IN TELEGRAM
А об этой книге я уже писал и она есть в наших ресурсах

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

Объяснять почему тема перфоманса важна не стоит. В крупных компаниях всегда есть команды, которые следят за быстродействием приложения: как быстро он отрисовывает UI, насколько сильно загружается main thread, как быстро работают запросы в локальную бд и сеть и много другое.

Даже сейчас занимаюсь углубленным анализом перфоманса. Недавно столкнулся с неприятной проблемой фриза приложения. В таких проблемах часто бывает, что баг сложно найти и воспроизветси. У меня все ок, а у мажорных клиентов — фриз и приложение не отвечает. Особенно сложно, когда у тебя много миллионная аудитория и баг воспроизводится лишь у 1-2%. Эта проблема умножается в разы. Приходится придумывать сложные логеры и метрики, писать быстрый код и копать в кишки.

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

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

iOS App Performance Monitoring Best Practices. Базовая обзорная статья с верхнеуровневым объяснением про перфоманс

Подборка материалов iOS-Performance-Optimization. Хороший сборник материалов про оптимизацию: от управления размеров и памяти до практик крупных бигтехов

Check List: 25 Ways To Optimize iOS App Performance. 25 базовых советов как оптимизировать апку.

Ultimate application performance survival guide. Хорошая секция на WWDC, где даются советы по оптимизации.

Writing High-Performance Swift Code. Официальные советы по написанию высокопроизводительного кода
132
Пост (не) о подборке задач и решений сообщества

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

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

Эта подборка специально для тех, кто подписан на сообщество, но не читает чат. Мы собираем ее для вас.

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

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

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

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

Недавно я опубликовывал видео «для чего нужны универы». В меня сильно вонзились слова о создании платформы одноидейных людей с +- одинаковым IQ, подсмотрев слова одного препода. Мощного коллективного разума и краудсорсинг платформы.

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

Вступить в чат и стать частью целого можно тут за символичный членский взнос.

Ну или бесплатно, если ты уже вкладывал в общую культуру своими статьями, докладами, опенсоурсами или кто-то о тебе слышал много хорошего :)

Будем полезны друг другу.
92