CocoaPods переходит в maintenance режим
Команда CocoaPods официально перевела проект из режима активной разработки в режим поддержки.
Что с проектом будет происходить:
👉Будут закрывать все уязвимости
👉Два раза в год будут выходить релизы для совместимости с Xcode
👉Инфра сайта будет поддерживаться в относительно рабочем состоянии
👉Могут приниматься сторонние PR
Чего не будет:
👉Не будут решаться проблемы отдельных людей
👉Команда проекта не будет добавлять новые фичи
👉Никаких гарантий по сторонним PR и их рассмотрению не дается
Ну и в целом команда рекомендует всем мигрировать на SwiftPM, и со временем будет еще больше отходить от проекта.
Команда CocoaPods официально перевела проект из режима активной разработки в режим поддержки.
Что с проектом будет происходить:
👉Будут закрывать все уязвимости
👉Два раза в год будут выходить релизы для совместимости с Xcode
👉Инфра сайта будет поддерживаться в относительно рабочем состоянии
👉Могут приниматься сторонние PR
Чего не будет:
👉Не будут решаться проблемы отдельных людей
👉Команда проекта не будет добавлять новые фичи
👉Никаких гарантий по сторонним PR и их рассмотрению не дается
Ну и в целом команда рекомендует всем мигрировать на SwiftPM, и со временем будет еще больше отходить от проекта.
Новая функция count(where:) в Swift 6
В Swift 6 завезли не только strict concurrency, но и другие фичи. Среди них – новая функция
В Swift 6 завезли не только strict concurrency, но и другие фичи. Среди них – новая функция
count(where:)
, которая позволяет посчитать, сколько элементов в коллекции удовлетворяют какому-то условию.Nil Coalescing
Count the number of objects that pass a test in Swift using count(where:)
Efficiently count the number of elements in a sequence that satisfy the given condition with the new count(where:) method introduced in Swift 6.
Как тестируется компилятор
Про Swift я ничего в этом плане не знаю, но зато можно почитать про то, как обеспечивается качество Kotlin/Native, в том числе тестируется интероп с Objective-C.
Про Swift я ничего в этом плане не знаю, но зато можно почитать про то, как обеспечивается качество Kotlin/Native, в том числе тестируется интероп с Objective-C.
foojay
How does it feel to test a compiler?
My experience testing compilers, focusing on the Kotlin/Native compiler and how I got into compiler testing, the tasks involved, the tools I use, and the knowledge required for this work.
Браузер Ladybird перепишут на Swift
Swift начинают выбирать на замену С++ как альтернативу Rust на реальных проектах. В этот раз про свой выбор рассказывают разработчики независимого браузера Ladybird, ядро которого они планируют постепенно переписать с С++ на Swift.
Swift начинают выбирать на замену С++ как альтернативу Rust на реальных проектах. В этот раз про свой выбор рассказывают разработчики независимого браузера Ladybird, ядро которого они планируют постепенно переписать с С++ на Swift.
Как записывать крутые демо видео
Подборка рекомендаций по тому, как записывать топовые видео с демками новых фичей. Мне нравится сама идея того, что они получаются гораздо более живыми, когда вы захваьываете руку с устройством.
Подборка рекомендаций по тому, как записывать топовые видео с демками новых фичей. Мне нравится сама идея того, что они получаются гораздо более живыми, когда вы захваьываете руку с устройством.
Medium
How to film an aesthetic demo of your prototype
Lately, I started sharing my prototypes on Twitter(x, whatever) and have enjoyed the process. The positive feedback I received from viewers…
Релиз Skip 1.0
Skip, инструмент, транспилирующий Swift в Kotlin, а SwiftUI в Compose, релизнул версию 1.0. Сам по себе Skip платный и частично closed source, но с релизом стабильной версии появился новый бесплатный тариф для инди.
Вот тут можно посмотреть, как Skip работает.
Skip, инструмент, транспилирующий Swift в Kotlin, а SwiftUI в Compose, релизнул версию 1.0. Сам по себе Skip платный и частично closed source, но с релизом стабильной версии появился новый бесплатный тариф для инди.
Вот тут можно посмотреть, как Skip работает.
Пробуем Swift для Embedded разработки
Помимо Apple Intelligence на WWDC были и другие заметные анонсы. Один из них – использование Swift для программирования микроконтроллеров и прочего эмбеда. По ссылке – несколько видеотуториалов, рекомендации по покупке железок для старта и их траблшутингу.
Помимо Apple Intelligence на WWDC были и другие заметные анонсы. Один из них – использование Swift для программирования микроконтроллеров и прочего эмбеда. По ссылке – несколько видеотуториалов, рекомендации по покупке железок для старта и их траблшутингу.
Super Easy Apps
Embedded Swift Tutorial - Getting Started (Everything you need to know)
Apple announced Embedded Swift development at WWDC 2024. This new development target allows you to start coding for non-Apple hardware using Swift.
I took a deep dive into Embedded Swift this week and shared two videos to kickstart any Embedded Swift project…
I took a deep dive into Embedded Swift this week and shared two videos to kickstart any Embedded Swift project…
Пошаговый разбор Swift Concurrency на примере загрузки изображения
Загрузка изображения из сети – одна из самых базовых задач, с которыми сталкивается разработчик. На ее примере автор разбирает основные концепции Swift Concurrency, чтобы отучить вас от магического мышления.
Загрузка изображения из сети – одна из самых базовых задач, с которыми сталкивается разработчик. На ее примере автор разбирает основные концепции Swift Concurrency, чтобы отучить вас от магического мышления.
massicotte.org
Concurrency Step-by-Step: A Network Request
When I was first learning to program I had absolutely no idea what I was doing. I was using C, and I remember desperately putting in * and & characters until things compiled. But, this was pre-Mac OS X. Upon running my horrifically incorrect programs, half…
Рекурсивные enum'ы
Ключевое слово
Ключевое слово
indirect
позволяет реализовывать рекурсию в enum'ах. В статье разбирается, как с использованием этого свойства можно смоделировать файловую систему.Nil Coalescing
Recursive enums in Swift
This post explains how to use recursive enums in Swift, including the indirect keyword, to effectively model and manage complex, hierarchical data structures.
Tophat – open source проект для распространения билдов внутри компании
Помните, я на прошлой неделе рассказывал про Tuist Previews? Так вот, Shopify опенсорснули очень похожую штуку. Все ветки автоматически билдятся на CI, артефакты заливаются в отдельное хранилище, ссылки на них линкуются к PR, и дополнительно доступны через отдельное macOS приложение. Выглядит очень удобно, посмотрите!
Помните, я на прошлой неделе рассказывал про Tuist Previews? Так вот, Shopify опенсорснули очень похожую штуку. Все ветки автоматически билдятся на CI, артефакты заливаются в отдельное хранилище, ссылки на них линкуются к PR, и дополнительно доступны через отдельное macOS приложение. Выглядит очень удобно, посмотрите!
Swift Testing становится частью основного тулчейна
Swift Testing, который сначала дали попробовать в виде отдельного пакета, подливают в основую рабочую ветку Swift, и с момента релиза Swift 6.0 он официально станет его частью.
Swift Testing, который сначала дали попробовать в виде отдельного пакета, подливают в основую рабочую ветку Swift, и с момента релиза Swift 6.0 он официально станет его частью.
Swift Forums
An update about Swift Testing in the Swift 6 toolchain
Dearest Swift Testing adopters! If you happened to download the 2024-08-19 main-branch toolchain, you might have noticed that Swift Testing is included! 🥳 We're inching closer to adding Swift Testing into the Swift 6 toolchain, and I wanted to let you all…
Простое приложение на Swift/WebAssembly
Ребята из Pointfree запустили новую серию видео, в рамках которой они будут разрабатывать кроссплатформенное приложение, запускающееся как на iOS, так и в браузере, с помощью экспериментального компилятора Swift в WebAssembly.
Ребята из Pointfree запустили новую серию видео, в рамках которой они будут разрабатывать кроссплатформенное приложение, запускающееся как на iOS, так и в браузере, с помощью экспериментального компилятора Swift в WebAssembly.
www.pointfree.co
Episode #291: Cross-Platform Swift: WebAssembly
We are going to take a Swift feature into the browser. We will set up a WebAssembly application from scratch, show how to run and debug it, and even set up some basic UI. And then we will integrate our existing model into it, all powered by the magic of Swift’s…
Typed throws в Swift 6.0
Еще одно quality of life улучшение в Swift 6 – возможность в явном виде указать тип ошибки, которую может выбросить функция. При этом вы можете продолжать писать код как и раньше, не указывая конкретный тип – компилятор сам приведет его к
Еще одно quality of life улучшение в Swift 6 – возможность в явном виде указать тип ошибки, которую может выбросить функция. При этом вы можете продолжать писать код как и раньше, не указывая конкретный тип – компилятор сам приведет его к
any Error
.Как писать тесты на утечки памяти
Возможность генерировать граф потребления памяти вместе с прогоном UI тестов появилась еще в Xcode 13. В статье разбирается, как с ее помощью можно автоматически отлавливать утечки памяти на CI.
Возможность генерировать граф потребления памяти вместе с прогоном UI тестов появилась еще в Xcode 13. В статье разбирается, как с ее помощью можно автоматически отлавливать утечки памяти на CI.
www.polpiella.dev
How to automatically detect memory leaks on CI/CD using UI tests
Learn how to automatically detect memory leaks in your Apple apps using UI tests and Xcode's XCTest framework.
Conditional брейкпойнты могут замедлять работу приложения
Отличная история дебага неочевидной проблемы с перфомансом, в которой сам дебаггер и оказался главным виновником.
Отличная история дебага неочевидной проблемы с перфомансом, в которой сам дебаггер и оказался главным виновником.
Twocentstudios
Reminder: Conditional Breakpoints are Slow
Как не надо использовать DeviceCheck Framework
DeviceCheck фреймворк дает возможность записать произвольную информацию размером в два бита на приложение. Эта информация будет сохраняться между всеми переустановками приложения, стиранием данных и даже при смене владельцев телефона. В статье рассказывается, как из-за того, что Snapchat использовал эти два бита, чтобы сохранять информацию о статусе бана пользователя, новый владелец айфона не мог пользоваться их приложением.
DeviceCheck фреймворк дает возможность записать произвольную информацию размером в два бита на приложение. Эта информация будет сохраняться между всеми переустановками приложения, стиранием данных и даже при смене владельцев телефона. В статье рассказывается, как из-за того, что Snapchat использовал эти два бита, чтобы сохранять информацию о статусе бана пользователя, новый владелец айфона не мог пользоваться их приложением.
Finnvoorhees
Apple Repaired My iPhone Screen, but Now My Social Media Account Is Banned
Как держать версии зависимостей актуальными
👉Назначаем ответственного за каждый из уже добавленных пакетов. Роль ответственного – обновлять его версии, когда они выходят.
👉С помощью пакета swift-outdated следим на CI за появлением новых версий.
👉Если новая версия появляется, пишем об этом в Slack и меншним ответственного.
👉Если внезапно у какого-то пакета нет ответственного, кидаем ошибку.
👉Назначаем ответственного за каждый из уже добавленных пакетов. Роль ответственного – обновлять его версии, когда они выходят.
👉С помощью пакета swift-outdated следим на CI за появлением новых версий.
👉Если новая версия появляется, пишем об этом в Slack и меншним ответственного.
👉Если внезапно у какого-то пакета нет ответственного, кидаем ошибку.
Alejandro M. P.
Swift Package Manager Dependency Owners | Alejandro M. P.
In my team, one of the things we always make sure of is keeping our dependencies up to date. We rarely add a dependency without a really good reason, and when we do, we assign an owner who is responsible for keeping it up to date.
EditorConfig в Xcode 16
В Xcode 16 появилась возможность программно задавать настройки редактора, которые зависят от текущего открытого проекта. Например, в одном проекте максимальная длина строки кода может быть 120 символов, а в другом – без ограничений.
В Xcode 16 появилась возможность программно задавать настройки редактора, которые зависят от текущего открытого проекта. Например, в одном проекте максимальная длина строки кода может быть 120 символов, а в другом – без ограничений.
Большой доклад про стратегию автотестирования iOS приложений
Михаил Рубанов, статьями которого я тут регулярно делюсь, сделал классный доклад про различные виды автотестов в iOS: чем различаются, как сочетать, и как выбрать правильную стратегию покрытия ими именно для вашего проекта.
Михаил Рубанов, статьями которого я тут регулярно делюсь, сделал классный доклад про различные виды автотестов в iOS: чем различаются, как сочетать, и как выбрать правильную стратегию покрытия ими именно для вашего проекта.
YouTube
QA GURU Михаил Рубанов «Стратегия автотестирования для iOS приложений»
00:00 - Начало
00:35 - Покрытие тестами крупного проекта
03:23 - Виды тестов
8:30 - UI-тесты
14:00 - Интеграционные/Компонентные тесты
25:45 - Снепшот-тестирование
31:00 - Скриншот-тесты
42:50 - Юнит-тесты
47:57 - Разработка через тестирование
56:00 - Вопросы…
00:35 - Покрытие тестами крупного проекта
03:23 - Виды тестов
8:30 - UI-тесты
14:00 - Интеграционные/Компонентные тесты
25:45 - Снепшот-тестирование
31:00 - Скриншот-тесты
42:50 - Юнит-тесты
47:57 - Разработка через тестирование
56:00 - Вопросы…