iOS Dev
7.87K subscribers
1.05K photos
100 videos
1 file
1.24K links
👨‍💻Автор: Виктор Грушевский (@Viktorianec)

⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru

🍏Канал об iOS-разработке, алгоритмах и архитектурах

⭐️ Подготовка к собесам

⭐️ Код. Много кода.

#ios #mobile #swift
Download Telegram
Кэширование изображений в SwiftUI

Ещё в 15 оси появилась полезнейшая AsyncImage (можно грузить изображения без лока интерфейса), но есть небольшая загвоздка: SwiftUI, например при скролле вверх-вниз картинка будет загружена заново.

И как раз в таких ситуациях не обойтись без кэширования.

Часто вижу, как ради такого ребята тащат лишние зависимости, но всё гораздо проще, особенно если нам достаточен кэш только в памяти (хотя для записи на диск всё не то чтобы и усложняется).

📖 В этой статье рассматривается полезный для новичков способ работы с NSCache и его настройка.

Напомню и про эти материалы:

➡️ Загрузка UIImage с диска: разбор сценариев и импакт на память
➡️ Контроль и оптимизация процесса декодирования изображений в iOS

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1122👍94🔥42👌1🏆1🤗1🆒1
Memory Integrity Enforcement — новая технология безопасности от Apple

Наши девайсы могут содержать большой объем конфиденциальных данных, требующих защиты.

Если приложение содержит уязвимости, то ими могут воспользоваться для доступа к данным в вашем приложении (или расширении).

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

Совсем недавно в Xcode появилась опция для Enhanced Security (можно включить в проекте) для устранения многих распространённых проблем.

Так вот, вышла целая сессия, в которой можно не только узнать, как внедрить MIE в приложение, но и как также устранить трудно обнаруживаемые проблемы с памятью в коде.

📺 Сессию можно посмотреть на сайте Apple или 📺 в Youtube.

📖 Дополнительно разбор доступен вот тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
813❤‍🔥77🔥5👍21👏1💯1
Самая сложная задача

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

Поэтому деление на создание анимаций/работу с изображениями/проектирование условно сетевого слоя или работу с шифрованием сложно измерить по конкретной шкале. Всегда будут вопросы в стиле «а что, если».

Я вижу заблуждения даже среди новичков, которые считают, что анимации это простая задача, но забывают, что буквально благодаря буквально одной фишке, например, Clear в своё время стал приложением номер один среди заметок. А множество обывателей пересело с андроид на iOS благодаря цельности экосистемы и видению дизайн-команд Apple.

Конечно, кто-то останавливается на стадии добавления пары модификаторов и этого может хватать для средненького приложения.

Но когда вы создаёте диаграммы для телеги или проектируете сложную комбинированную анимацию для переходов - это всегда будет невероятным плюсом, тем - ради чего пользователи сделают выбор в сторону вашего приложения или продукта.

Конечно, если вы не монополист и у пользователей буквально нет альтернатив регистрации в вашем продукте.


Под капотом часто будет сложная математика, будь то алгоритмы пересечения (или объединения) отрезков для тех же графиков или же расчёт таймингов при анимациях. Практически все крупные компании реализуют свои компоненты для таких задач (от бирж с их невероятным количеством апдейтов в реалтайме до визуализаций в музыкальных приложениях).

Проблемы с производительностью могут быть и при реализации скролла в чате, и, например, при создании сложного текстового редактора - поверьте, я знаю, о чём говорю.

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

Именно поэтому регулярка для почты - задача не на одну минуту, а работа со временем может вас удивить.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
817🔥8❤‍🔥5🏆211👍1👏1🍓1
Создание приложения на UIKit с использованием Liquid Glass

Большинство крупных проектов пока что не используют новые опции в дизайне, но часть из топовых приложений (например, телега) уже частично апдейтят отображение ключевых компонентов.

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

А вот если на вашем проекте вы уже собираетесь адоптить и возможности iOS 26, то полезно знать про несколько советов.

Например, если вы хотите убрать эффект стекла для ваших кнопок в навбаре, можно юзать hidesSharedBackground (а чтобы отделить группы кнопок визуально, можно добавить .fixedSpace()).

📖 Ещё больше полезных фич разобрали в этом материале.

Процесс перехода будет в любом случае не очень быстрым, так как надо поддерживать и старые опции, но как видите - и для приложений на UIKit новые фичи вполне реально вкрутить уже сейчас.

Кстати, в iOS IQ уже используется новый диз для многих экранов, ещё одно приложение я обновил целиком с учётом поддержки iOS 26, а, например, в плане добавил ещё и кастомизированный таббар.


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
1314🔥9👍4💯32