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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
👶 Советы по байндингам в SwiftUI

Простые, но понятные советы от Chris Eidhof. Удивляюсь его любви к bool (он является автором SE-0199, в результате которого появилась функция toggle). В статье он рассматривает как используя dynamic member lookup, упростить работу с булевыми байндингами, а так же приводит пример работы с Set. Приятный синтаксический сахар, который действительно может помочь в улучшении читаемости логики в слое View.

@State private var edges: Set<Edge> = [Edge.top, Edge.bottom]
$edges[contains: .top]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
📱 Девушка и её @ViewBuilder

Очень интересный способ повествования при помощи вымышленной истории. Вам точно понравится и плюсом хорошо поймете, как использовать @ViewBuilder в приложениях SwiftUI, на примерах. В статье разбираются:
👉 View Modifiers
👉 View Extensions
👉 View Builders
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
iOS Broadcast
🆓 Бекпорт @Observable В Swift 5.9 появился Observation фреймворк, но, к сожалению, он работает только в iOS 17+. Большинство разработчиков не смогут использовать эти инструменты еще несколько лет. Point-Free реализовали свой бекпорт Observable для iOS 13+…
Производительность макроса Observable в сравнении с ObservableObject
Вот почему Perception - бекпорт Observable на iOS 13+ это важно.
Макрос @Observable упрощает код на уровне реализации и повышает производительность SwiftUI View, предотвращая ненужную перерисовку. Можно начать мигрировать на Perception уже сейчас, а после сразу получить нативный Observable, при поднятии таргета. Вам больше не требуется использовать @ObservedObject, ObservableObject и @Published. Однако вам все равно придется использовать @State для создания единого источника данных для модели.
👍101
🕸Инспектируем трафик при помощи инструментов Xcode
Бутылочное горлышко загрузки большинства экранов-транспортный уровень. Но не всегда проблема кроется в пропускной способности сети. В Xcode есть инструмент Network, способный помочь с выявлением проблем. Он не так хорош как Charles или Proxyman, но предоставляет нативные средства для базовой идентификации проблемы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🐥 Потокобезопасные глобальные переменные (4 мин)
Для обеспечения будущей миграции на Swift 6 нужно включить настройку строгого параллелизма. При активации этой настройки вы скорее всего, столкнетесь с предупреждениями о доступе к общему изменяемому состоянию. В статье разбирается, что это означает и как можно устранить эти предупреждения.
👉 Что такое глобальные переменные
👉 Создание потокобезопасных глобальных переменных
👉 Создание не изолированных глобальных переменных
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Убираем фон с избражения со SwiftUI
Все любят котиков и AI. В статье разбирается как не только использовать эту фишку в iOS но и просто интегрировать это в ваши приложения.
Для этого понадобится API iOS 17, но эта та фича, которая может быть бонусом для обновившихся пользователей
Please open Telegram to view this post
VIEW IN TELEGRAM
13
⚡️ Доступ к NFC API на iPhone в Европе
Очень похоже, что лед тронулся🤞. Исторически, использование чипа Apple NFC в iPhone и Apple Watch для платежей было ограниченно ‌Apple Pay‌, что ограничивало способность банков предлагать свои собственные бесконтактные платежные решения на платформах Apple. В заявлении для Reuters Apple сказала:
Мы готовы предоставить сторонним разработчикам в ЕС опцию, которая позволит их пользователям осуществлять бесконтактные платежи NFC из своих приложений iOS

Эта уступка является частью усилий Apple по устранению антимонопольных обвинений ЕС, по ограничению доступа третьих лиц к возможностям NFC на устройствах iOS.
Ждете доступ к NFC API? 👍👎
Please open Telegram to view this post
VIEW IN TELEGRAM
👍46🔥1
🍏Apple выплатила России штраф в $13,7 млн
Apple не совсем согласны с ФАС по поводу решения суда, но 19 января штраф заплатили. Более миллиарда рублей по антимонопольному делу за злоупотребление доминирующим положением на рынке inApp-платежей в России.
Что это значит для разработчиков?
1. Apple не планирует покидать рынок России
2. Apple будет продолжать принимать платежи доступными сейчас средствами
3. Есть надежда что Apple выполнит требование Минцифры по установке приложений из альтернативных сторов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤔5👍2👏1
🐥 Регистронезависимое сравнение строк
Открытие дня - в Swift можно не писать .lowercased при сравнении строк без учета регистра, а использовать опции компарации или даже отдельную функцию. В статье разбирается различие этих способов на примерах. На самом деле, такой способ менее явный для бизнес логики, но более приемлемый для вывода пользователю. Главное, не забудьте оставить комментарий коллегам, если решите использовать один из этих методов 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👌3👍2
Жест встряхивания для отмены в SwiftUI приложении
Давеча (подходящее вступление для фичи времен iPhoneOS 3.0), столкнувшись очередной раз с всплывающим окном "Undo typing", я задумался:

