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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
📱 Создаем интерфейс для чаевых с ипользованием StoreKit 2, Xcode Previews, и удаленных ресурсов

Те кто делал In-App Purchase в цирке не смеется, однако с выходом StoreKit 2 жизнь iOS разработчиков значительно упростилась. StoreKit 2 поддерживает файлы конфигурации StoreKit для локальной разработки и мы можем тестировать свои покупки в приложении без подключения к сети и не отправляя их в App Store. Он также предоставляет готовые компоненты SwiftUI, для очень простой интеграции и даже возможностями настройки.

В статье использование StoreKit 2 рассматривается на примерах. Включая нативные StoreView и ProductView. Мне статья зашла, давно не сталкивался со StoreKit и новая реализация приятно удивила
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🐥 Swift пришел в микроконтроллеры!

Swift занимает все больше ниш и теперь очередь за микроконтроллерами! Сообщество энтузиастов во главе с одним из разработчиков компилятора создали демонстрационный репозиторий с рефференсными проектами для самых популярных плат. Есть даже поддержка Raspberry Pi Pico W. Еще одна идея для пет проекта 🤗. Что интересно, несмотря на все ограничения, по заверениям автора, со Swift нет проблем с производительностью, отсутствие сборщика мусора тут пригодилось. Все детали про видение будущего Swift для микроконтроллеров можно почитать тут
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥5🤔1
Apple разрешила публиковать в App Store эмуляторы консолей c или без загрузкой игр.

Программы должны соответствовать законодательству == никакого пиратства

#appstore
12🎉5
Яндекс выпустил Yandex Mobile Ads SDK 7

🟢AdPod - Показ нескольких объявлений подряд в одном рекламном блоке
🟢EndСard - Интерактивный экран в конце рекламного объявления
🟢SKOverlay - Возможность скачать приложение сразу из рекламного объявления без перехода в App Store

Если еще не использовали SDK – есть примеры использования на github, а для миграции доступна инструкция по миграции со старой версии.

#яндекс #ads #монетизация
👍7
1️⃣2️⃣3️⃣4️⃣5️⃣SE-0425 128-bit Integer Types

Принято расширение размерности целых чисел [U]Int128 - это самый большой тип с фиксированным размером, который в настоящее время широко используется в коде "общего назначения". 128 бит будут добавлены в стандартную библиотеку, а в данный момент уже доступны в package.

.package(
url: "https://github.com/stephentyrone/swift-numerics",
branch: "int128"
)

Теперь нам доступно 170141183460469231731687303715884105727 🤔.

Есть идеи, зачем это может понадобиться в продуктовой разработке?
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5
🐥 Разбираемся с динамической и статической диспетчеризацией

Динамическая и статическая диспетчеризации - важные концепции в Swift. Динамическая диспетчеризация используется для классов и допускает полиморфизм во время выполнения, в то время как статическая диспетчеризация используется для структур, перечислений и конечных классов, обеспечивая более высокую производительность за счет оптимизации во время компиляции.

Понимание различий между динамической и статической диспетчеризацией может помочь вам принимать обоснованные решения при разработке Swift приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🧑‍💻 Apple лицензировала миллионы изображений с Shutterstock для своей AI модели

Пропустил эту важную новость, подтверждающую мои предположения - этот WWDC будет под флагом AI. Что тут важно:

🟢Shutterstock — компания, предоставляющая стоковые фотографии, в 2023 год библиотека из более чем 440 миллионов изображений
🟢Apple получит миллионы изображений и видео от Shutterstock
🟢Сделка прошла еще в конце 2022, после выхода на рынок ChatGPT
🟢Чип iPhone 16 может получить обновленный нейронный движок, который поможет работать AI на устройстве

