Telegram Web Link
История про то, как крупный опенсорсный проект переехал с лицензии Apache на BSL и стал платным

- Akka – микросервисный реактивный фреймворк, который распространялся по бесплатной лицензии Apache 2.0
- Им пользуется очень много людей, включая крупные корпорации вроде Disney
- На этой неделе его автор решил поменять лицензию на BSL 1.1, которая требует оплаты за коммерческое использование
- Лицензия применяется только к новым релизам фреймворка
- Такая ситуация может произойти и для любой мобильной зависимости. Поэтому, когда вы решаете построить все приложение поверх какого-то чужого опенсорс проекта, такой риск тоже стоит держать в уме
Не используйте escaping closures в SwiftUI

Автор показывает, как использование escaping closures в SwiftUI, которое многим может показаться более эффективным, на самом деле ломает memoization.
MarkCodable – сериализация Swift структур в Markdown

- Markdown – менее гибкий формат, чем JSON, но его можно использовать для хранения структурных данных. Его главный плюс – хорошая читаемость из коробки
- Сверстанные в markdown таблицы могут выступать в роли простой базы данных. А если залить их на GitHub, то вы получите готовый бэкенд для приложения
- Другие примеры использования Markdown-структур – конфигурационные файлы, хранение моков для тестов
Шаблон Figma для Dynamic Island

Забирайте готовый шаблон для создания виджета с анимированным переходом.
Улучшения перфоманса в ТСА

Вышел новый релиз The Composable Architecture, в котором был сделан упор на улучшения перфоманса. В статье разбираются все проблемные места предыдущей версии архитектуры, и то, как их полечили.
This media is not supported in your browser
VIEW IN TELEGRAM
Анимации в SwiftUI с Accelerate и VectorArithmetic

В статье пошагово разбирается, как реализовать анимацию лавового пузыря с быстрыми вычислениями на фреймворке Accelerate.
Fixes vs Patches

Любой код содержит ошибки – баги, эксепшны, проблемы перфоманса. Глобально к их исправлению можно подойти двумя способами:
☝️Пофиксить. Найти корневую причину проблемы, понять ее, исправить поведение системы и покрыть тестами.
✌️Запатчить. Не докапываясь до причины, сделать так, чтобы нежелательное поведение в данном конкретном случае больше не повторялось.

Ни один из способов нельзя назвать абсолютно верным, все зависит от контекста. Понимание различия между ними важно, чтобы правильно документировать последствия. Это менее важно для фиксов, но очень важно для патчей – иначе, спустя год, никто не сможет разобраться в костыле, который вы оставили.
Вышел Swift 5.7

Вместе с новыми iOS и Xcode вышла и новая версия Swift. В официальном блогпосте напоминают об основных изменениях в версии и дают список всех language proposals, которые были реализованы.
Редактирование navigationTitle в SwiftUI

В iOS 16 появилась возможность биндить navigationTitle к строке. С помощью этого можно дать пользователям возможность редактировать название открытой сейчас страницы прямо из тулбара с названием. Это может быть особенно удобно для приложений, работающих с документами.
Разбор причин долгого запуска разных приложений

Ребята из EmergeTools проанализировали несколько крупных приложений из App Store и рассказали, что замедляет время их старта.
This media is not supported in your browser
VIEW IN TELEGRAM
Сравнение принципов работы SwiftUI и Jetpack Compose

Jetpack Compose – декларативный UI фреймворк, на который сейчас активно переезжают Android разработчики. В статье его сравнивают со SwiftUI в вопросах лэйаута, работы со стейтом и инструментов.
GitHub бейджи для Xcode Cloud проектов

- В Readme опенсорсных проектов обычно добавляют бейджи, которые показывают текущий статус сборки – проходит или нет
- Для Xcode Cloud нативных бейджей пока нет
- В статье рассказывается, как с помощью shields.io автоматически генерировать бейдж, который будет показывать количество прошедших тестов
Архитектура системы кеширования

- Для хранения различных типов данных часто нужны разные механизмы кеширования
- Автор предлагает разбить всю систему на три слоя – Utils для запроса конкретного типа данных, AssetsManager, разруливающего, какой тип кеширования для какого типа данных выбрать, и непосредственную реализацию алгоритмов кеширования
This media is not supported in your browser
VIEW IN TELEGRAM
Короткий синтаксис if let в Swift 5.7

Начиная со Swift 5.7, синтаксис для if let и guard let стал намного короче. Хотя мнения насчет того, насколько это правильное решение, продолжают расходиться.
2024/10/01 15:36:20
Back to Top
HTML Embed Code: