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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
🧑‍💻 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
🐥 Динамический размер кастомных шрифтов
Простая статья - напоминание о том что использование кастомных шрифтов не означает отказ от поддержки динамического изменения размера. Около 30% пользователей используют не стандартный размер шрифта, исходя из аналитики PSDFKit.
Кстати у них выходила более крупная статья еще в 2018 году и она еще актуальна.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from Compose Broadcast
Инструкция (7м) от TouchLab как интегрировать нативные iOS компоненты в Compose iOS

#ios #swiftui #compose #kmp
🔥2
Forwarded from Big Geek
Bloomberg: Евросоюз обяжет Apple добавить на iPad поддержку сторонних магазинов приложений в Европе

Также Apple придётся на территории ЕС сделать iPad совместимым с альтернативными браузерными движками — то есть, подогнать планшеты под действие Закона о цифровых рынках (DMA).

Ранее DMA действовал только в отношении смартфонов. Теперь у Apple есть примерно шесть месяцев, чтобы привести iPadOS в соответствие с новыми требованиями.
🔥10👍5🤔2
📱 SwiftUI LCE состояния. Решаем задачу с мутациями
Статья для начинающих по тому как работать с состояниями в SwiftUI. Для опытных инженеров, возможно, это покажется базой, но к этому нужно прийти. Что приятно, автор идёт дальше обычных примеров с Hello world и раскрывает несколько нюансов с которым сталкивался каждый, приходя в UDF архитектуру
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Mercedes отказался от интеграции CarPlay 2.0
«Все, что происходит в этом цифровом окне в ваш автомобиль и в мир — это не просто информационно-развлекательная система. Это не просто музыка, которую вы слушаете, или телефонный звонок, который вы делаете.
Еще одна революция происходит в области автоматизированного вождения. Так что наша операционная система Mercedes-Benz на самом деле является центральной нервной системой в мозгу всего автомобиля, где информационно-развлекательная система является одной из четырех областей. Вся операционная система, информационно-развлекательная система, автоматизированное вождение, все функции кузова, экстерьера и интерьера автомобиля, вся система привода, управление батареей, все это.
Все это — единая целостная архитектура программного обеспечения. Поэтому, если вы хотите создать превосходный клиентский опыт, вам нужно думать об этом в целом. И только производитель может связать все это воедино.
Никто, ни одна из технологических компаний, даже не пытается сделать все это.»
Это важное заявление, т.к. 2 года назад на раннем анонсе именно Mercedes был одним из немногих производителей массового сегмента кто планировал интеграцию с CarPlay 2.0.
🤔4
📱 SwiftUI Preview-центричная архитектура
Еще одна статья с попыткой интегрировать Preview в повседневную работу. Кажется, что Apple анонсировала очень удобный инструмент, которым очень сложно пользоваться в реальной жизни, особенно учитывая "стабильность" работы Xcode. Тем не менее, всегда интересно посмотреть на подход к разработке проекте в котором разрабока в основном ведется через Preview. В теории есть множество плюсов:
🔴Более оптимальная компиляция-работоспособность preview имеет множетство оптимизаций
🔴Возможность проверять отображение сразу нескольких состояний
🔴Интерактивные возможности Preview

На практике же, приходится решать множество вопросов ради не стабильно работающего инструмента
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
👍3
📱 SwiftUI разбираемся в отличиях ObservableObject, ObservedObject, StateObject и EnvironmentObject на примере работы с паттерном Координатор
Статья для тех кто все еще путается в отличиях и корректности применения. Выбор между ними зависит от конкретного варианта использования, владения объектом и времени жизни, а также от масштабов использования объекта в иерархии вьюх.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91