Тактильная отдача в SwiftUI
С помощью модификатора
С помощью модификатора
sensoryFeedback
можно настраивать тактильную отдачу для различных действий с приложением. Все, что нужно для настройки – указать стиль отдачи и пороговое значение, с которого она включится.Swift with Majid
Sensory feedback in SwiftUI
SwiftUI introduced the new sensoryFeedback view modifier, allowing us to play haptic feedback on all Apple platforms. This week, we will learn how to use the sensoryFeedback modifier to give haptic feedback on different actions in our apps.
Интероп Swift с Windows API
Обзор того, как различные фичи Swift упрощают написание Windows приложений и взаимодействие с Windows API.
Обзор того, как различные фичи Swift упрощают написание Windows приложений и взаимодействие с Windows API.
Swift.org
Swift Everywhere: Using Interoperability to Build on Windows
This post was originally published at Speaking in Swift by The Browser Company under the title “Interoperability: Swift’s Super Power”.
Видео с NSSpain
В открытый доступ выложили все видео с конференции NSSpain. Из интересного:
👉Как Spotify разбивает приложение на модули
👉Использование Metal шейдеров со SwiftUI
👉Как делать приложения на SwiftUI более плавными
В открытый доступ выложили все видео с конференции NSSpain. Из интересного:
👉Как Spotify разбивает приложение на модули
👉Использование Metal шейдеров со SwiftUI
👉Как делать приложения на SwiftUI более плавными
Vimeo
NSSpain XI (2023)
Join the web’s most supportive community of creators and get high-quality tools for hosting, sharing, and streaming videos in gorgeous HD with no ads.
Насколько активно Apple использует Swift и SwiftUI
Новая итерация ежегодного анализа бинарей в iOS. В iOS 17 такая статистика:
👉Использование Swift продолжает расти. Скорость его роста уже равна скорости роста Objective-C.
👉Впервые за всю историю количество бинарников, использующих только UIKit, упало. SwiftUI же растет еще быстрее – уже 21% бинарников его используют.
👉Несмотря на доступность Secure Enclave для Swift, Apple использует его только с Objective-C.
Новая итерация ежегодного анализа бинарей в iOS. В iOS 17 такая статистика:
👉Использование Swift продолжает расти. Скорость его роста уже равна скорости роста Objective-C.
👉Впервые за всю историю количество бинарников, использующих только UIKit, упало. SwiftUI же растет еще быстрее – уже 21% бинарников его используют.
👉Несмотря на доступность Secure Enclave для Swift, Apple использует его только с Objective-C.
Insights – новая фича Reveal
Первый крупный релиз Reveal за долгое время. Основная фича – Insights. Это набор из 130 инспекций, которые проактивно подсвечивают различные потенциальные проблемы с версткой и accessibility в приложении.
Первый крупный релиз Reveal за долгое время. Основная фича – Insights. Это набор из 130 инспекций, которые проактивно подсвечивают различные потенциальные проблемы с версткой и accessibility в приложении.
История переезда Spotify на Bazel
🤔Дано:
- 200 iOS разработчиков в 120 командах
- 3 миллиона строк кода только в тестах
- Рост кодовой базы на 30% каждый год
- 80 минут ожидания сборки и прогона тестов на PR
После того, как Spotify перевел все приложение на сборку через Bazel, время ожидания сборки упало в 4 раза, до 20 минут. В статье подробно рассказывается их история миграции: начиная от бесшовной замены xcodebuild на Bazel, заканчивая его интеграцией с IDE.
🤔Дано:
- 200 iOS разработчиков в 120 командах
- 3 миллиона строк кода только в тестах
- Рост кодовой базы на 30% каждый год
- 80 минут ожидания сборки и прогона тестов на PR
После того, как Spotify перевел все приложение на сборку через Bazel, время ожидания сборки упало в 4 раза, до 20 минут. В статье подробно рассказывается их история миграции: начиная от бесшовной замены xcodebuild на Bazel, заканчивая его интеграцией с IDE.
Гайд по работе с make
Короткий гайд для тех, кто совсем ничего не знает про make. Автор использует его на примере скрипта настройки окружения для нового iOS проекта.
Короткий гайд для тех, кто совсем ничего не знает про make. Автор использует его на примере скрипта настройки окружения для нового iOS проекта.
Запуск локальной LLM на iOS
LLaMA.cpp – проект для инференса различных LLM на девайсах. Основная проблема с запуском его на iOS – ограничения по памяти. В статье разбирается, как можно квантовать модель таким образом, чтобы не ухудшить ее точность, попасть в лимиты памяти и запустить ее локально.
LLaMA.cpp – проект для инференса различных LLM на девайсах. Основная проблема с запуском его на iOS – ограничения по памяти. В статье разбирается, как можно квантовать модель таким образом, чтобы не ухудшить ее точность, попасть в лимиты памяти и запустить ее локально.
Хабр
LLaMA 2, RWKV, Santacoder и другие LLM на iOS
Однажды я решил изучить язык Swift и разработать свое первое приложение для iOS. Для этого я решил создать реальный проект, который заключался в оптимизации нашумевшего LLaMA.cpp...
Демон, который чинит проблемы с потреблением CPU симуляторов Xcode 15
В симуляторах Xcode 15 есть проблема. При прогоне тестов запускаются процессы, которые могут нагрузить несколько ядер CPU на 100%, и, как результат, значительно увеличить время на их прогон.
Yeetd – простой демон, который отслеживает такие процессы и убивает их. Костыль, но может помочь до исправления корневой проблемы.
В симуляторах Xcode 15 есть проблема. При прогоне тестов запускаются процессы, которые могут нагрузить несколько ядер CPU на 100%, и, как результат, значительно увеличить время на их прогон.
Yeetd – простой демон, который отслеживает такие процессы и убивает их. Костыль, но может помочь до исправления корневой проблемы.
GitHub
GitHub - biscuitehh/yeetd: yeetd is a lil' daemon that watches for specific CPU-intensive Simulator processes and stops them in…
yeetd is a lil' daemon that watches for specific CPU-intensive Simulator processes and stops them in their tracks! - biscuitehh/yeetd
Все возможности #Preview макроса
👉Можно использовать как со SwiftUI, так и с UIKit.
👉Если вы хотите сгенерировать несколько превью, макрос можно использовать сколько угодно раз.
👉Чтобы проще отличать превью друг от друга, в макрос можно передать название конкретного превью.
👉Начиная с iOS 17, макросу можно передать еще и параметр, определяющий размер и поворот экрана.
👉Превью можно использовать и с виджетами.
👉Можно использовать как со SwiftUI, так и с UIKit.
👉Если вы хотите сгенерировать несколько превью, макрос можно использовать сколько угодно раз.
👉Чтобы проще отличать превью друг от друга, в макрос можно передать название конкретного превью.
👉Начиная с iOS 17, макросу можно передать еще и параметр, определяющий размер и поворот экрана.
👉Превью можно использовать и с виджетами.
Метрики в Push Notifications Console
В Push Notifications Console завезли метрики для пушей, отправленных в продакшне через APNs. С их помощью можно понять, были ли ваши пуши доставлены до пользователя, отменены, или отложены для более поздней отправки. Подробнее тут.
В Push Notifications Console завезли метрики для пушей, отправленных в продакшне через APNs. С их помощью можно понять, были ли ваши пуши доставлены до пользователя, отменены, или отложены для более поздней отправки. Подробнее тут.
Apple
New delivery metrics now available in the Push Notifications Console - Latest News - Apple Developer
The Push Notifications Console now includes metrics for notifications sent in production through the Apple Push Notification service (APNs). With the console’s intuitive interface, you’ll get an aggregated view of delivery statuses and insights into various…
Советы по жизни со SwiftSyntax
Пару месяцев назад я постил обсуждение со Swift Forums про то, что SwiftSyntax, зависимость на который неизбежна при использовании макросов, существенно замедляет сборку и усложняет менеджмент версий ваших зависимостей. В статье от Pointfree дается несколько советов по тому, как эти проблемы можно минимизировать. Статья в первую очередь ориентирована на авторов библиотек, но помочь может и разработчикам приложений.
Пару месяцев назад я постил обсуждение со Swift Forums про то, что SwiftSyntax, зависимость на который неизбежна при использовании макросов, существенно замедляет сборку и усложняет менеджмент версий ваших зависимостей. В статье от Pointfree дается несколько советов по тому, как эти проблемы можно минимизировать. Статья в первую очередь ориентирована на авторов библиотек, но помочь может и разработчикам приложений.
www.pointfree.co
Being a good citizen in the land of SwiftSyntax
How can you be a good citizen in the new world of SwiftSyntax proliferation? Follow our advice to keep the greater Swift ecosystem healthy and thriving.
Fastlane переезжает в Mobile Native Foundation
В феврале я рассказывал про историю вокруг Fastlane. Если кратко, то по историческим причинам права на репозиторий принадлежали Google, который был совсем не заинтересован в развитии проекта. Так вот, все наконец-то закрутилось. Google согласился передать владение проектом в Mobile Native Foundation, который уже хостит несколько интересных вещей. Для Fastlane это в первую очередь развязывает руки для того, чтобы начать собирать донаты и гранты на оплату мейнтейнеров.
В феврале я рассказывал про историю вокруг Fastlane. Если кратко, то по историческим причинам права на репозиторий принадлежали Google, который был совсем не заинтересован в развитии проекта. Так вот, все наконец-то закрутилось. Google согласился передать владение проектом в Mobile Native Foundation, который уже хостит несколько интересных вещей. Для Fastlane это в первую очередь развязывает руки для того, чтобы начать собирать донаты и гранты на оплату мейнтейнеров.
GitHub
Moving fastlane to MNF · MobileNativeFoundation/discussions · Discussion #194
fastlane is currently being ignored by Google, yet still on their GitHub. That makes sponsoring difficult and also adding new maintainers. It is an extremely widely used project and the MNF seems l...
Skip – iOS-first кроссплатформа
Вышел первый релиз Skip – кроссплатформенной технологии, которая расчитана в первую очередь на айосеров. Основная идея – вы просто пишете Swift код, а он автоматически транспилится в нативное Android приложение. В чем суть:
👉Проприетарный транспилятор Swift->Kotlin автоматом переводит весь ваш код на Android
👉Стандартную библиотеку и Foundation заменяют написанные авторами библиотеки на Kotlin
👉SwiftUI код переводится в вызовы Kotlin-обертки поверх Jetpack Compose с похожим API
Вышел первый релиз Skip – кроссплатформенной технологии, которая расчитана в первую очередь на айосеров. Основная идея – вы просто пишете Swift код, а он автоматически транспилится в нативное Android приложение. В чем суть:
👉Проприетарный транспилятор Swift->Kotlin автоматом переводит весь ваш код на Android
👉Стандартную библиотеку и Foundation заменяют написанные авторами библиотеки на Kotlin
👉SwiftUI код переводится в вызовы Kotlin-обертки поверх Jetpack Compose с похожим API
X (formerly Twitter)
Abe White (@aabewhite) on X
I’m thrilled to announce the tech preview of Skip: dual-platform app development in Swift.
You write a modern iOS app in Swift and SwiftUI. Skip’s Xcode plugin generates a native Android Kotlin and Compose version!
Docs: https://t.co/9O7v6HS0CJ
Video:…
You write a modern iOS app in Swift and SwiftUI. Skip’s Xcode plugin generates a native Android Kotlin and Compose version!
Docs: https://t.co/9O7v6HS0CJ
Video:…
Улучшения в менеджменте бета-тестеров в TestFlight
Apple выкатил обновление TestFlight. Основная фича – расширенная статистика по всем бета-тестерам, включающая в себя количество сессий, пойманных крешей, отправленного фидбэка, и конкретную информацию про модель устройства и версию ОС.
Apple выкатил обновление TestFlight. Основная фича – расширенная статистика по всем бета-тестерам, включающая в себя количество сессий, пойманных крешей, отправленного фидбэка, и конкретную информацию про модель устройства и версию ОС.
Обзор всех улучшений логов в Xcode 15
👉Отображение разных видов метадаты
👉Скрытие записей, похожих друг на друга
👉Фильтрация по типу
👉Отображение разных видов метадаты
👉Скрытие записей, похожих друг на друга
👉Фильтрация по типу
Mojo – новый язык от Криса Латтнера
Крис Латтнер – разработчик LLVM и языковой дизайнер, который выпустил первые версии Swift, а потом ушел из Apple. Недавно я уже рассказывал, что он выпустил новый язык Mojo – надмножество Python с близким к С++ перфомансом, ориентированное на ML разработчиков.
Так вот, сначала короткая новость – Mojo SDK стал доступен для macOS, так что можете поиграться с языком.
Но самое интересное не новость, а слайды с выступления Латтнера и других разработчиков на LLVM Conference 2023 с подробнейшим разбором компилятора, языка и его принципов.
Крис Латтнер – разработчик LLVM и языковой дизайнер, который выпустил первые версии Swift, а потом ушел из Apple. Недавно я уже рассказывал, что он выпустил новый язык Mojo – надмножество Python с близким к С++ перфомансом, ориентированное на ML разработчиков.
Так вот, сначала короткая новость – Mojo SDK стал доступен для macOS, так что можете поиграться с языком.
Но самое интересное не новость, а слайды с выступления Латтнера и других разработчиков на LLVM Conference 2023 с подробнейшим разбором компилятора, языка и его принципов.
Modular
Modular: Mojo 🔥 - A systems programming language presented at LLVM 2023
Jeff, Abdul, and Chris presented a talk about Mojo and how it relates to MLIR and LLVM, at the LLVM Developer Conference 2023.
Эволюция мобильных релизов в Авито
Когда я работал в Авито, я в том числе руководил и командой, которая занималась релизами мобильных приложений. Уже тогда у них были построены супер крутые процессы и инфра (мы даже подкаст про это записали). На прошлой неделе ребята выложили статью, где рассказали про то, как они прокачали свой релизный процесс за последние пять лет:
👉Автоматизация мониторинга отзывов и крешей
👉Релизы, которые катятся каждую неделю вообще без участия людей
👉Дэшборд с текущим статусом всех релизов
👉Сервис релизов, который менеджерит все зависимости по определенным контрактам
Когда я работал в Авито, я в том числе руководил и командой, которая занималась релизами мобильных приложений. Уже тогда у них были построены супер крутые процессы и инфра (мы даже подкаст про это записали). На прошлой неделе ребята выложили статью, где рассказали про то, как они прокачали свой релизный процесс за последние пять лет:
👉Автоматизация мониторинга отзывов и крешей
👉Релизы, которые катятся каждую неделю вообще без участия людей
👉Дэшборд с текущим статусом всех релизов
👉Сервис релизов, который менеджерит все зависимости по определенным контрактам