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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
▶️ Создаем расширение для Safari

У каждого iOS разработчика был момент, когда при создании нового проекта - листаешь что еще можно создать кроме Command Line Tool и iOS Application. Для браузера можно написать расширение с использованием всех нативных технологий, тут и Swift и SwiftUI и Swift Testing, главный минус только в работе HTML DOM. Вводное демо по созданию и публикации такого расширения показывали еще на WWDC22, но актуальность не потеряло. Если заинтересуетесь, более подробная инструкция есть у Apple:
🟢Добавление файлов скриптов для изменения содержимого веб-страницы
🟢Настройка значений списка свойств в приложении для работы с расширением Safari
🟢Создание и запуск приложения для тестирования расширения

Я лично еще раз убедился в том, что у меня в браузере не будет никаких расширений, слишком много у них доступа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
▶️ Зачем нужны Mergeable Libraries

На мой взгляд, не достаточно замеченное сообществом нововведение, которое может значительно повлиять на наши приложения. На WWDC 2023 Apple анонсировала «объединяемые библиотеки»: динамические библиотеки с достаточным количеством метаданных, которые можно статически связать с приложениями.
Это перевернуло игру, теперь есть не только 2 плохих решений, но и компромиссное, хоть и не идеальное. В чем суть была проблема выбора статической или динамической линковки? Статическая линковка означает, что библиотека будет объединена с приложением при компиляции, а динамическая загружает библиотеку при запуске:
Статическая линковка позволяет проводить более глубокую оптимизацию как по размеру (удаляя не используемый приложением код библиотеки) так и по скорости (за счет понимания контекста использования вызовов)
Статическая линковка замедляет процесс сборки и при использовании одной зависимости в нескольких таргетах приводит к дублированию кода и увеличению фактического размера финального приложения
➡️По-этому большинство приложений подключает библиотеки, линкуя их динамически, теряя все преимущества статической линковки

И тут появляются Mergeable Libraries, это действительно новый формат, позволяющий динамически подключаться к ним или «объединять» их с приложениями, что по сути является статическим связыванием. Единственный оставшийся компромисс заключается в том, что библиотека остается динамической

Настоятельно рекомендую всем ознакомиться со статьей по миграции проекта на Mergable Libraries, это может значительно улучшить приложения без значительных усилий со стороны разработки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN 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