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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
📱 Знакомимся с подходами к паттернами коммуникации в SwiftUI
SwiftUI предоставляет мощный и декларативный способ создания пользовательских интерфейсов, но управление взаимодействием между разными View может показаться сложной задачей для тех кто только вкатывается в SwiftUI. В статье рассматривается практический сценарий: список с добавлением нового элемента. Сравниваются 3 подхода:
🟢Closure
🟢@Binding
🟢@Environment
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Forwarded from Android Broadcast
"Как из Леруа Мерлен сделали Лемана Про" (13м) - история ребрендинга приложения о том как меняли, цвета, строки, работу с Deep Link и другие части Android и iOS приложений

#compose #uikit #android #ios #swiftui
👍4
Придание глубины значкам вашего приложения
Не совсем про разработку, но точно полезно для расширения кругозора iOS разработчика:
🟢Иконки являются первой точкой соприкосновения между пользователем и интерфейсом приложения
🟢Значки приложений прошли путь от скевоморфизма до плоского дизайна и обратно к трехмерным элементам
🟢Добавление глубины значку достигается с помощью внутренних теней, отбрасываемых теней и текстур
🟢Экспериментирование с различными режимами наложения и текстурами поможет найти оптимальный процесс рендеринга для вашего стиля и уровня реализма

Главный вопрос, возникший у меня после прочтения статьи: зачем мы ушли от скевоморфизма 😥
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2
🐥 Реализация интерактивного CLI ввода на Swift

Отличный пример использования фич языка для разработки утилит командной строки. По сути, это DSL вокруг PropetyWrapper для удобной обработки ввода в командной строке

🟢Метод readLine() из стандартной библиотеки Swift считывает входные данные из стандартного ввода
🟢PropertyWrapper добавляет уровень разделения между кодом, управляющим хранением свойства, и кодом, определяющим свойство
🟢Через PropertyWrapper задается свойство вопроса пользователю и позволяет сохранить его ответ
🟢PropertyWrapper могут быть использованы с анализатором аргументов для улучшения интерактивности
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Как отрендерить Markdown в SwiftUI

Оказывается, если передать Markdown в виде строки в SwiftUI элемент Text, он отрендерится корректно. Для меня это было сюрпризом, т.к. при попытке передать переменную в Text эта магия не срабатывала. Решается это передачей в виде аргумента не String, а AttributedString, с опицями AttributedString.MarkdownParsingOptions.
25👍1
🔨 Вычисление семантического расстояния между словами

Поиск семантического расстояния между словами классическая задача для задачи поиска или автокомплита. Я помню только самый простой алгоритм с через вычисление Расстояния Левенштейна, но в современном мире у нас появился новый фреймворк для работы с текстом - Natural Language framework. Зачем это может понадобиться в повседневной работе? Например, в вашем приложении есть список категорий, при поиске пользователь ожидает что вы ему предложите нужную категорию до того как он введет слово целиком, даже если допустит опечатку в процессе. В статье приводится другой пример, с поиском подходящего слова-синонима в словаре языка, что позволяет реализовывать автокомплит без доступа к набору вариантов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
⚠️ Обновление сертификата службы Push-уведомлений Apple

Не пропустите важную новость от Apple, центр сертификации для Apple Push Notification (APNs) меняется. APNs обновит сертификаты сервера в песочнице 20 января 2025 года, а на проде — 24 февраля 2025 года. Всем у кого есть пуши в приложениях, необходимо будет обновить хранилище, включив новый сертификат сервера: SHA-2 Root: сертификат центра сертификации USERTrust RSA.
Чтобы обеспечить плавный переход и избежать сбоев при доставке push-уведомлений, убедитесь, что как старые, так и новые сертификаты включены в хранилище доверенных сертификатов.
Сами сертификаты APNs SSL обновлять не требуется.

