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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
iOS Broadcast
🐥 Typestate - новый для swift шаблон проектирования, доступный со Swift 5.9 Нашел отличный пример применения нововведений в системе типов Swift. Typestate — это шаблон проектирования, появившийся в языках с развитой системой типов и строгими моделями владения…
🐥 Дизайн архитектуры, основанный на системе типов со Swift
Статья в которой автор делился своим опытом принеся элементы Rust в Swift переросла в цикл статей, 3/9 уже доступны. Автор заявляет что изменит способ практического использования Swift.
Принципы Type-Driven Design пришли из функционального программирования, но пока не получили значительного внимания со стороны сообщества Swift. Мне понравился подход к структурированию статей через problem-solving.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥41👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🔨 Доступность (универсальный доступ) в Apple Vision Pro
Изначально в visionOS делалась большая ставка на доступность, в статье можно посмотреть как это работает на практике. Множество примеров, скриншотов и видео.
👉 Использование рук
👉 Siri и диктовка
👉 Альтернативные способы ввода
👉 Клавиатура и трекпад
👉 Управление "указкой"
👉 VoiceOver
👉 Управление голосом
Please open Telegram to view this post
VIEW IN TELEGRAM
👌3
🐥 Swift присоединяется к Summer of Code 2024
Что это такое? Summer of Code — это ежегодная программа, организованная Google, которая предоставляет практический опыт новичкам, участвующим в опенсорс проектах.
Многие участники GSoC становятся частью сообщества Swift и продолжают вносить свой вклад даже после завершения программы.
Если хотите внести свой вклад в Swift во время GSoC в этом году, необходимо предпринять следующие шаги:

1. Посетите существующую страницу идей проекта
2. Выбрать проект, перейдите в категорию GSoC на форумах Swift, чтобы обсудить проект
3. Когда вы поймете что требуется сделать в рамках проекта - открываете пропоузал

Прием заявок начнется 18 марта и закончится 2 апреля
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🍏 Apple закопала проект электромобиля

👉 2000 инженеров переходят в усиление отдела генеративного AI. Что логично, ведь в самоуправляемых авто суть в обучении нейронки
👉 Производители авто терпят убытки на «электричках»
👉 Благодаря этому проекту мы получили продвинутый CarPlay

Правильная стратегия на мой взгляд-на раннем этапе развития технологии инвестировали чтобы не отстать. Не стали терять деньги на выпуске продукта, а дождались результатов от конкурентов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👌3🤔2
🔖 Топ 15 горячих клавиш iOS симулятора
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
⚡️ Apple передумала и вернет поддержку PWA (HSWA) на iOS 17.4

👉 Все PWA будут иметь WebKit под капотом
Пока не понятно как это отвечает DMA, в рамках которого у всех браузеров должны быть одинаковые возможности
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤔3
🐥 Введение в изоляцию в Swift (5 мин 🇺🇸)

Изоляция занимает ключевое место в работе Swift Сoncurrency. Несмотря на то, что концепция новая, в ней используются знакомые нам механизмы. К сожалению, модель изоляции при работе со SwiftUI подвержена ошибкам. Прямо сейчас, если вы видите SwiftUI View, которая не изолирована от MainActor, это, вероятно, ошибка. Но в UIKit с изоляцией MainActor все проще.
Концепция проста, но правильное выполнение изоляции оказывается невероятно сложным.
Если вы не понимаете о чем я, очень советую разобраться в примерах, которые есть в статье и включить проверку SWIFT_STRICT_CONCURRENCY
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Реализация сапера на UIKit

6 лет назад, в рамках курса лекции, за 4 академических часа, я сделал небольшой pet-проект на котором показал основы разработки iOS приложений. Натолкнувшись на него сегодня в своем github, внезапно обнаружил:

👉 Swift особо не изменился, проект все еще компилируется без ошибок и предупреждений
👉 Сейчас требуются все те же знания для работы со SwiftUI которые были нужны и для UIKit
👉 Финальная версия осталась только на лекции

Если кто-то в поисках обучающего материала по iOS разработке с UIKit, все еще актуально
👍18🔥3
Forwarded from Android Broadcast (Кирилл Розов)
В аналитике AppMetrica появился новый инструментпредсказания LTV (lifetime value) и оттока. Предикты помогут владельцам мобильных приложений оптимизировать рекламные кампании на пользователей с высоким LTV и вовремя начать работу по удержанию пользователей.

Фича работает на основе предиктивной модели на базе ML наработок Яндекса. Модель обучена на обезличенных данных 10+ тыс приложений из различных категорий.

Одна из самых классных фичей — предсказания оттока пользователей. Она выделит пользователей, с которыми нужно дополнительно работать для избежания оттока. 

#analytics #appmetrica #яндекс
👍1
🔨 Что нового в Xcode 15.3
5 марта вышла релизная версия Xcode 15.3, основные нововведения:
🌟 Новая опция сборки Override Architectures, управляет набором архитектур
🐛 Исправили баг, который приводил к увеличению бинарника при использовании Mergable Library

🐥 Swift 5.10:
🌟 SE-0412: Строгая многопоточность для глобальных переменных
🌟 SE-0411: Изоляция значений по умолчанию
🐛 Исправили генерацию лишних предупреждений при вызовах AsyncIteratorProtocol.next()
🐛 Закрыли все известные дыры в модели безопасности статической передачи данных при полной проверке параллелизма. -strict-concurrency=complete

