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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Решение проблемы Data Races с Actors

Мы почти не затрагивали современные технологии. Ни SwiftUI, ни Swift Concurrency.

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

В статье автор разбирает решение проблемы гонки данных старыми и новыми техниками
👍6🍌1
Forwarded from iOS Dev
Обнаружение джейлбрейка iOS в 2023 году: необходимость, способы, примеры

🧑‍💻 Джейлбрейк — это использование эксплойта для повышения привилегий для снятия программных ограничений, наложенных Apple, среди которых:

1️⃣ Модификация операционной системы (обеспечивается «заблокированным загрузчиком»).

2️⃣ Установка неофициально одобренных приложений (известных как «твики») путем загрузки неопубликованных приложений с использованием менеджеров пакетов, таких как Cydia или Sileo.

3️⃣ Предоставление пользователю повышенных привилегий уровня администратора (рут-доступа).

Всё это может влиять на уровень безопасности приложений.

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

@iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3💯3🆒1
Превратности диспетчеризации в Swift

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

Помимо сообщений в статье есть другие интересные примеры с цепочной наследования и подписки на протоколы
👍6🍌41🐳1
С днем любви, валентины❤️

Любите иосников. Их становится все меньше
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20❤‍🔥6👍6
Паттерн Decorator для репозитория кэширования и инвалидации кэша.

Одна из практически полезных статей про паттерны и главный вопрос программирования.

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

Так еще это и проектировать с красотой.
👍9🍌2
Дефолтное значение для словарей

Мало кто знает, но очень удобная вещь для решение алгосов на литкоде.

Спасет тысячу нервов и один горящий зад
👍10🍌3🦄2🐳1
📝 Еще про алгосы

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

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

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

Если этот пост наберет десять тысяч лайков, то устроим решение задач на раздевание
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12.8K🍌41
Ладно

Предыдущий пост кто-то хакнул и захотел совместить приятное с полезным.

Если серьезно, то я пару раз думал создать что-то интересное. Например, мы созваниваемся раз в 2 недели на алгобаттл. Берём самые рандомные изи задачи и пару экспертов. Устраиваем батл между ними и публика оценивает. Проигравший показывает жопу выполняет желание публики.

Ну или предлагайте свой формат. Замутим тестовые созвоны
🦄7🍌4👍1🐳1
окей, гугл. а есть в мск не coffee and code, а beer and code в барах?

beer > coffee
💊16🐳4👍3
ну, короче, ищу желающих быть организаторами beer & code moscow 😬
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾12💊4🫡3
еще думаю в грузию в марте приехать. посоветуйте че там делать вообще кроме киндзмараули пить
Паттерн Decorator

lvl: mid

Когда вам задают вопрос про Open-Closed принцип, то говорите про паттерн декоратор. Extensions (расширения) в свифте не являются расширением функциональности и никак к принципу SOLID не относятся.

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

Мотивация
Когда нужно возложить дополнительные обязанности на отдельный объект, а не на класс в целом.

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

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

Одним из способов обойти эти проблемы является замена наследования агрегацией, либо композицией. Это когда один объект содержит ссылку на другой и делегирует ему работу, вместо того, чтобы самому наследовать его поведение. Как раз на этом принципе построен паттерн Декоратор.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2💊2
16 техник Фасилитации

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

Чем сложнее и больше компания, тем больше диалогов: согласовать дизайн; контракт; текст; задачу. Уточнить детали соседних сервисов и АПИшек. Супер много раз придется открывать рот, рисовать в миро схемы и писать в мессенджерах.
Кодинг может занимать процентов 30%. Остальное все подготовка требований и фиксации.

💳 Я пару раз уже приходил к фасилитации. Когда в сберздоровье был фичалидом сложной задачи с пин-кодом, в которой требовались больше аналитической и координирующей работы. Знания технических особенностей бэка и мобилок нужно было переформатировать в понятную для всех речь. Был таким медиатором между тех.экспертами и манагерами. Еще тогда столкнулся, как сложно вести диалоги между людьми разных ролей.

🛍 В авито таких активностей стало еще больше. Тут уже требуется экономить время и ресурсы всех участников бесед и коммуникаций. Фасилитация — один из главных инструментов. В авито даже есть внутренний курс за 80к. Когда-нибудь наберусь смелости выделить на него бабки, но а пока только книги и статьи. 😬💸
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5💊1
365 дней богу Алгоритмов: Отчет за шестую неделю

Всё, начинаю продавать занятия по алгосам. Шутка. Пока рано.

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

38. Проверка дубликатов. Изи задача из списков самых частых вопросов.

39. Группировка анаграм. Легкий медиум. Взял словарь и отсортировал по ключу самых частых

40. Инвертирование бинарного дерева. Легко через рекурсию.

41. Самые частые k-элементов. Думаю одна из самых практических медиум.

42. Произведение всех элементов кроме i-того. Медиум с третьей попытки, но вроде неплохо

43. Удаление элемента в массиве. Тут перерешил через свап

44. Дизайн HashSet. Сначала решил тупо через dictionary, а потом посмотрел как нормально сделать надо


#365_дней_богу_алгоритмов
👍7💊21