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

Регистрация в РКН: https://gosuslugi.ru/snet/67b464d698a28c4e866d827a

Размещение рекламы: @tanyasanovna
Download Telegram
Canopy – удобная обертка над CloudKit

Основная идея библиотеки – изолировать всю работу с CloudKit, дав возможность тестировать код без взаимодействия с реальным облаком. Для большинства задач вроде обработки серверных токенов и работы с батчами и курсорами в Canopy уже описана вся логика, но при желании ее можно переопределить.

📖Документация
💻Семпловое приложение
👍10
Экспорт SwiftUI вьюх в формате изображений

ImageRenderer – это API, который позволяет экспортнуть иерархию SwiftUI вьюх как изображение. Например, это можно использовать для экспорта Swift Charts в PDF.

Часть параметров перед экспортом можно подкрутить, например масштаб или цвета.

Перевод на русский язык
👍13🔥5
Сообщество Garage Eight

Ребята из Garage Eight пилят разные инвестиционные продукты. А кроме этого, недушно рассказывают про свою внутреннюю кухню, травят карьерные байки и делятся полезными материалами.

Вот несколько клевых постов, с которых можно начать знакомство с каналом:

🤔Подборка материалов по развитию критического мышления
🤝Про опыт построения ML команды, в которой нет тимлида
💬Инструменты и практики дачи фидбэка

Реклама
ООО «Гараж 8» erid: Pb3XmBtzsqba5zuiiqDfGmJRXGA6T5Yospdetvk
🤡3317👍3🗿2
Komondor – пакет для описания Git Hooks, использующихся в проекте

С помощью Komondor вы можете описать все git hooks, нужные вашему проекту, в одном блоке Package.swift файла. Он поддерживает аж 19 разных видов хуков, в том числе экзотику вроде pre-auto-gc или sendemail-validate.

Пакет вдохновлен Husky – аналогичным инструментом в Node.js экосистеме.
👍19
for-case-let

Вместо того, чтобы писать if let внутри for цикла, вы можете использовать case let прямо при его объявлении. Уровень вложенности кода падает, да и выглядит чище.
💅136🔥33👍182👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Как пропустить экран логина с помощью брейкпойнтов в Xcode

Xcode позволяет автоматически выполнять различные lldb команды при остановке на брейкпойнте. В статье разбирается как настроить брейкпойнты таким образом, чтобы автоматически заполнять логин и пароль при дебаге приложения.

Перевод на русский язык
👍313👎2
Результаты Swift Community Awards

Подборка самых высоко оцененных сообществом инструментов, сервисов, опенсорсных проектов и докладов. Загляните, может быть, пропустили интересные штуки! Вот несколько классных:

🍍TelemetryDeck – легковесная аналитика с упором на приватность собираемых данных
🍍IceCubes – очень красивый опенсорсный клиент для Мастодона
🍍Bakery – простой конструктор иконок приложений
👍31
Foundation на Swift

В конце прошлого года Apple заанонсили, что переписывают Foundation на Swift, параллельно разбивая его на маленькие пакеты. Спустя всего четыре месяца первое превью уже выпущено на GitHub!

Пока в библиотеке доступна только часть типов, например AttributedString, Date и Calendar. Ключевая особенность – улучшенный перфоманс. Например, Calendar показывает 20% улучшение, а форматирование дат через FormatStyle – 150%. Самое крутое, конечно, JSONEncoder/JSONDecoder, которые показывают прирост в 2-5 раз.

Следующие планы – перенести URL, Bundle, FileManager, FileHandle, Process, SortDescriptor, SortComparator, а заодно – обрабатывать фичереквесты и баги от коммьюнити.
👍97🔥24😱75😍4❤‍🔥2
Swift для TensorFlow все

Вторая новость про Swift чуть менее радостная. Google тихо прикрыл все работы, связанные со Swift для TensorFlow, и заархивировал проект. Из заметных достижений за время их работы:

