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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🐥 Создание анимации печати Swift
Очень интересная реализация анимации печати текста. Логика, лежащая в основе анимации:
🟢Начинаем с пустой строки и постепенно раскрываем каждый символ
🟢Используем AttributedString для управления видимостью символов
🟢Рекурсивная функция с задержкой создает эффект набора текста
🟢Использование AttributeString вместо добавления каждого символа по одному помогает избежать проблем с версткой
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9👌5
📱 Знакомимся с подходами к паттернами коммуникации в 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