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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Как отловить приложения, которые трекают ваши действия во встроенном браузере

На прошлой неделе Felix Krause выпустил исследование, в котором он проверил, какие скрипты инжектятся во встроенные браузеры разных социальных сетей. TikTok, например, трекает в нем все ваши действия, вплоть до вводимых данных, в том числе и паролей.

Он же запустил сайт InAppBrowser.com. При заходе на него вы увидите, каким образом браузер модифицировал код страницы.
🔥42👍2
Визуализация алгоритмов сортировки на Swift Charts

Автор видео реализует различные алгоритмы сортировки на Swift и визуализирует их на графиках из Swift Charts.

🫧Bubble Sort
☝️Selection Sort
📥 Insertion Sort
💨 Quick Sort
👍37🔥14
SwiftUI и Large Content Viewer

- В iOS доступны семь дефолтных размеров текста – от супер маленького до супер большого
- Некоторые системные компоненты физически не могут показывать текст слишком большого размера, и вместо этого по лонг тапу показывает увеличенную вьюшку. Эта функциональность называется Large Content Viewer
- В посте разбирается, как ее поддержать в своих кастомных компонентах и настроить Large Content Viewer для своего кейса
😢9👍5🤔1
Осенняя презентация новых девайсов Apple

Apple анонсировали традиционный осенний ивент, на котором обычно показывают новые часы и айфоны. Подключайтесь к трансляции 7 сентября в 20 часов по Москве.
👍243👎3😁1😱1
Советы по работе с WidgetKit

- Виджеты получают от приложений «таймлайны» – массивы моделек для отображения. Даже если вам не нужно отображать всю последовательность сразу, это полезная техника для обновления стейта вовремя
- Если вы предоставляете данные для отображения на несколько часов вперед, не забывайте обновить их вручную, если они перестанут быть актуальными
- Если виджет работает с данными, которые недоступны в залоченном состоянии телефона, настройте правильный кеш. Пример можно посмотреть здесь
👍16👎2
Настройка кастомных Launch Screen для разных диплинков

Начиная с Xcode 12, можно конфигурировать отдельные launch screens для каждого из диплинков, которые обрабатывает приложение.
🔥861👍1💅1
Разбор алгоритма diff’инга в SwiftUI

Очень детальный разбор всех нюансов работы алгоритма, который определяет, когда и как нужно изменить лейаут.
👍24🔥7🤯1
SwiftTUI – аналог SwiftUI для консольных интерфейсов

Автор предыдущей статьи не просто так разбирался с устройством SwiftUI. Он написал собственную реализацию его движка для того, чтобы легко строить поверх него текстовые интерйесы для консоли.
👍20🔥185🤯3
Решение проблемы повышенного потребления батареи у Xcode 14 beta

- Иногда при запуске симулятора iOS 16 в Xcode 14 beta резко вырастает нагрузка на CPU и потребление батареи
- В статье разбирается воркэраунд, который помогает временно решить проблему
❤‍🔥9👍2
Отличия Live Screen Widgets и Live Activities

В iOS 16 появилось сразу несколько новых способов взаимодействия с пользователем вне приложения. Держите сводную таблицу с их отличиями.
👍14
Переписывание парсера Swift с С++ на Swift

SwiftSyntax – SwiftPM пакет, который умеет парсить любой Swift код в синтаксическое дерево. Он используется в SwiftLint и swift-format. Исторически он был реализован поверх C++ библиотеки, которая привязана к инфраструктуре компилятора Swift. Сейчас стартанула активность по его переписыванию на Swift.

Вы можете либо почитать код, чтобы разобраться, как работают парсеры, либо помочь проекту, репортя баги или исправляя их самостоятельно!
👍18🤡11👎1🤯1
XcLauncher – быстрый доступ к вашим Xcode проектам

XcLauncher – это живущее в трее приложение, которое помогает быстро открывать проекты, над которыми вы работаете.
🤡72🤔18🔥4👎3😢1
Configuration Profiles и Apple MDM

- Configuration Profile – это XML файл, описывающий настройки, политики и ограничения, распространяющиеся на корпоративное устройство
- Для создания и подписывания этих профилей есть целый набор специальных инструментов
- MDM — это технология для удаленного управления устройством, позволяющая выполнять на нем команды с сервера
- MDM дает возможность удаленно устанавливать и удалять приложения, обновлять ОС, блокировать устройство
- MDM дает больше возможностей и на уровне клиентских приложений – например, можно получать данные сим-карты вплоть до номера телефона
👍12❤‍🔥2
Разбор ExtensionKit

ExtensionKit – новый фреймворк iOS 16, который позволяет реализовывать плагины для системных приложений или реализовывать собственнцю плагинную систему. Второе, правда, доступно только для macOS.

1️⃣Вы объявляете extension points в своем приложенит
2️⃣Этот API используется вами или сторонними разработчиками, чтобы интегрировать плагины, как с UI, так и без него
3️⃣Общение между хостом и плагином идет через XPC
4️⃣Распространять плагины можно только внутри .app, так что теоретически их даже в App Store залить можно
😱12🔥62
Xcode Cloud доступен для всех

- Xcode Cloud – новый сервис для CI/CD от Apple, который последний год крутился в закрытой бете
- 25 часов работы агентов в месяц бесплатны
- 100 часов работы в месяц – 50$
- 250 часов работы в месяц – 100$
- 1000 часов работы в месяц – 400$
🔥31👎3👍2🥰21
Maestro – новый фреймворк для автоматизации UI тестов

Ключевая особенность – тест описывается не в коде, а в yaml файле. Создатели говорят, что на уровне core концепций зашили следующие вещи:

- Обработку флакующих сценариев и элементов интерфейса
- Тестирование задач с асинхронными компонентами
- Супер-быстрый раундтрип за счет того, что тесты интерпретируемые
- Очень быстрый сетап

Пока выглядит как решение только для очень простых случаев. К тому же yaml – очень-очень спорный формат. Если кто-то попробует – расскажите в комментах про результаты!
🤡40🤔3👍2
Навигация на стейт-машине

Revolut рассказывают, как устроена стейт-машина в их приложении, управляющая всей навигацией, и упрощающая работу с пошаговыми флоу.
🤡45👏4👍31