iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.4K subscribers
654 photos
63 videos
3.95K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Лучшее iOS сообщество в Телеге: @iosgt

Размещение рекламы: @tanyasanovna
Download Telegram
Совместное редактирование в Apple Notes реализовано на Server-side Swift

Если вас кто-то будет спрашивать о примерах использования Swift на сервере в продакшне, теперь вам есть, что ответить. Apple на недавней конференции про серверный Swift рассказали, что использовали его, чтобы реализовать коллаборативную работу над заметками. Деталей нет, да и картину адопшна это не сильно меняет, но интересно!
ВКонтакте объявила победителей грантового конкурса VK Fresh Code.

Создатели 25 самых успешных мини-приложений на базе платформы VK Mini Apps получили поддержку на развитие своих проектов. В дальнейшем их количество может увеличиться: ВКонтакте продолжит поддерживать талантливые команды, чтобы они продолжали творить на благо пользователей.
This media is not supported in your browser
VIEW IN TELEGRAM
Кастомный контейнер на Layout протоколе

Автор разбирает, как с помощью Layout протокола из SwiftUI собрать контейнер, который будет лэйаутить произвольное количество тегов фиксированной высоты и разной длины.

Перевод на русский язык
Советы от ментейнера 185 библиотек

- Когда ты поддерживаешь сразу десятки библиотек, быстро теряешь контекст происходящего в каждой из них.
- Справиться с этим помогает техника «The perfect commit» – делать только такие коммиты, которые решают строго одну задачу, которые содержат подробную документацию и тесты для каждого изменения, и ссылаются на issue с обсуждением.
- Поддерживать уверенность в актуальности документации помогают специальные тесты, которые проверяют, что в ней упоминаются все ключевые концепции.
- В статье много дополнительных советов про все аспекты техники идеальных коммитов.
SwiftUI Custom Layout: Spacing

Продолжение цикла статей про работу с протоколом Layout. В этой разбирается, как настраивать расстояние между дочерними вьюшками, учитывать его при расчете лэйаута, и использовать разные значения для разных платформ.
Stable Diffusion на CoreML

- Apple добавили поддержку модели Stable Diffusion в CoreML. Stable Diffusion – самая хайповая нейронка для генерации иллюстраций. Помните иконки, которые я выкладывал на прошлой неделе? Вот это – Stable Diffusion.
- Stable Diffusion умеет не только генерировать изображения по описанию, но и генерировать палитру, апскейлить изображения, редактировать их и много чего еще.
- Модель оптимизирована для работы на конечном пользовательском девайсе.
Foundation переписывают на Swift и выкладывают в open source

Вот что поменяется:
- Полностью избавятся от C, на котором сейчас написано все ядро Foundation. Благодаря избавления от интеропа улучшится перфоманс.
- Огромный Foundation будет разбит на более атомарные куски. Например, FoundationInternationalization, который будет содержать функции, нужные для локализации.
- Для всех эппловых платформ будет использоваться единая реализация Foundation.
- Процесс разработки будет открытым, а коммьюнити получит возможность контрибьютить свои изменения.

Перевод на русский язык
Команда Тинькофф ищет iOS-разработчиков💡

Большое комьюнити iOS-разработчиков решает крутые задачи — создает высоконагруженные сервисы для 27 миллионов клиентов, экспериментирует и ищет новые решения. Приглашает в команду iOS-разработчиков с опытом от трех лет!

Работать с Тинькофф значит:

— не ограничивать свои скиллы и вводить в сервисы новые фичи;
— делать жизнь миллионов людей удобнее и технологичней;
— расти в грейде по скиллам, а не по стажу в компании;
— становиться заметным в комьюнити iOS-разработчиков.

А еще команда всегда «за» действительно комфортную работу. Поэтому большинство бытовых забот делегируют компании: от расширенного ДМС и юридической помощи до питания и разных активностей.