Тесты:
⚠️ XCTest теперь требует минимальный таргет iOS 13.0
⚠️ XCTest UI Automation APIs могут исполняться только в главном потоке, форсится в момент компиляции

Все нововведения Swift 5.10 с примерами
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
🐥 Strict concurrency for global variables

Разбираемся с новыми фичами 🔨15.3 + 🐥5.10.
Строгий параллелизм для глобальных переменных.
Даже в таком простом примере компилятор с флагом -strict-concurrency=complete обнаруживает в коде 3 потенциально опасных места для состояния гонки. Чтобы их исправить, необходимо явно отметить макросом @MainActor или nonisolated(unsafe) места в которых обращения могут происходить из разных потоков
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Противостояние Apple и Epic Games, что происходит?
📘Apple и Epic Games уже много лет судятся по поводу требования Apple получать 30% доходов разработчика игр от пользователей iPhone, Fortnite и другие игры были удалены из App Store, а все аккаунты разработчиков Epic были заблокированы в 2020 году.
📘ЕС принял Закон о цифровых рынках и компания Epic Games получила учетную запись разработчика Apple и объявила о планах по открытию магазина Epic Games Store в Европе
📘Apple закрыла аккаунт после того как директор Epic - Тим Суини публично высказался против политику Apple. Apple назвала его компанию "заведомо ненадежной”.
📘Суини в пятницу объявил что Apple восстановит доступ, чтобы вернуть Fortnite и запустить Epic Games Store в Европе в соответствии с законом DMA

Что тут важно для разработчиков:
📘В странах действия DMA разработчики смогут опротестовать блокировку своих учетных записей
📘Apple демонстративно показывает на примере Epic невыгодность попыток оспаривать комиссии и пытается не допустить прецендента полной победы Epic в противостоянии

Если раньше мне казались все попытки Epic борьбой с ветряными мельницами, то сейчас я им благодарен. Особенно учитывая сколько Epic потерял за 4 года отсутствия Fortnite на самой прибыльной мобильной платформе
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
На чьей вы стороне?
Anonymous Poll
39%
Epic
34%
Apple
27%
Android 🤪
👍1
🔖 Книга рецептов по работе со SwiftConcurrency
Репозиторий с целым набором рецептов по работе со SwiftConcurrency. Уверен, у каждого есть набор своих gist или кусков проекта к которым мы прибегаем в момент решения задачи которую уже решали. Теперь есть место, к которому можно обратиться и если не нашли там решения-законтрибьютить и помочь open-source.

👉 Создание асинхронного контекста
👉 Использование с протоколами
👉 Изоляция
👉 Структурированный параллелизм
👉 SwiftUI
👉 Использование с библиотеками, не расчитанными для работы со Swift Concurrency
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚡️ Установка приложений напрямую с сайта разработчика

Пользователям ЕС будет предоставлена возможность скачивать приложения прямо с сайта разработчика.
Apple предоставит доступ к API-интерфейсам, которые облегчат распространение приложений, интеграцию с системными функциями, резервное копирование и восстановление приложений
Все детали уже доступны - Getting ready for Web Distribution in the EU
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥10
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Нюансы при использовании .onTapGesture

Если вы используете SwiftUI, вы точно использовали модификатор .onTapGesture().
Этот модификатор очень удобен, так как позволяет определить кложуру, которая будет вызываться при нажатии на View, к которой был прикреплен.
Тем не менее, важно быть осторожным, при использовании модификатора. В статье рассматривается несколько вариантов, с правильным и потенциально проблемным случаем
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔2
Forwarded from Android Broadcast (Кирилл Розов)
BDUI на 100%: управляем шиммерами с бэкенда (44 мин)

В команде развития BDUI в Маркете разработали собственный язык для описания шиммеров, научились его быстро парсить и внедрили в приложение и бэкенд. Спикер рассказал, почему решили разрабатывать свой язык, похожий на Lisp, и почему обычный JSON или бинарный формат не подошли, как они научились генерировать код под обе платформы (iOS, Android) с помощью Python и почему отказались от идеи использовать KMM.

Слайды доклада тут

#видео #bdui
2
Forwarded from Android Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
Экспериментальное MediaPipe LLM Inference API позволяет запускать Large Language Models (LLMs) модели на устройства разных платформ (включая Android и iOS)

Кажется запуск больших нейросеток на устройствах уже все ближе. У меня остались вопрос по расходу батарейки и нагреву устройству при активном использовании. В статье рассказывают про оптимизации и результаты

🔗 Примеры кода на GitHub

На видео в посте демонстрация запуска модели Gemma 2B на iOS и Android с помощью MediaPipe LLM Inference API (размер параметров - 2.5 миллиона)

#ml #tensorflow
🔥51👍1
⌨️ PKL - новый язык конфигурации от Apple

Не сильно замеченный сообществом язык конфигурации от Apple действительно имеет сильные предпосылки стать новым стандартом индустрии. Он программируемый, расширяемый, а главное безопасный. Собрал для вас основные преимущества, который удалось выявить:

👉 Знакомый и понятный синтаксис, даже проще JSON
👉 Гибкое заполнение файлов конфигурации из коробки
👉 Возможность использовать все возможности привычных языков программирования для создания конфигураций
👉 Рендер конфигурации во все привычные форматы, JSON, YML, Plist...
👉 Гибкий синтаксис для задания ограничений полям
👉 Понятный CLI с детальными ошибками
👉 Кодогенерация в Swift, Kotlin, Java и Go
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍2🤔2