iOS Broadcast
3.31K subscribers
1.68K photos
82 videos
967 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
🐥 Swift и C++
Когда-то давно, на старте карьеры, я попал на проект с Objective-C++. Не просто ручной подсчет ссылок а полноценное управление аллокацией памяти. С менее понятным кодом с тех пор я не сталкивался. И вот, он вернулся, интероп с C++:
🔘Новая система взаимодействия позволяет использовать библиотеки C++ в Swift.
🔘Совместимость C++ и Swift упрощает создание кроссплатформенных инструментов.
🔘Логика C++ может быть повторно использована на различных платформах.
🔘Поддержка взаимодействия Swift с C++ сокращает дублирование кода и ускоряет разработку.
🔘Это упрощает создание кроссплатформенных инструментов с интерфейсом Swift
🔘Логика, написанная на C++, может быть повторно использована на различных платформах

Не думаю что кто-то в здравом уме будем писать логику на C++, но вот использовать готовые опенсорсные C++ движки или повышать производительность в местах ботлнеков может быть полезно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🐥 Создание Swift макросов
Решение для повторяющихся шаблонов - макросы.

Макрос @ThemedButton
🟢Макрос генерирует кнопку с оформлением темы приложения.
🟢Пример использования: @ThemedButton("Коснись меня")

Расширенный макрос @GreetingText
🟢Макрос анализирует строку и создает пользовательское сообщение.
🟢Пример использования: @GreetingText("Отжимающийся воин").

Плюсы использования:
🟢Макросы ускоряют время компиляции и незначительно улучшают использование памяти.
🟢Выгоды наиболее заметны при масштабировании до большого количества компонентов.

Минусы использования макросов
🔴Трассировки стека становятся нечитаемыми.
🔴Сообщения об ошибках указывают на расширение, а не на файл.
🔴Макросы могут нарушать работу инструментов рефакторинга.

Заключительные мысли
🔘Макросы Swift мощные и декларативные, но требуют тщательного тестирования.
🔘Макросы подходят для статичных задач и упрощают написание кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔21
🔨 Uncertain⟨T⟩
Mattt (NSHipster) редко но метко закидывает интересные концепции. В этот раз поднимается вопрос неопределенности в программировании. Идея состоит в том чтобы внедрить неопределенность в систему типов.

Uncertain<T>: новый подход
🔵Исследователи предложили кодировать неопределенность в системе типов.
🔵Uncertain<T> позволяет моделировать неопределенность с помощью вероятностных распределений.
🔵Uncertain<T> делает код более умным и точным.

Метод Монте-Карло
🔵Метод Монте-Карло позволяет анализировать вероятности через симуляции.
🔵Пример с игровым автоматом показывает, как можно использовать этот метод.

Заключение
🔵В реальном мире нет ничего определенного, кроме самой неопределенности.
🔵Более совершенные инструменты помогут лучше справляться с неопределенностью.
🔵Цель не в устранении неопределенности, а в признании её существования
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
8
🏝🦢 Kotlin-to-Swift экспорт теперь работает по умолчанию [EXPERIMENTAL]

Kotlin-to-Swift экспорт позволяет удобно использовать скомпилированный для Apple таргетов код из Swift удобным образом. Изменение добавили в Kotlin 2.2.0-Beta2

Ключевые фичи:
👉 Поддержка многомодульности: каждый Kotlin модуль - отдельный Swift модуль
👉 Поддержка пакетов в коде
👉 type alias теперь доступны из Swift
👉 Улучшения в nullability с примитивными типами
👉 Вызов перегруженных функций в Kotlin из Swift кода
👉 Можно изменить имя модуля

Фича всё ещё в экспериментально режиме и для её включения надо выполнить ряд действий (подобно как раньше в XCode проект подключался KMP модуль)

#kotlin #swift #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
📱 Как обнаружить обрезку текста в SwiftUI?
Давняя проблема еще со времен UIKit - калькуляция точного фрейма для текста. Самая частая задача это вычисление размера ячейки исходя из контента. В SwiftUI эта проблема перестала решаться вручную, но все еще существуют нюансы.

Проблема обрезки текста в SwiftUI:
🔵SwiftUI упрощает работу с текстом, но теряет контроль над его отображением.
🔵В статье рассматривается проблема адаптации макета для отображения описаний и сумм без обрезки.
🔵SwiftUI не предоставляет информации о усечении текста.
🔵Использование NSAttributedString сложно и чревато ошибками.
🔵Метод с фиксированным размером и вычислением геометрии позволяет определить необходимый размер для полного отображения текста.

Реализация решения
🟢Создана структура ZStackContainer для управления макетами.
🟢Используется функция для определения оптимального макета и установки его приоритета.
🟢ZStack отображает только выбранный макет, используя его размер как свой собственный.
🟢Интеграция этих механизмов позволяет решить сложные задачи верстки в SwiftUI.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Код Воробья для iOS разработчиков
☁️ Xcode Cloud вырубили для учеток РФ и РБ

Для физиков: смотрят реальное гео. Если аккаунт в Казахстане, но входите из мск — тоже вырубят. Даже с VPN как-то определяют

Для юриков: смотрят только регион аккаунта (не гео). Даже если добавленные в учетку разработчики в РФ — всё работает

Мы открываем компании в UK, на которые открывается Apple Developer Program без санкций
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5🔥3
🚀 Хватит тушить баги в продакшене!

Приходи на открытый урок
"Покрываем проект на SwiftUI Unit-тестами и Snapshot-тестами"!

🗓 6 августа 20:00 МСК | Онлайн

За 90 минут вы:

Узнаете, как тестировать UI без боли через Snapshot-тесты
Научитесь разделять логику и вью для чистых тестов
Устраните рутину и ускорите разработку
Поймёте принципы стабильных тестов от Apple

🔥 Бонус для участников:
скидка на курс «iOS Developer. Professional»

👉 Регистрация на вебинар

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
🐥 Как использовать атрибуты доступа
Простая статья о том как комбинировать атрибуты доступности при разработке. Если с базовой конфигурацией все понятно, то про все опциональные аргументы знают не все.
🟢Первый аргумент - название платформы или языка
🟢Остальные аргументы могут быть представлены в любом порядке
🟢Можно комбинировать несколько объявлений доступности для условного выполнения кода в зависимости от версии платформы
🟢Для упрощения использования атрибута @available можно использовать сокращенный синтаксис
Особенно полезно ознакомиться тем кто разрабатывает общие компоненты 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2