Но в марте этого года Apple стала вести переговоры об использовании AI от Baidu. Это может означать как сложности с работоспособностью собственных моделей, так и использование более подходящих моделей под крупные рынки 🤔. В данный момент LLM модели работают с не английским языком через перевод, что значительно ухудшает качество.
Какие ваши мысли? Сможет Apple вступить в гонку и показать как надо было или так и будет в роли догоняющей со своей Siri? Я лично жду нативной интеграции LLM в Xcode 🤞️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥4
🌐 Оптимизация WebKit и Safari привела к бусту производительности на 60%
iOS разработчики часто в своей работе сталкиваются с веб технологиями, как минимум при интеграции WKWebView и SFSafariViewController. Команда WebKit за последние годы очень круто продвинулась в контексте поддержки веб стандартов. Чего стоит только поддержка PWA и нотификаций без сертификата разработчика. Команда WebKit на этом не остановилась и плотно работала над оптимизацией работы, в результате чего в реальном бенчмарке общий показатель Speedometer 3.0 улучшился примерно на 60% между Safari 17.0 и Safari 17.4.
Бенчмарк Speedometer является максимальным приближением к пользовательским действиям и лучшие результаты движка в нем напрямую влияют на реальный пользовательский опыт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
Как заставить ScrollView начинать снизу?
К моему удивлению, только в iOS 17 для SwiftUI появился нативный способ сделать коллекцию со скролом снизу defaultScrollAnchor. Этот подход часто требуется для экрана с сообщениями. Если вы работаете не в стартапе и вам нужно добиться похожего поведения до iOS 17, прийдется делать по-старинке:


view.transform = CGAffineTransform(rotationAngle: (-.pi))
cell.transform = CGAffineTransform(rotationAngle: (-.pi))
👏9👍6
🔨Почему Accelerate — это не страшно

Вышла очень интересная статья про Accelerate от моего коллеги, которую мне удалось ревьювить перед публикацией, но коментариев от меня не было, так как написано все очень понятно. Если не знаете что это такое или пытались почитать но ничего не поняли - очень советую ознакомиться.

P.S. Ну и накиньте "Нравится" или коментариев, поддержим первую статью Игоря
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123👏3
📱 Статья на Medium про то как работает пагинация в приложении Medium
Простая и понятная статья про реализацию пагинации поиска в приложении Medium. Меня больше заинтересовала даже не сама пагинации а простота архитектуры. Все по заветам Apple, данные вытягиваются прямо на уровне View, экран поиска реализован через Generic с разными комбинациями Presenter+Content. По-классике используется LCE подход
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍1
🐥 Reflection в iOS: как посмотреть содержимое любой сущности

Вышла еще одна статья, в ревью которой я принимал участие. Рефлексия в Swift не такая мощная как в Java, но как и во многих других языках программирования, есть возможность получать информацию о структуре объекта в Runtime. С его помощью можно просматривать содержимое любых сущностей, не зная о них абсолютно ничего.
Главное не забыть что рефлексия будет работать не при всех опциях компиляции 👍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Распространение приложений через сайт
Начиная с iOS 17.5 beta 2 можно начать тестирование прямого скачивания iOS приложений прямо с веб-сайта, принадлежащего разработчику, среди пользователей в Европейском союзе. Приложения могут быть установлены только с домена веб-сайта, который разработчик зарегистрировал в App Store Connect и подписаны специальным образом.

Чтобы устанавливать приложения с веб-сайта разработчика, пользователям сначала нужно будет разрешить разработчику устанавливать приложения в настройках своего iPhone. При установке приложения на системном экране будет отображаться информация, которую разработчик отправлял Apple на проверку: название приложения, имя разработчика, описание приложения, скриншоты и возрастной рейтинг. Напоминаю, чтобы раздавать приложение таким образом требуется:
🟢УЗ разработчика должна быть ассоциирована с фирмой, зарегистрированной в ЕС
🟢Иметь "хорошую" репутацию в программе разработчиков Apple минимум 2 года
🟢Иметь более одного миллиона установок в год на территории ЕС
🟢Иметь прозрачную политику сбора данных
🟢Соблюдать все законы и юрисдикции, в которых осуществляется работа (например, Закон о цифровых услугах, Общие положения о защите данных и законы о защите потребителей)

