iOS Broadcast
3.38K subscribers
1.72K photos
85 videos
985 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
加入频道
#swift #memory

Как устроен счетчик ссылок в Swift (20 мин)

🗣 После прочтения этой статьи вы на любой вопрос со звездочкой ответите на собеседовании про память в Swift

📍 Типы ссылок в ARC
📍 Счетчики ссылок, и где они хранятся
📍 Как работает Side Table
📍 Жизненный цикл объекта

Расскажите, о чем вы узнали впервые из статьи
🔥11👎1
Поиск retain cycle с помощью инструментов Xcode

Небольшой гайд о том, как пользоваться Debug Memory Graph

#memory
👍3👎1
Retain Cycle in Swift (6 мин)

Еще раз про Retain Cycle, ARC, виды ссылок (strong, weak, unowned) с примерами как на картинке 😄

#memory
👍5👎1
Quickly find retain cycles in your app with this one trick

Retain cycle - ситуация, когда объект не может быть удален из памяти из-за цикла сильных ссылок.
Автор предлагает лайфхак, как его обнаружить.
Создаем symbolic breakpoint как на скрине. Он будет срабатывать при деаллокации UIViewController и издавать звук. Теперь при навигации в приложении обращайте внимание на отсутствие звука при закрытии экрана. В такой ситуации скорее всего UIViewController остается в памяти.

Как вам такой оригинальный способ дебага по звуку? 😁

#memory
👍22🥰4👎2🤯1
A Better Way To Test Reference Cycles in iOS

Как реализовать тестирование на цикл сильных ссылок:
1️⃣ В тестовом классе добавляем weak var weakSUT на тестируемый объект
2️⃣ Определяем вспомогательный метод, который инициализирует тестируемый объект и присваивает weakSUT его значение
3️⃣ В методе tearDown добавляем проверку, что weakSUT имеет значение nil
4️⃣ В методах с тестами инициализируем тестируемый объект с помощью метода из 2 шага
Если обнаруживается цикл сильных ссылок, то в методе tearDown будет ошибка

#testing #memory
👍5👎1
Storing Payment Data On iOS: My Take

Как хранить чувствительные данные на iOS:
👉 Не храните их без крайней необходимости 👩‍✈️
👉 Keychain - зашифрованный контейнер для хранения данных, таких как пароли и криптографические ключи. Это безопасно, но обычно используется только для небольших фрагментов данных
👉 Шифрование. Чтобы добавить дополнительный уровень безопасности, вы также можете зашифровать небольшие фрагменты данных перед их сохранением в Keychain. Можно использовать алгоритм симметричного шифрования, такой как AES, с уникальным ключом для каждого пользователя.
👉 Файлы. Вы можете использовать шифрование для файлов в secure enclave iOS, используя безопасные API данных

#memory #security
👍4👎1
Как не потерять голову (и память) при поиске утечек в iOS (6 мин)

Способы обнаружения утечек из статьи:
👉 С помощью Xcode Memory Graph
👉 С помощью Instruments. После запуска приложения вы можете увидеть в реальном времени, сколько ресурсов потребляется в строке Allocations, и были ли обнаружены какие-либо утечки памяти в строке Leaks
👉 С помощью инструмента «Анализ» (только для Objective-C)
👉 С помощью unit-тестов
👉 С помощью Symbolic breakpoint. Вы можете создать точку останова, чтобы отследить вызовы метода dealloc, и проверить, был ли освобожден контроллер из памяти

#memory
👍2👎1