Лонгрид с примерами на все выходные, самый обширный разбор использования нового фреймворка для тестирования! Просто перечислю основные моменты, которые разбираются в статье:
Даже из списко разобранных тем понятно что это достойно!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Находка дня: удобный опенсорсный клиент для работы с локальными LLM моделями. Если вы используете на работе GPT, скорее всего вам это не нужно. Но если у вас есть ограничения и нужно гонять локальные модели, то этот клиент выглядит идеально
Доступен в AppStore и Github
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
При создании новой версии приложения необходимо предоставить рекламный текст и заполнить секцию что нового - это поля, которые редко меняются, однако по умолчанию Apple не заполняет его значением предыдущей версии.
В этой статье приводится пример использования AppStoreConnect API для автоматизации релизной рутины. В целом, ничего особенного, но как пример работы с API из Swift - интересный пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
SDUI становится все популярнее, но каждый реализует свой велосипед, из-за специфики требований.В статье приводится подробный пример реализации простого пользовательского Server-Driven интерфейса и ключевые советы по реализации и лучшие практики.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤔2
Сейчас у многих, в рамках работы с рисками, идет отказ от Firebase Crashlytics. Для меня весь тулинг Firebase был спорным, раз это бесплатный продукт от Google, значит товар это данные наших пользователей. Раньше можно было вырезать всю аналитику кроме Crashlytics, сейчас минимальный набор данных все равно трекается. Какие есть альтернативы? Инструмент с открытыми исходниками от Microsoft - PLCrashReporter. Библиотека обнаруживает сбои и генерирует отчеты, которые помогут вам в расследовании и устранении неполадок, предоставляя информацию о приложении, системе, процессе, потоке и т.д., а также трассировку стека. Из коробки он интегрируется с AppCenter, что идентично продажа данных пользователей. Однако, в последних релизах появилась возможность использовать PLCrashReporter напрямую.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6👍1🔥1
Главная тема на сегодня это синий экран смерти. Забавный факт о нем: на презентации Windows 98, при подключении к демонстрационному компьютеру сканера произошла фатальная ошибка с синим экраном смерти, в тот момент Гейтс отшутился: «Должно быть, именно поэтому мы пока и не продаём Windows 98». 2024 год, рекомендация Microsoft для всех, кого затронул сегодняшний сбой: перезагрузите Windows 15 раз
📱 Реализация бесконечного 4-направленного постаничного скролла
В статье рассматривается реализация пейджера с возможностью прокрутки в четырех направлениях на SwiftUI. Статья интересна разбором ограничений SwiftUI и оригинальными решения по их обходу. Если вы еще не реализовывали бесконечный пейджер, статья однозначно достойна прочтения
В статье рассматривается реализация пейджера с возможностью прокрутки в четырех направлениях на SwiftUI. Статья интересна разбором ограничений SwiftUI и оригинальными решения по их обходу. Если вы еще не реализовывали бесконечный пейджер, статья однозначно достойна прочтения
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👏1
Что нового для SwiftUI в iOS 18
Каждый год Apple дорабатывает SwiftUI, в этом году не только появилось много нового, но и изменились нюансы. Главное изменение в том, что
🟢 Эффекты и анимации при работе с текстом
🟢 Анимации переходов
🟢 API для получения цвета путем смешения
🟢 Градиента типа Mesh
🟢 Модификатор onGeometryChange для подписки на изменение размера
🟢 Модификатор onScrollGeometryChange для работы со скроллом
🟢 TabView, аналог UITabBarController
🟢 Асинхронный метод compile для работы с шейдерами
Каждый год Apple дорабатывает SwiftUI, в этом году не только появилось много нового, но и изменились нюансы. Главное изменение в том, что
View
теперь аттрибуцирован @MainActor
, это значит, что свойство body вместе со всеми другими свойствами и методами, которые мы создаем, запускаются в главном акторе. Раньше это относилось только к содержимому body
. Ну и множество нововведений:Please open Telegram to view this post
VIEW IN TELEGRAM
KMM отладка пришла в Xcode!
Давно я не трогал Kotlin Multiplatform и чем больше я его не пробую, тем лучше он становится, продолжу, пожалуй, не трогать дальше (шутка). Что меня поразило, это обновление xcode-kotlin, плагина LLDB. Удивительно, но он обеспечивает полную поддержку визуальной отладки Kotlin Multiplatform в Xcode, включая поддержку смешивания языков в одном сеансе дебага. Если у вас есть опыт с KMP проектом, расскажите, как оно сейчас, все еще нужно одновременно держать Xcode и Android Studio?
Ключевые изменения:
🟢 Производительность отладки до 5 раз быстрее
🟢 Расширена информация по каждой переменной
🟢 Работает в коде Swift, Kotlin и Objective-C
*xcode-kotlin опенсорсный и доступен через Homebrew
Давно я не трогал Kotlin Multiplatform и чем больше я его не пробую, тем лучше он становится, продолжу, пожалуй, не трогать дальше (шутка). Что меня поразило, это обновление xcode-kotlin, плагина LLDB. Удивительно, но он обеспечивает полную поддержку визуальной отладки Kotlin Multiplatform в Xcode, включая поддержку смешивания языков в одном сеансе дебага. Если у вас есть опыт с KMP проектом, расскажите, как оно сейчас, все еще нужно одновременно держать Xcode и Android Studio?
Ключевые изменения:
*xcode-kotlin опенсорсный и доступен через Homebrew
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3
Опубликовали мой доклад с прошедшего мобиуса. Если вы не знаете что такое CRDT но в вашем приложении есть какое-либо хранилище, настоятельно советую к просмотру ☺️
Forwarded from Mobius — канал конференции
#видеозаписи
Слова «Вам не нужно хранилище в приложении» звучат провокационно, но iOS-доклад Андрея Зонова — не просто «наброс», а вполне серьезное рассуждение. Что тогда скрывается за этими словами? В этот #МобильныйВторник открываем видеозапись, так что можете увидеть сами.
Слова «Вам не нужно хранилище в приложении» звучат провокационно, но iOS-доклад Андрея Зонова — не просто «наброс», а вполне серьезное рассуждение. Что тогда скрывается за этими словами? В этот #МобильныйВторник открываем видеозапись, так что можете увидеть сами.
👍11🤔1
Еще один полезный опенсорсный фреймворк от ребят из PointFree. Issue Reporting - это удобная обертка для работы с ошибками в рантайме. Как обычно, фокус на читабельность и тестируемость.
reportIssue
- функция, позволяющая отметить блоки кода, в которые программа не должна была попасть. Ее можно настроить:Что важно, за счет интеграции с
XCTest
и новым Swift Testing
, тесты, в рамках которых программа будет попадать в блоки с reportIssue
будут падать. Если у вас в продукте есть уже подход к репортингу ассертов, можно создать кастомную конфигурацию, например отправку события на сервер или формирование письма с трейсомPlease open Telegram to view this post
VIEW IN TELEGRAM
👍2
Режимы наложения слоев в SwiftUI
Не все знакомы с режимами наложения в SwiftUI, а ведь их можно применять не только к изображениям, но и к тексту или даже к контейнеру, содержащему несколько элементов. Режимы наложения, как следует из названия, позволяют смешивать цвета нескольких слоев пикселей, используя математические формулы для определения влияния каждого пикселя на конечное изображение. Вы можете комбинировать любое количество слоев, но, как минимум, вам понадобятся 2 слоя - базовый слой и слой наложения. В статье подробно рассмотривается логика наложения слоев, почему она важна, и как она реализована с точки зрения математики. Простая статья - гайд, которую можно показать дизайнеру или использовать самому при реализаци интерфейса
Не все знакомы с режимами наложения в SwiftUI, а ведь их можно применять не только к изображениям, но и к тексту или даже к контейнеру, содержащему несколько элементов. Режимы наложения, как следует из названия, позволяют смешивать цвета нескольких слоев пикселей, используя математические формулы для определения влияния каждого пикселя на конечное изображение. Вы можете комбинировать любое количество слоев, но, как минимум, вам понадобятся 2 слоя - базовый слой и слой наложения. В статье подробно рассмотривается логика наложения слоев, почему она важна, и как она реализована с точки зрения математики. Простая статья - гайд, которую можно показать дизайнеру или использовать самому при реализаци интерфейса
Иногда встречается необходимость внутри структуры создать свойство с типом самой структуры. Из-за того что структуры в Swift это ValueType, это невозможно, без обертки в виде коллекции. Если вы не хотите прибегать к таким хакам или переходить на классы - можно написать достаточно простую обертку самому. Вроде, очевидно, но раз про это пишут статью, это кому-то полезно
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8