Откликнуться и узнать подробнее о команде iOS-разработчиков Тинькофф: https://u.tinkoff.ru/mobile.pro
This media is not supported in your browser
VIEW IN TELEGRAM
Самое простое интро в шейдеры

Если вы никогда не писали свои шейдеры, и просто киваете с умным видом, когда кто-то начинает говорить про оптимизированный под GPU код, обязательно прочитайте статью.

💻Отличие CPU от GPU в вопросах вычислений
🤔Ограничения в разработке шейдеров
🎨Примеры шейдеров
AppCode 2022.3 – последняя поддерживаемая версия

- Вышла новая версия AppCode с поддержкой Xcode 14.2.
- Эта версия станет последней. Новые фичи больше не разрабатываются, купить AppCode больше нельзя.
- Поддержка текущей версии будет предоставляться до конца 2023 – в основном связанная с проблемами совместимости с текущей версией Xcode.
- Основная причина – «While we’ve had some growth in terms of adoption, we didn’t reach the market share we had hoped for»
Пример интеропа C++ и Swift

- В Swift есть экспериментальная поддержка интеропа с плюсами, которая не требует написания врапперов на ObjC.
- В статье разбирается, как в одном Swift пакете держать код на С++ и Swift, и напрямую использовать std::vector..

Перевод на русский язык
Простой способ улучшить читаемость логов в Xcode

В настройках Xcode можно изменить цвет логов брейкпойнтов, чтобы они визуально выделялись среди принтов:
Xcode > Settings > Themes > Console
SwiftUI Custom Layout: LayoutValueKey

- С помощью протокола LayoutValueKey можно привязать значение к вью внутри кастомного лэйаута, и использовать его позже в расчетах.
- Для этого надо создать структуру, реализующую протокол LayoutValueKey, и extension для вью, в котором этот параметр настраивается.
- В статье разбирается, как с помощью этой фичи можно реализовать якорную привязку внутри своего лэйаута.

Перевод на русский язык
Кастомные префиксы для чисел в NumberFormatter

У NumberFormatter есть одна неочевидная фича – вы можете задать свой собственный префикс для всех положительных или отрицательных чисел, используя свойства positivePrefix/negativePrefix.
Огромный гайд по реализации in-app purchases на StoreKit

🛒Настройка покупок в App Store Connect
💻Отображение товаров в приложении, их покупка и верификация
🗓️Обработка событий обновления подписки, ее отмены и проблем с платежами
☁️Реализация подписок со своим сервером и без него

Код примеров клиента и сервера на GitHub
Отключение рекламных алертов от Xcode Cloud

Надоели алерты в Xcode? Установите флаг:
defaults write com.apple.dt.Xcode XcodeCloudUpsellPromptEnabled -bool false
Разработка сложных кастомных плагинов для Xcode Instruments

- Xcode с 2018 года позволяет разрабатывать собственные плагины для Instruments. Вот видео с WWDC, и хорошая вводная статья.
- Одна из основных проблем в разработке этих расширений – писать их надо на чистом XML. Для очень простых задач это еще терпимо, а для тех, где требуется несколько тысяч строк – вообще невозможно.
- В статье разбирается несколько приемов, как можно облегчить себе жизнь. Начиная с транспиляции своего Swift DSL в XML, заканчивая малоизвестными фичами XML вроде includes и conditionals.

Перевод на русский язык
This media is not supported in your browser
VIEW IN TELEGRAM
Разговор с ChatGPT про статические и динамические фреймворки

Статью можно читать с двумя целями – вспомнить различия статических и динамических фреймворков и их влияние на перфоманс приложения, или посмотреть на очередной юзкейс того, как ChatGPT разбирает сложные инженерные вопросы и дает почти точные ответы.

Перевод на русский язык
Как подключить российский SSL-сертификат к iOS приложению

Выдача и продление SSL сертификатов превратилась в проблему, из-за чего в мобильных приложениях могут перестать проходить платежи разных эквайрингов. В статье разбирается, как правильным образом сконвертировать сертификаты от Минцтфры, зашить их в приложение и пройти проверку Apple.