iOS Broadcast
3.32K subscribers
1.71K photos
85 videos
976 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
💤 Zed - твой редактор завтрашнего дня
Рубрика рассуждения. Мы с вами переживаем не только LLM революцию но и ренессанс редакторов кода.
Открытие месяца - Zed, он заменил мне все кейсы использования Sublime Text и Merge.
🟢🐥 Поддержка Swift
🟢Молниеносно быстрая работа, мгновенный холодный старт и не требовательность к ресурсам
🟢Если сравнивать с Xcode, что угодно лучше Xcode, но без него все равно не обойтись
🟢Удобная работа с Git из коробки
🟢Уникальная интеграция с AI-ассистентами, даже с Claude
🟢Сниппеты кода
🟢Режим совместного редактирования, очень круто для парного программирования
🟢Полный рендеринг Markdown из коробки
🟢Обширная библиотека расширений - 513 на сегодня
🟢Недавно влили дебаггер (да, он с открытыми исходниками на Rust, должны же быть минусы)

AI ассистенты меняют подход к работе с исходниками, привычные принципы, на которых строились современные IDE на рассвете высокоуровневых языков программирования, постепенно уступают место вайб-кодингу. Разработчики все больше полагаются на искусственный интеллект для выполнения повседневных задач и IDE в современном их виде не достаточно гибкие чтобы успевать адаптироваться. Очень интересно как будет выглядеть setup разработчика через 3-5 лет. Как думаете, останутся ли редакторы и IDE в современном представлении или мы перейдем к чему-то совсем другому? Я уже стал чаще использовать для автоматизаций не привычный Swift а Python, т.к. с ним лучше справляется AI, а значит и мы с AI можем сделать задачу быстрее.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5
📁 Использование Proxyman для перехвата сетевых запросов приложений
Проксирование трафика это обязательная часть разработки мобильного приложения. У каждого есть свой любимый мультитул для проксирования, сам я использовал Charles, а последнее время полностью перешел на Proxyman. В статье как раз на примерах показывается как его настроить и использовать.Proxyman — инструмент для перехвата и имитации сетевых запросов. Его можно использовать для мокирования различных сценариев, тестирования API, подмены ответов и многого другого. В статье рассматривается как раз настройка и использование этого инструмента:
🔵Установка и настройка Proxyman
🔵Захват сетевых запросов
🔵Proxyman не классифицирует запросы по приложениям, а по доменам.
🔵Моделирование данных (Имитационные данные)
🔵Поддержка отображения протокольных буферов и двоичных данных.
🔵Возможность моделирования различных сетевых условий и конфигураций сервера.
🔵Функции отладки сетевых точек останова, пользовательские сценарии, автоматическая генерация кода и механизм редактирования и повтора.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
Улучшите архитектуру Вашего Кода с помощью принципов SOLID (с примерами Swift)
Начинаем неделю с моей любимой рубрики, статья от подписчика Maxim Egorov. Тема статьи никогда не устареет, понимание применения SOLID принципов поможет вам улучшить ваш код. SOLID помогает писать чистый, масштабируемый и поддерживаемый код. Следование принципам уменьшает зависимости, повышает гибкость и упрощает расширение и тестирование.
⌨️ Принцип единой ответственности. Каждый объект должен выполнять только одну задачу и иметь только одну причину для изменения
⌨️ Принцип открытия/закрытия. Код должен быть открыт для расширения, но закрыт для модификации
⌨️ Принцип замещения - Лисков. Подклассы должны заменять родительский класс без изменения логики программы
⌨️ Принцип разделения интерфейсов. Классы не должны принуждаться к реализации методов, которые им не нужны
⌨️ Принцип инверсии зависимостей. Модули высокого уровня не должны зависеть от модулей низкого уровня

