Primary associated types
В посте разбирается новая фича Swift 5.7 – primary associated types для протоколов, и приводится пример, как ее использование позволяет избавиться от AnyCollection и получить 15% прирост в рантайм перфомансе.
В посте разбирается новая фича Swift 5.7 – primary associated types для протоколов, и приводится пример, как ее использование позволяет избавиться от AnyCollection и получить 15% прирост в рантайм перфомансе.
Kotlin Multiplatform Mobile вышел в Beta
- KMM – SDK для шаринга бизнес-логики между iOS и Android.
- Спустя два года в статусе Alpha, на прошлой неделе KMM вышел в Beta.
- За это время была решена основная боль разработчиков – сложный механизм управления памятью.
- Одновременно с релизом KMM в Beta, Google выпустил мультиплатформенные версии двух Jetpack библиотек – Collections и DataStore.
- Детальное видео анонса с планами на будущее и новыми кейсами использования.
- KMM – SDK для шаринга бизнес-логики между iOS и Android.
- Спустя два года в статусе Alpha, на прошлой неделе KMM вышел в Beta.
- За это время была решена основная боль разработчиков – сложный механизм управления памятью.
- Одновременно с релизом KMM в Beta, Google выпустил мультиплатформенные версии двух Jetpack библиотек – Collections и DataStore.
- Детальное видео анонса с планами на будущее и новыми кейсами использования.
The JetBrains Blog
Kotlin Multiplatform Mobile Is in Beta – Start Using It Now! | The Kotlin Blog
Kotlin Multiplatform Mobile – a technology that allows developers to share the logic of iOS and Android apps – is now in Beta and is on track to becoming Stable!
Swift как часть OS: плохо это или хорошо
Начиная со Swift 5.0, рантайм бандлится во все операционные системы, и вам не нужно включать его в свое приложение. В лонгриде инженер Apple рассказывает про трейдоффы этого решения, механизмы, которые упрощают поддержку обратной совместимости, и альтернативы, которые были у Apple.
Начиная со Swift 5.0, рантайм бандлится во все операционные системы, и вам не нужно включать его в свое приложение. В лонгриде инженер Apple рассказывает про трейдоффы этого решения, механизмы, которые упрощают поддержку обратной совместимости, и альтернативы, которые были у Apple.
This media is not supported in your browser
VIEW IN TELEGRAM
Blurhash и Image Segmentation
Держите идею для карусели, которую можно реализовать с помощью алгоритма Blurhash и Vision framework.
Держите идею для карусели, которую можно реализовать с помощью алгоритма Blurhash и Vision framework.
Роадмап TCA до версии 1.0
- TCA была выпущена больше двух лет назад, и все еще находится в стадии Beta
- За последний год вышло два крупных релиза: Concurrency и Protocol
- Единственная крупная фича, которую осталось реализовать до версии 1.0 – полноценная навигация
- Скорее всего, в версии 1.0 дропнут поддержку iOS 13 и Swift 5.6
- TCA была выпущена больше двух лет назад, и все еще находится в стадии Beta
- За последний год вышло два крупных релиза: Concurrency и Protocol
- Единственная крупная фича, которую осталось реализовать до версии 1.0 – полноценная навигация
- Скорее всего, в версии 1.0 дропнут поддержку iOS 13 и Swift 5.6
Подборка из 1000 инструментов для iOS разработки
Авторы рассылки iOS Dev Tools собрали в одном репозитории все инструменты для iOS разработки, на которые они писали обзоры: аналитика, дебаг, деплой, нетворкинг, монетизация, локализация и куча других категорий.
Авторы рассылки iOS Dev Tools собрали в одном репозитории все инструменты для iOS разработки, на которые они писали обзоры: аналитика, дебаг, деплой, нетворкинг, монетизация, локализация и куча других категорий.
Неявные аннотации в SwiftUI и их влияние на .task
- Протокол View добавляет аннотацию MainActor своему свойству body
- View.task добавляет аннотацию _inheritActorContext своему параметру action
- Поэтому при использовании .task внутри body можно вызывать MainActor функции без await
- Протокол View добавляет аннотацию MainActor своему свойству body
- View.task добавляет аннотацию _inheritActorContext своему параметру action
- Поэтому при использовании .task внутри body можно вызывать MainActor функции без await
Горизонтальный скролл в секциях UICollectionView с помощью orthogonalScrollingBehavior
- До iOS 13 горизонтальный скролл секций внутри коллекции реализовывался с помощью UIScrollView
- В iOS 13 все упростилось с появлением
- В посте разбирается, как переехать на новый способ организации лэйаута
- До iOS 13 горизонтальный скролл секций внутри коллекции реализовывался с помощью UIScrollView
- В iOS 13 все упростилось с появлением
UICollectionViewCompositionalLayout
с поддержкой orthogonalScrollingBehavior- В посте разбирается, как переехать на новый способ организации лэйаута
Artur Gruchała
Bidirectional collection view with orthogonalScrollingBehavior
Before iOS 13, if you wanted to have a vertical collection view with horizontally scrolling sections it required embedding a scroll view inside the collection view cell, passing the model around, handling touch events, a lot of delegation, and complicated…
Возможное появление макросов в Swift
У любого языка программирования есть как минимум одна проблема: он либо не поддерживает макросы, либо, наоборот, поддержка макросов у него есть.
В Swift появился пропозал, который предлагает перевести язык из первой категории во вторую. Автор объясняет его смысл следующим образом. Многие новые языковые фичи – просто синтаксический сахар, который просто сокращает более сложные конструкции, а не позволяет делать что-то принципиально новое. Введение в язык таких фичей – сложный трейд-офф. Макросы помогут не переусложнять язык встроенным сахаром, а оставить его подключение на откуп каждому разработчику.
🤔Подробный пропозал
💬Обсуждение на форуме
У любого языка программирования есть как минимум одна проблема: он либо не поддерживает макросы, либо, наоборот, поддержка макросов у него есть.
В Swift появился пропозал, который предлагает перевести язык из первой категории во вторую. Автор объясняет его смысл следующим образом. Многие новые языковые фичи – просто синтаксический сахар, который просто сокращает более сложные конструкции, а не позволяет делать что-то принципиально новое. Введение в язык таких фичей – сложный трейд-офф. Макросы помогут не переусложнять язык встроенным сахаром, а оставить его подключение на откуп каждому разработчику.
🤔Подробный пропозал
💬Обсуждение на форуме
Twitter
For ages, Swift has had one problem: it has no macro system. Now we're excited to look forward to a new problem: it may have a macro system https://t.co/ZUgXgBCl12
Разборы системных приложений от канала Код Воробья
📆Как устроен Календарь: скролл с пейджингом и ячейки с двухслойными картинками для оптимизации скролла
🧮Как устроен Калькулятор: сцены и сетка кнопок на фреймах
👋Как устроен онбоардинг в App Store: UIScrollView и стеки вьюшек
Подписывайтесь на канал, помимо таких разборов там много других классных штук!
📆Как устроен Календарь: скролл с пейджингом и ячейки с двухслойными картинками для оптимизации скролла
🧮Как устроен Калькулятор: сцены и сетка кнопок на фреймах
👋Как устроен онбоардинг в App Store: UIScrollView и стеки вьюшек
Подписывайтесь на канал, помимо таких разборов там много других классных штук!
Книга про дженерики в Swift
Слава Пестов из команды Swift выложил первую часть книги про то, как работают дженерики под капотом:
- Какие ключевые идеи лежат в основе реализации дженериков
- Погружение в общие принципы работы компилятора Swift и его компонентов
- Детали реализации дженериков: разбор AST, generic signatures, substitution maps, conformances generic environments
👉Книгу можно прочитать в PDF, 219 страниц
Слава Пестов из команды Swift выложил первую часть книги про то, как работают дженерики под капотом:
- Какие ключевые идеи лежат в основе реализации дженериков
- Погружение в общие принципы работы компилятора Swift и его компонентов
- Детали реализации дженериков: разбор AST, generic signatures, substitution maps, conformances generic environments
👉Книгу можно прочитать в PDF, 219 страниц
Отображение имен функций в git diff
В статье рассказывается, как можно кастомизировать вывод команды git diff, чтобы вместо названий файлов, в которых произошли изменения, показывались заголовки конкретных функций.
В статье рассказывается, как можно кастомизировать вывод команды git diff, чтобы вместо названий файлов, в которых произошли изменения, показывались заголовки конкретных функций.
NavigationSplitView в SwiftUI
- NavigationSplitView позволяет реализовывать приложения с лэйаутом в несколько колонок.
- Его можно настроить для работы либо с двумя, либо с тремя колонками.
- Одна из вьюх автоматически заворачивается в сайдбар, две другие – в NavigationStack.
- Видимостью колонок можно управлять программно с помощью типа NavigationSplitViewVisibility.
- Также можно настраивать ширину колонок и их визуальный стиль.
- NavigationSplitView позволяет реализовывать приложения с лэйаутом в несколько колонок.
- Его можно настроить для работы либо с двумя, либо с тремя колонками.
- Одна из вьюх автоматически заворачивается в сайдбар, две другие – в NavigationStack.
- Видимостью колонок можно управлять программно с помощью типа NavigationSplitViewVisibility.
- Также можно настраивать ширину колонок и их визуальный стиль.
Flux на SwiftUI
Самая частая архитектура, использующаяся в связке со SwiftUI – MVVM. Но ее реализация часто доставляет много проблем и сложностей. 3 ноября пройдет вебинар Николая Балакланова, на котором он расскажет про архитектуру Flux и проведет воркшоп по реализации с ее помощью небольшого приложения. А сам вебинар является частью еще большего курса, на который вы тоже сможете записаться при желании – "iOS Developer. Professional" от OTUS.
Дата: 3 ноября, 20:00
Регистрация
Самая частая архитектура, использующаяся в связке со SwiftUI – MVVM. Но ее реализация часто доставляет много проблем и сложностей. 3 ноября пройдет вебинар Николая Балакланова, на котором он расскажет про архитектуру Flux и проведет воркшоп по реализации с ее помощью небольшого приложения. А сам вебинар является частью еще большего курса, на который вы тоже сможете записаться при желании – "iOS Developer. Professional" от OTUS.
Дата: 3 ноября, 20:00
Регистрация
Шаблоны для дизайна Live Activities от Apple
Apple добавили Sketch и XD шаблоны для макетов Live Activities.
Apple добавили Sketch и XD шаблоны для макетов Live Activities.
Xcode 14 Single Size App Icon
- В Xcode 14 появилась невероятная возможность – вместо ручной нарезки иконок приложения под разные размеры загрузить одно изображение 1024х1024, которое Xcode будет ресайзить сам.
- Эта фича доступна только для iOS и watchOS.
- Если вам нужно подкрутить дизайн иконок в зависимости от их размера, все еще можно задать их по отдельности.
- В Xcode 14 появились новые размеры иконок со сторонами 114px, 128px, 136px и 192px.
- В Xcode 14 появилась невероятная возможность – вместо ручной нарезки иконок приложения под разные размеры загрузить одно изображение 1024х1024, которое Xcode будет ресайзить сам.
- Эта фича доступна только для iOS и watchOS.
- Если вам нужно подкрутить дизайн иконок в зависимости от их размера, все еще можно задать их по отдельности.
- В Xcode 14 появились новые размеры иконок со сторонами 114px, 128px, 136px и 192px.
Как упростить Package.swift
Если вы подключаете одну и ту же зависимость сразу ко многим таргетам, вы можете вынести ее описание в отдельную переменную и переиспользовать ее. А вот тут можно посмотреть этот подход на максималках.
Если вы подключаете одну и ту же зависимость сразу ко многим таргетам, вы можете вынести ее описание в отдельную переменную и переиспользовать ее. А вот тут можно посмотреть этот подход на максималках.
Как работает звук
Главный лонгрид недели – Bartosz Ciechanowski, которого вы знаете по крутейшим интерактивным статьям о принципах работы GPS и механических часов, выпустил новый материал. В нем он разбирает основные принципы того, как в атмосфере передаются звуки, и что влияет на то, что именно мы слышим.
Главный лонгрид недели – Bartosz Ciechanowski, которого вы знаете по крутейшим интерактивным статьям о принципах работы GPS и механических часов, выпустил новый материал. В нем он разбирает основные принципы того, как в атмосфере передаются звуки, и что влияет на то, что именно мы слышим.