Наконец, добрался до Cocoaheads Paris и единственный доклад который зацепил меня-про диплинки. Тема мне интересна, я сам выступал с докладом
👉 Unit тестирование навигации
👉 UI тестирование навигации
👉 Отложенная авторизация
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Forwarded from Android Broadcast (Кирилл Broadcast)
Вышел новый релиз Emcee - решения для ускорения прогонов тестов для Android и iOS. Что нового (иконкой помечена категория)
🤖 Реализовали новый способ запуска тестов - через командную строку с помощью JAR
🤖 Поддержали запись видео прогонов тестов.
🍎 Поддержали новый механизм дискаверинга тестов — runtimeXCTest.
🍎 Теперь можно запускать тесты таких альтернативных фреймворков, как Quick, Kiwi и других.
🍎 Улучшили управление ресурсами и процессами очистки и поменяли уровень подробностей логов с trace на debug. Без лишней детализации проще находить и анализировать проблемы в коде. А чем больше свободных ресурсов, тем быстрее скорость следующих запусков
☁️ Поддержали запуск Appium-тестов
☁️ Выкатили Emcee.cloud Actions - интеграция Emcee Cloud в GitHub Actions
Emcee для iOS можно скачать из GitHub , а для Android - образ на Docker Hub. Как вариант попробовать все через Emcee Cloud.
#tooling #testing
☁️ Поддержали запуск Appium-тестов
☁️ Выкатили Emcee.cloud Actions - интеграция Emcee Cloud в GitHub Actions
Emcee для iOS можно скачать из GitHub , а для Android - образ на Docker Hub. Как вариант попробовать все через Emcee Cloud.
#tooling #testing
Please open Telegram to view this post
VIEW IN TELEGRAM
Не очевидное место оптимизаций для
SwiftUI
. Сам я не задумывался раньше что стертый тип View
может привести не только к увеличению времени компиляции но и к проблемам в производительности. В статье рассматривается, когда стоит использовать конкретные типы для разных View в контейнерах. Так же подсвечивается не очевидный момент с тем что использование if-else
приводит к той же ситуации что и использование AnyView
.Каковы ваши впечатления от
AnyView
? Вы широко использовали его и заметили ли вы какое-либо снижение производительности?Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Вторая стадия ревью SE-0410: Atomics завершилась 2 января, и группа по развитию Swift приняла это предложение с изменениями в названиях протоколов. В чем суть предложения?
Пропоузал добавляет в стандартную библиотеку Swift ограниченный набор атомарных операций низкого уровня, включая собственные варианты написания для упорядочения памяти в стиле C++. Главная цель — дать возможность авторам и разработчикам библиотек, пишущим код системного уровня, начать создавать конструкции синхронизации непосредственно в Swift. Эта библиотека может быть полезна и в обычной разработке, но ей точно не стоит злоупотреблять. Несмотря на соблазнительность такого подхода, атомарные операции предназначены для низкоуровневого кода и в продуктовом коде сильно ухудшают читабельность
Please open Telegram to view this post
VIEW IN TELEGRAM
Мы часто создаем функции в наших приложениях, которые, как мы уверены, понравятся людям, но предоставить пользователям возможность их обнаружить может быть непросто. TipKit, представленный на WWDC23, представляет собой платформу, предназначенную для отображения полезных советов в вашем приложении. Его цель — информировать пользователей о новых функциях, раскрывать скрытые функции или оптимизировать выполнение задач.
В этом туториале показывается на примере, как создавать и отображать подсказки в приложении, разработанном на SwiftUI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1
Отличный пример пет проекта. Автор разбирается с CoreAudio, рассказывая о своем опыте написания простого приложения для личных целей. В статье разбираются такие элементы как:
👉 AVFoundation
👉 AVAudioEngine
👉 AVAudioFile
В конце ссылка на github с исходниками. Отличный шанс за 3 минуты ознакомиться с базовыми элементами CoreAudio на примере
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3
Forwarded from Android Broadcast (Кирилл Розов)
Чтобы сделать ваше приложение доступным для всех людей важно знать про Accessibility
и как работать с ней при создании приложения. Читайте статью с подборкой материалов для Android и iOS
#accessibility
и как работать с ней при создании приложения. Читайте статью с подборкой материалов для Android и iOS
#accessibility
🔥2👍1
🗓 Предзаказ 19 января
🗓 Старт продаж 2 февраля
🔗 Human Interface Guidelines для интерфейсов
🔗 Пошаговый план для разработчиков
🔗 Сессия WWDC23 про разработку интерфейсов для visionOS
💰 Цена от 3499$. Верите в успех Vision Pro? 👍/🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔19👍14
Вчера вышла релизная версия Xcode 15.2, что нового?
🐛 Исправили копирование символов отладки из Apple Watch, работающих с Beta 2
🐛 16 Исправлений для разработки под visionOS
⚠️ Разработка для visionOS требует M серии чипов, Intel 🫡
В целом мигрировать билд инфраструктуру или срочно обновлять не обязательно. Основные изменения связаны с visionOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple Developer Documentation
Xcode 15.2 Release Notes | Apple Developer Documentation
Update your apps to use new features, and test your apps against API changes.
❤3👍1🔥1
Forwarded from Android Broadcast (Кирилл Розов)
Сертификация от GitHub стала доступной всем. Хотите получить лычки и иметь преимущства перед работадателем и заказчиками - с вас 200$ за попытку прохождения. Направления 4:
👉 GitHub Foundations
👉 GitHub Actions
👉 GitHub Advanced Security
👉 GitHub Administration
#github
👉 GitHub Foundations
👉 GitHub Actions
👉 GitHub Advanced Security
👉 GitHub Administration
#github
🤔8
В Swift 5.9 появился Observation фреймворк, но, к сожалению, он работает только в iOS 17+. Большинство разработчиков не смогут использовать эти инструменты еще несколько лет. Point-Free реализовали свой бекпорт Observable для iOS 13+, Perception и выпустили его как библиотеку с MIT лиценцией
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
У большинства приложений есть Debug меню, которые служат для целей тестирования. Но зачастую выглядят они значительно хуже чем само приложение. Данная библиотека предлагает простой способ исправить это, а за счет условий компиляции
#if debug
можно добиться исключения этой зависимости из релизной сборки. Что предлагает нам эта библиотека:
👉 Поиск из коробки
👉 Простой, но мощный синтаксис (на базе Result builders)
👉 Создание вложенных страниц и групп
👉 Встроенная интеграция со SwiftUI и AppStorage
👉 Поставляется с готовыми компонентами: тумблер, кнопка, слайдер и т. д.
👉 Динамическое отображение и скрытие компонентов
👉 Поддержка на iOS и macOS
👉 MIT License
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Простые, но понятные советы от 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
в приложениях SwiftUI, на примерах. В статье разбираются:👉 View Modifiers
👉 View Extensions
👉 View Builders
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
iOS Broadcast
Производительность макроса Observable в сравнении с ObservableObject
Вот почему Perception - бекпорт Observable на iOS 13+ это важно.
Макрос
Вот почему Perception - бекпорт Observable на iOS 13+ это важно.
Макрос
@Observable
упрощает код на уровне реализации и повышает производительность SwiftUI View, предотвращая ненужную перерисовку. Можно начать мигрировать на Perception уже сейчас, а после сразу получить нативный Observable, при поднятии таргета. Вам больше не требуется использовать @ObservedObject
, ObservableObject и @Published
. Однако вам все равно придется использовать @State
для создания единого источника данных для модели.SwiftLee
@Observable Macro performance increase over ObservableObject
The @Observable macro replaces ObservableObject, @ObservedObject, and @Published. Increase the performance of your SwiftUI views.
👍10❤1
Бутылочное горлышко загрузки большинства экранов-транспортный уровень. Но не всегда проблема кроется в пропускной способности сети. В Xcode есть инструмент Network, способный помочь с выявлением проблем. Он не так хорош как Charles или Proxyman, но предоставляет нативные средства для базовой идентификации проблемы.
Please open Telegram to view this post
VIEW IN TELEGRAM