Ну и не забыть оплатить 50 евроцентов за каждую установку после миллионной (если не достигли миллиона установок, то распространять вне AppStore не получится)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Замеряем производительность циклов в Swift
Бестолковая но очень интересная статья. Если у вас был когда-то курс по основам computer-science, компиляторам или ассемблеру, ничего нового вы не узнаете, но зато можно убедиться что теория соответствует современной реальности. В статье есть пример использования инструмента профайлинга и пример как можно упороться максимально в детали компилятора Swift.
Из статьи вы узнаете, почему while быстрее чем for и почему нельзя измерять производительность в debug конфигурации
🔥5
👀 Apple откроект платежную систему для всех
Решил разобраться в новости которую многие на выходных публиковали с посылом, Apple Pay возвращается в Россию. Давайте разберемся с фактами, которые есть сейчас:
🟢Apple откроет технологию только на рынке ЕС
🟢Компания вынуждена открыть технологию для урегулирования расследования в ЕС, иначе штраф до 10% всего оборота
🟢Apple предоставит бесплатный доступ к технологии NFC без необходимости использования Apple Pay или Apple Wallet
В целом, движение действительно в сторону открытия экосистемы. В контексте блокировки Apple Pay всем хотелось бы чтобы это относилось к нам, но пока что только к ЕС
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
📱🟰👍 TDD и SwiftUI
Серия видео в реальном времени по использованию SwiftUI. В данном видео на практике рассматривается пример применения TDD с интерфейсом SwiftUI. Очень полезно для тех кто слышал про TDD но не мог практически понять как писать тесты до написания логики. Очень хорошо видно как преображается качество архитектурного решения исходя из вводных по тестовым сценариям.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
⚡️ Apple объявила о проведении мероприятия Let Loose
Apple объявила о проведении мероприятия Let Loose. Оно состоится во вторник 7 мая. Прямая трансляция будет доступна на сайте Apple.com.
Слоган и изображение, украшающее анонс предстоящего события, намекают на выпуск новых планшетов iPad Pro и iPad Air, а также аксессуаров Apple Pencil и Magic Keyboard. По данным MacRumors, инсайдеры ждут от майской презентации раскрытия следующих устройств:
🟢Две новые модели iPad Pro с чипом M3, OLED-дисплеями, более тонким корпусом и тонкими рамками, альбомно-ориентированной фронтальной камерой и другими изменениями в дизайне, а также беспроводной зарядкой MagSafe.
🟢Две новые модели iPad Air с чипом M2 и альбомно-ориентированной фронтальной камерой, включая первый в мире 12,9-дюймовый iPad Air.
🟢Новая клавиатура Magic Keyboard для iPad Pro с алюминиевым корпусом, увеличенным трекпадом и другими полезными особенностями.
🟢Новый Apple Pencil, который может получить жест «сжатия» для определенных действий и в конечном итоге поддерживать VisionOS.
Please open Telegram to view this post
VIEW IN TELEGRAM
🈸 Генератор Privacy manifest для вашего приложения
C 1 мая 2024 года приложения без PrivacyInfo.xcprivacy, будут отклоняться от Review.
PrivacyInfo.xcprivacy - это XML-файл в формате .plist. Существует 3 основных типа данных, которые должны быть указаны в Манифесте конфиденциальности:
🟢 Вопрос "да" или "нет" о том, использует ли ваше приложение данные для "отслеживания" и, если да, то на какие домены отправляются данные
🟢 Список всех типов собираемых данных с указанием причин сбора этих данных и того, используются ли они для отслеживания.
🟢 Список с указанием того, какие (если таковые имеются) из этих 6 категорий методов платформы iOS framework вы используете, называемых API-интерфейсами "Требуемой причины", с указанием причин, по которым вы их используете

Если вы еще не успели разобраться в полной документации Apple, этот генератор спасет вам майские праздники 🔖
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
1️⃣2️⃣3️⃣4️⃣5️⃣SE-0409: Swift 6: Уровень доступа на уровне импорта
В данном пропоузале появилась возможность помечать import любым из доступных уровней доступа Swift, чтобы ограничить типы или интерфейсы. Благодаря этим изменениям, зависимости теперь могут быть помечены как видимые для текущего исходного файла (private или fileprivate), модуля (internal), пакета (package) или всех клиентов (public).
Это предложение вносит изменения в два функционала, которые будут включены в Swift 6 по умолчанию.:
🟢AccessLevelOnImport: Уже доступен флаг экспериментальной функции, который позволяет разработчикам помечать объявления об импорте уровнем доступа.
🟢InternalImportsByDefault: новый функциональный флаг, который пока недоступен и изменяет неявный уровень доступа для инструкций импорта с общедоступного на внутренний, как это будет сделано в Swift 6.

Это отличное дополнение к языку, о котором я лично давно ждал, поскольку оно позволяет разработчикам лучше скрывать детали реализации. Кроме того, это также ограничивает количество зависимостей, импортируемых клиентами пакета, теми, которые помечены как общедоступные, при соблюдении правильных условий, что сокращает время компиляции.
Please open Telegram to view this post
VIEW IN TELEGRAM