Если не поняли про что это, но у вас есть пуши, покажите эту новость вашим бек разработчикам. Если используете сторонний сервис для отправки пушей - они обновятся сами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🔨Набор инструментов для iOS разработчика
У каждого разработчика есть свои любимые инструменты, которыми мы часто забываем делиться с другими. Нам всегда кажется инструмент хорошо известным, сразу после того как мы его нашли. Автор статьи решил поделиться с нами своими инструментами:
🟢Генератор типов/моделей помогает автоматически генерировать типы/модели из JSON в Swift и другие языки
🟢Генератор Gitignore создает шаблон для файла .gitignore с базовой информацией для запуска проекта
🟢Генератор диаграмм - помогает преобразовывать слова в диаграммы для объяснения взаимодействия между объектами приложения
🟢Frameworks Availability Checker - средство проверки доступности фреймворков позволяет проверить доступность платформ Apple в зависимости от версии iOS
🟢Device Resolution Checker -предоставляет удобную таблицу с актуальными данными о разрешениях, масштабных коэффициентах и PPI устройств.
WTF Autolayout - расшифровка ошибок констрейнтов автолэйаута
Xcode Tips - содержат подсказки и шорткаты для более продуктивного использования Xcode.
Proxyman / Charles - Классика для управления HTTP/HTTPS запросами и ответами

Я для себя нашел пару новых, а вы? Пишите в комментарии те сервисы и инструменты, которыми пользуетесь в разработе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🐥 Акторы и Swift Concurrency - лучшие практики

Параллелизм - ключевая концепция современного программирования для создания адаптивных и высокопроизводительных приложений. Еще Swift 5.5 управление параллелизмом получило новые инструменты, но не все их научились применять в своих проектах. В статье автор разбирается в основах работы акторов и на примере рассматривает лучшие практики для работы с параллелизмом. В примере автор создает простое приложение для управления задачами, используя SwiftUI и акторы. Это приложение позволит пользователям управлять задачами, добавляя новые задачи, помечая их как выполненные и удаляя их. Управление состоянием задач осуществляется акторами. Рассматриваются примеры:
🟢Изоляции акторов
🟢Минимизации общих состояний
🟢Правильного использования main актора
🟢Реализации повторной входимости (начало обработки нового сообщения, ожидая завершения асинхронной операции)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥113👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🐥 Copy On Write и макрос Swift-CowBox
Надеюсь, вы уже знаете о концепции Copy On Write и задавались вопросом, что это значит. На первый взгляд это может показаться загадочным и даже абстрактным, и его трудно представить. После прочтения данной статьи вы точно поймете, что это значит, как реализовать Copy On Write в Swift, а также познакомитесь с замечательным макросом Swift, который переносит логику Copy On Write в ваш код. Структура статьи:
🟢Reference и Value типы данных
🟢Обратная сторона структур
🟢Copy On Write: лучшее из обоих миров
🟢CowBox макрос
🟢Бенчмаркинг и выводы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍31
This media is not supported in your browser
VIEW IN TELEGRAM
🔨 Как оценить Дизайн-систему в масштабе

Uber одним из первых внедрял дизайн систему и собрали за все время много шишек. Приложение запускает функции одновременно по всему миру, изменяя детали на сотнях экранов с помощью тысяч фича флагов... И сами признаются что ни дизайнеры, ни инженеры, ни QA, ни продакты не могут визуализировать каждый пользовательский сценарий. Uber нужна система мониторинга такого же масштаба для оценки качества дизайна, чтобы предотвратить ухудшение пользовательского опыта, особенно при внедрении доступности в существующих интерфейсах, разработанных в рамках базовой дизайн-системы Uber.
В статье ребята делятся своим опытом создания «Системы мониторинга дизайна»
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Создавайте потрясающие эффекты с помощью Metal и SwiftUI: Руководство по анимации частиц (🇺🇸 24 мин)
Это просто вау! Интересное повествание по созданию анимации с использованием SwiftUI и MetalKit:
🟢Анимация состоит из светящейся рамки, волны пульсации и облака частиц.
🟢Светящаяся рамка создается с использованием шейдерных эффектов SwiftUI.
🟢Волна пульсации основана на математической функции, которая определяет время и интенсивность пульсации.
🟢Облако частиц создается с использованием взаимодействия между UIKit и MetalKit.
🟢В статье также обсуждаются настройка данных о частицах и использование MTLComputePipelineState для рендеринга частиц.
🟢Интеграция средства визуализации в описание ParticleCloud включает анимацию прогресса и предварительную нормализацию точки касания.
🟢Изучение различных подходов к работе с шейдерами
🟢Оптимизация рендеринга частиц для повышения производительности

Я крайне советую полистать примеры кода и промежуточные этапы, редко получается рассказать про работу с Metal простым языком.
😺️ Исходники
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍4🔥1