👉В компилятор добавили поддержку differentiable programming, причем ее саппорт продолжится.
👉Запустили несколько проектов, которые продолжат поддерживаться: PythonKit для интеропа с Python, swift-jupyter для возможности использовать ноутбуки, swift-benchmark для, как ни удивительно, бенчмарков кода.
😢26😁8👍21🤬1
Предсказания анонсов на WWDC’23

Bloomberg подбили все известные утечки в одном материале:

😎Reality Headset, премиальная AR/VR гарнитура
📱Новая операционка для гарнитуры, xrOS
⌚️Крупный апдейт в watchOS 10, в котором должны сильно переработать интерфейс
💻Новые макбуки, но вроде как все еще на М2
Никаких крупных апдейтов в iOS/macOS не ожидается, не считая возможности загружать приложения на iOS в обход официального магазина

Перевод на русский язык
👍171🤯1
VK запускает Weekend Offer для мобильных разработчиков

Получите возможность присоединиться к командам VK Мессенджера, VK Видео, Почты Mail.ru и Облака Mail.ru всего за одни выходные — 20–21 мая. Разработчики требуются на направления iOS и Android.

Отправить отклик можно до 18 мая включительно.
🤡132👎16👍4🤬3🗿31💅1
Несколько советов про Reachability

👉Вместо проверок на наличие соединения перед каждым запросом используйте флаг waitsForConnectivity, благодаря которому активный запрос будет дожидаться появления сети.
👉Если вам надо ограничить приложение работой только по WiFi, настройте URLSessionConfiguration таким образом, чтобы разрешать только определенные типы соединений.

Перевод на русский язык
👍221
Когда пользователь лучше всего конвертится во внутреннюю покупку

Феликс Краузе, бывший ментейнер Fastlane, сейчас запускает новый продукт – ContextSDK. Он предсказывает, когда лучше всего предложить пользователю совершить внутреннюю покупку, основываясь на анализе кучи факторов. Вот несколько примеров того, что может значимо влиять на конверсию:

🌟Хуже всего люди совершают покупки, когда пользуются приложением на ходу, когда телефон лежит на столе, у него остается мало заряда батареи, или когда он воспроизводит музыку.
🌟Лучше всего конвертятся те, кто лежит или сидит.
🌟Чем новее модель телефона и чем свежее версия операционной системы, тем выше конверсия в покупку.
🌟Время суток тоже влияет. В первой половине дня конверсии в целом лучше.
👍40❤‍🔥4💅43😁3🔥1🤯1
ETTrace – новый фреймворк для профилирования приложений

Основные отличия от Time Profiler:

- Более простой интерфейс для поиска проблем в перфомансе
- Более быстрый, менее флакующий профилировщик
- Корректная символизация
- Готов к работе в CI

Перевод на русский язык
🔥8🤔3🤡2
Проблемы MVx архитектур

В статье разбирается три проблемы, из-за которой типичные «слоистые» архитектуры вроде MVC, MVP и MVVM плохо ложатся на большинство приложений.

🤏Проблема остатка: не все фичи идеально раскладываются на все слои, в результате приходится иметь много бесполезного бойлерплейта.
🔎Проблема масштабирования: при расширении фичи ее код начинает сильно разбухать, так как вместо нормальной декомпозиции ее пытаются впихнуть в уже написанный юзкейс.
🤔Проблема разрывов в логике: архитектура пишется таким образом, который зависит от строгой последовательности выполнения действий в разных компонентах, в то время как механизмов, обеспечивающих эту последовательность, нет.

Любви достоин только VIPER.
🤡65👍27😁32👎1😱1
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация песочных часов на SwiftUI

Эффект реализован с помощью заблюренных линейных градиентов и SpriteKit частиц. Код можно посмотреть здесь.
💅75👍31🔥116🤡52🤯1
Как оптимизировать count запросы в Core Data

В статье приводится 12 способов писать более эффективные count запросы к данным. Для каждого из них разбирается сгенерированный в итоге SQL.
🔥111
Overlays в SwiftUI

Как можно использовать накладывающиеся друг на друга вьюхи для того, чтобы обеспечить структурную идентичность, и для того, чтобы реализовать кастомную анимацию навигации.
💅153👍2🔥2