1. Я ни разу не пользовался специально этим чтобы отменить действие
2. Я давно не пилил фичи под жест смахивания

Актуально ли это до сих пор или архаизм? Аналитики по использованию я не нашел, но нашел статью, которая рассказывает как реализовать это в SwiftUI... По всей видимости, Apple не планирует повышать адаптацию этой фичи, но и отказаться не может 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
Вы пользуетесь Shake To Undo для отмены действия?
Anonymous Poll
24%
Да
76%
Нет
⚡️ Apple разрешила установку приложений не из App Store на iOS, но только для ЕС

👉 Приложения можно будет загружать из сторонних магазинов. Комиссии не будет, но будет сбор €0,5 за «технологию»
👉 За обработку платежей через App Store будет комиссия - 3%
👉 В iOS 17.4 можно будет выбирать браузер по умолчанию, выбрать его предложат при первом запуске Safari на iOS 17.4. Разработчики могут использовать движки, отличные от Safari
🔥17
Forwarded from Android Broadcast (Кирилл Розов)
Разработчик из Booking делится зачем делали своё решение для замера производительности приложения во время работы. В статье (EN, 9 мин, ссылка без VPN) рассказывается какие метрики решили замерять и как, а именно: время запуска приложения, время до показа экрана, скорость рендеринга, время простоя

Исходный код для iOS и Android

#performance #analytics
Release 20.1.0
Первый релиз года порадует следующими фичами и улучшениями:

для iOS:
1️⃣ Оптимизировали способ распределения тестов между воркерами.
2️⃣ Сократили время на старт симуляторов за счёт внутренних оптимизаций.
3️⃣ Уменьшили объём логов, которые записывались по умолчанию. Теперь глубину логирования можно увеличить в настройках.
4️⃣ Добавили образец дашборда с готовыми метриками для Grafana. Пример json-файла дашборда для Grafana и Graphite в качестве источника данных доступен здесь.

для Android:
1️⃣ Улучшили вывод информации о прогоне тестов для Gradle plugin и CLI.
2️⃣ Добавили возможность прописать ограничение на время полного исполнения тестов для Gradle plugin и CLI.
3️⃣ Поработали над документацией: описали новый функционал и собрали все разделы в одном месте.
4️⃣ Сделали образец дашборда с готовыми метриками для Grafana. Пример json-файла тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Forwarded from Android Broadcast (Кирилл Розов)
Анализ 153 млн строк позволяет обвинить Copilot в снижении качества кода разработчиков

Перекладывание написания кода на ИИ привел к тому что разработчики перестали следить за качеством и кол-во багов в коде с генераций BB стало больше

Анализ на основе данных приводит к неутешительным выводам. Возросла доля категорий добавленного кода и вставки/копирования относительно категорий обновлённого, удалённого и перемещённого кода. Исследование приходит к выводу, что в 2023 году принципы DRY всё чаще нарушаются.

В целом я не удивлен. Чем мощнее инструмент и способен избавлять от нужды думать, тем меньше человек думает, а не направляет силы на другие задачи. Ревьювить код и проверять что вам дает ИИ нужно обязательно, а не полагаться на него как абсолютную истину

#ai
7
Альтернативные магазины приложений на iOS, что уже известно

👉 MarketplaceKit - новый фреймворк для разработки альтернативных магазинов. Так же известный как "фреймворк за миллион евро" 🤑
👉 Epic подтвердили свою готовность создать свой "альтстор"
👉 Apple продолжит взимать плату за приложения, загруженные из "альтсторов". При превышении миллиона загрузок в год, разработчики должны заплатить Apple 50 центов. По данным Apple, менее 1% европейских разработчиков превышают этот порог
👉 Некоммерческие организации, аккредитованные образовательные учреждения и государственные учреждения cмогут бесплатно создать альтернативный магазин приложений и не платить комиссию при превышении порога установок
👉 По всему миру будут доступны приложения для облачного гейминга
👉 Apple будет проверять приложения, скаченные из альтернативных сторов и предупреждать пользователей, аналогично с macOS
👉 Доступность "альтсторов" будет проверяться по региону , который система будет определять по совокупности факторов (GPS, Wi-Fi и Cellular). Посмотреть регион можно будет в новом поле настроек - "Identifiable Region". VPN или Смена региона не влияют на значение поля
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
💻 Mac больше не нужен <//>

Project IDX, универсальная веб-среда Google для разработки приложений с поддержкой искусственного интеллекта, выполняет некоторые из своих ранних обещаний. В январском обновлении Project IDX получил:

– Интеграцию полноценного симулятора iOS и эмулятора Android, доступные прямо из браузера, что (особенно полезно для разработчиков Flutter);
– Новые шаблоны проектов для разных языков и фреймворков;
– Улучшения, такие как автоматическая настройка брандмауэра, инструменты командной строки;
– Поддержка Docker;
– Расширение функций ИИ в 15 странах.

С обновлением можно ознакомиться тут ℹ️
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔122👍1