Выводы
🔵Применение принципов SOLID делает код стабильным, адаптируемым и устойчивым к сложности
🔵SOLID помогает предотвратить хаос в проектах
🔵Улучшает организацию, поддержку, тестирование и расширение кода
🔵SOLID помогает создавать масштабируемые и гибкие архитектуры
#solid
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
🔨 CryptoKit. Криптография с открытым ключом
Базовое понимание принципов криптографии помогает понять как работает защита информации, как совершаются атаки и что такое доверительные цепочки. Проще всего разобраться в теории с примерами и данная статья как раз про это. Криптография с открытым ключом основана на паре связанных ключей: открытый и закрытый. Открытый ключ используется для шифрования, закрытый — для расшифровки. Получение закрытого ключа из открытого невозможно с точки зрения вычислений.
Варианты использования криптографии с открытым ключом:
🟣Шифрование: открытые ключи используются для безопасного обмена ключами с симметричным шифрованием.
🟣Цифровые подписи: подтверждают подлинность сообщения, хэшируя его и шифруя с помощью закрытого ключа.

Алгоритмы с открытым ключом, поддерживаемые CryptoKit:
🟡P256/P384/P521 (NIST curves) — стандартизированы и соответствуют государственным стандартам безопасности.
🟡Curve25519 — более эффективна и устойчива к атакам, рекомендуется для современных применений.
#CryptoKit
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️🧑‍💻⚡️ Объявлены даты #WWDC25
В этом году WWDC пройдёт с 9 по 13 июня, начало в 20:00 GMT+3. Анимация как всегда содержит намек, похоже, утечки про редизайн в стиле VisionOS были правдивы

📹 AppleDeveloper - трансляция так же будет на ютубе
🈸 Apple Developer - приложение с дополнительным контентом и трансляциями

🗓 Добавить в календарь WWDC чтобы не забыть
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🐥 Под капотом асинхронных функций. Как работает Swift Concurrency
Swift Concurrency становится неотъемлемой частью iOS-приложений. Но сессии WWDC часто оставляют вопросы о деталях реализации без ответов. Статья поможет понять, как работает параллелизм Swift

Асинхронные функции
🔵Асинхронный контекст означает, что функция находится внутри асинхронной функции или замыкания
🔵Синхронный контекст по умолчанию, большая часть кода выполняется в нем
🔵Для переключения на асинхронный контекст используются неструктурированные параллельные задачи

Async → await
🔵Ожидание позволяет писать асинхронный код в более последовательном виде
🔵Ожидание освобождает поток для других задач
🔵Продолжение хранит состояние выполнения асинхронной функции

Tasks
🔵Задачи выполняют асинхронные функции, как потоки выполняют синхронные
🔵Задачи могут быть созданы явно или неявно
🔵Задачи могут находиться в трех состояниях: приостановленный, запущенный, планируемый

Jobs
🔵Работы происходят между точками приостановки в рамках задачи.
🔵Каждое асинхронное задание состоит из трех частей: перед работой, ожидание асинхронной работы, после работы
🔵Асинхронная работа разбивает функции на синхронные блоки, каждый из которых представляет собой асинхронную работу
🔵Задания создаются во время выполнения, но их структура определяется при компиляции
🔵Задания выполняются последовательно, с возможностью приостановки

Actors
🔵Акторы изолируют вызовы асинхронных функций, позволяя безопасно делиться состоянием с другими задачами
🔵Акторы обеспечивают потокобезопасный доступ к изменяемому состоянию
🔵Исполнители управляют приоритетами работы и организуют потоки для выполнения заданий

Executors
🔵Swift не предоставляет явный планировщик, но среда выполнения неявно ставит задания в очередь к исполнителям
🔵Контекст выполнения определяет, какой исполнитель должен выполнять задание
🔵Фактическая точка приостановки возникает при переключении контекстов выполнения

Совместный пул потоков (CTP)
🔵CTP ограничивает количество потоков количеством ядер процессора, что предотвращает перегрузку ресурсов
🔵Основной поток обрабатывает обновления пользовательского интерфейса и может быть переведен в спящий режим при отсутствии работы

Параллелизм Swift устраняет проблемы с обратным вызовом и предлагает более понятный синтаксис. Для полного понимания параллелизма в Swift требуется время и практика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2