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
🧬 Вопросы для собеседований: 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
Как сделать потокобезопасный массив очень частая задача что в жизни, что в собесах.

Меня как-то попросили его написать и я сделал нечто подобное как на первом скрине.

Пишите комменты что бы изменили и добавили

Часто вижу варианты как на второй картинке, но мне кажутся они избыточны

Покидайте свои примеры
9
Главные советы за 12 лет в Google

Интересный пост от инженера, который дает крутые советы после 12 лет в гугле. Они помогают не только в MAANG, но и задают правильное направление в жизни. Пост очень полезный и является настольной книгой и мантрой.

🟣1. Обучайтесь всегда.

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

🟣2. Пользователь всегда прав.

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

🟣3. Умейте сотрудничать.

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

🟣4. Просто начните. Лучше исправить, чем ничего не делать

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

🟣5. Вдохновляйте.

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

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

🟣6. Смотрите шире!

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

🟣7. Сосредоточьтесь на том, что вы можете контролировать

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

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

🟣8. Общайтесь доступным языком

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

🟣9. Стройте мосты, не бункеры

В сегодняшнем сложном и взаимосвязанном мире наиболее эффективная работа происходит на стыках дисциплин, команд и перспектив.

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

🟣10. Заботьтесь о себе

Чтобы показывать высокие результаты, помимо технических навыков, необходимо заботиться о себе. Находите время для отдыха, перезарядки и занятий своим хобби. Создайте вокруг себя окружение из людей, которые поддержат вас в трудные моменты: менторы, друзья, семья, коллеги.
Please open Telegram to view this post
VIEW IN TELEGRAM
106
Ну че, учавствуем в конкурсе?

прошлый раз мы взяли призовое

https://t.iss.one/iosmakesmehate/802
11
🧬 Вопросы на собеседованиях: Реактивное программирование | RxSwift ч. 1

Я хейтер RxSwift. Мне не нравится реактивное программирование, но от него никуда не убежишь. Сейчас я, слава всем богам, не юзаю её. Но ее не перестают спрашивать на многих проектах Сбера, БКС, Звука, БериЗаряд и многих других.

Если ты претендуешь на сеньора и выше, то должен знать тот стэк, который используется у них.

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

В этом сборнике я собрал вопросы:
🟣Почему RxSwift хорошо ложится на MVVM?
🟣Какие плюсы мы получаем в проекте от RxSwift?
🟣В чем разница горячих и холодных обсерверов?
🟣В чем главные концепции реактивного программирования?
🟣И еще 15 частых вопросов, которыми меня душили

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

Видео, как защита от андроид-фанатов KMP. Причем от одного из самых авторитетных андроидеров и кмпшников. Есть еще вторая часть (но мы ее смотреть не будем). Там говорится чем же крут КМП.

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

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

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

1. Начните прямо сейчас. Если вы собрались участвовать, то возьмите отпуск и не тяните. Прошлый раз мы делали это все после работы и спустя почти неделю. За упущенное время мы могли бы сделать в разы лучше

2. Никто не оценивает ваш код. Как вы могли бы заметить по коду, то в этом конкурсе никто не оценивает ваши паттерны, сложности алгоритмов, нейминги, архитектуры и тп. Мы, по корпоративной иннерции, думали это важно. Но нет. Забудьте опыт бигтехов и корпораций, тут он может даже вам навредить.

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

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

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

Еще один ролик на ютуб. Внезапно через час я дропаю в публичный доступ.

На этот раз его проведет разработчик из яндекса, где покажет как примерно проходят собесы.

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

🧬 Вступайте хотите получить доступ к остальным закрытым видосам

А если хотите провести/пройти — пишите мне в лс @lvbond
Please open Telegram to view this post
VIEW IN TELEGRAM
102