Кэширование изображений в SwiftUI
Ещё в 15 оси появилась полезнейшая
И как раз в таких ситуациях не обойтись без кэширования.
Часто вижу, как ради такого ребята тащат лишние зависимости, но всё гораздо проще, особенно если нам достаточен кэш только в памяти (хотя для записи на диск всё не то чтобы и усложняется).
📖 В этой статье рассматривается полезный для новичков способ работы с
Напомню и про эти материалы:
➡️ Загрузка UIImage с диска: разбор сценариев и импакт на память
➡️ Контроль и оптимизация процесса декодирования изображений в iOS
😃 iOS Dev
Ещё в 15 оси появилась полезнейшая
AsyncImage (можно грузить изображения без лока интерфейса), но есть небольшая загвоздка: SwiftUI, например при скролле вверх-вниз картинка будет загружена заново.И как раз в таких ситуациях не обойтись без кэширования.
Часто вижу, как ради такого ребята тащат лишние зависимости, но всё гораздо проще, особенно если нам достаточен кэш только в памяти (хотя для записи на диск всё не то чтобы и усложняется).
📖 В этой статье рассматривается полезный для новичков способ работы с
NSCache и его настройка.Напомню и про эти материалы:
Please open Telegram to view this post
VIEW IN TELEGRAM
11 22👍9✍4🔥4 2👌1🏆1🤗1🆒1
Memory Integrity Enforcement — новая технология безопасности от Apple
Наши девайсы могут содержать большой объем конфиденциальных данных, требующих защиты.
Если приложение содержит уязвимости, то ими могут воспользоваться для доступа к данным в вашем приложении (или расширении).
Многие команды проходят регулярные аудиты безопасности, и наверняка используют популярные проверки на джейл или наличие некоторых процессов.
Совсем недавно в Xcode появилась опция для Enhanced Security (можно включить в проекте) для устранения многих распространённых проблем.
Так вот, вышла целая сессия, в которой можно не только узнать, как внедрить MIE в приложение, но и как также устранить трудно обнаруживаемые проблемы с памятью в коде.
📺 Сессию можно посмотреть на сайте Apple или📺 в Youtube.
📖 Дополнительно разбор доступен вот тут.
😃 iOS Dev
Наши девайсы могут содержать большой объем конфиденциальных данных, требующих защиты.
Если приложение содержит уязвимости, то ими могут воспользоваться для доступа к данным в вашем приложении (или расширении).
Многие команды проходят регулярные аудиты безопасности, и наверняка используют популярные проверки на джейл или наличие некоторых процессов.
Совсем недавно в Xcode появилась опция для Enhanced Security (можно включить в проекте) для устранения многих распространённых проблем.
Так вот, вышла целая сессия, в которой можно не только узнать, как внедрить MIE в приложение, но и как также устранить трудно обнаруживаемые проблемы с памятью в коде.
📺 Сессию можно посмотреть на сайте Apple или
📖 Дополнительно разбор доступен вот тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
8 14❤🔥7 7🔥5👍2✍1👏1💯1
Самая сложная задача
В разработке есть множество областей, где задачи могут уходить буквально на несколько уровней вглубь и некая простота на первый взгляд может обернуться приключением в несколько спринтов.
Поэтому деление на создание анимаций/работу с изображениями/проектирование условно сетевого слоя или работу с шифрованием сложно измерить по конкретной шкале. Всегда будут вопросы в стиле «а что, если».
Я вижу заблуждения даже среди новичков, которые считают, что анимации это простая задача, но забывают, что буквально благодаря буквально одной фишке, например, Clear в своё время стал приложением номер один среди заметок. А множество обывателей пересело с андроид на iOS благодаря цельности экосистемы и видению дизайн-команд Apple.
Конечно, кто-то останавливается на стадии добавления пары модификаторов и этого может хватать для средненького приложения.
Но когда вы создаёте диаграммы для телеги или проектируете сложную комбинированную анимацию для переходов - это всегда будет невероятным плюсом, тем - ради чего пользователи сделают выбор в сторону вашего приложения или продукта.
Под капотом часто будет сложная математика, будь то алгоритмы пересечения (или объединения) отрезков для тех же графиков или же расчёт таймингов при анимациях. Практически все крупные компании реализуют свои компоненты для таких задач (от бирж с их невероятным количеством апдейтов в реалтайме до визуализаций в музыкальных приложениях).
Проблемы с производительностью могут быть и при реализации скролла в чате, и, например, при создании сложного текстового редактора - поверьте, я знаю, о чём говорю.
Уровень сложности не зависит от предметной области, а формируется количеством входных требований и детализацией покрытия кейсов использования.
Именно поэтому регулярка для почты - задача не на одну минуту, а работа со временем может вас удивить.
😃 iOS Dev
В разработке есть множество областей, где задачи могут уходить буквально на несколько уровней вглубь и некая простота на первый взгляд может обернуться приключением в несколько спринтов.
Поэтому деление на создание анимаций/работу с изображениями/проектирование условно сетевого слоя или работу с шифрованием сложно измерить по конкретной шкале. Всегда будут вопросы в стиле «а что, если».
Я вижу заблуждения даже среди новичков, которые считают, что анимации это простая задача, но забывают, что буквально благодаря буквально одной фишке, например, Clear в своё время стал приложением номер один среди заметок. А множество обывателей пересело с андроид на iOS благодаря цельности экосистемы и видению дизайн-команд Apple.
Конечно, кто-то останавливается на стадии добавления пары модификаторов и этого может хватать для средненького приложения.
Но когда вы создаёте диаграммы для телеги или проектируете сложную комбинированную анимацию для переходов - это всегда будет невероятным плюсом, тем - ради чего пользователи сделают выбор в сторону вашего приложения или продукта.
Конечно, если вы не монополист и у пользователей буквально нет альтернатив регистрации в вашем продукте.
Под капотом часто будет сложная математика, будь то алгоритмы пересечения (или объединения) отрезков для тех же графиков или же расчёт таймингов при анимациях. Практически все крупные компании реализуют свои компоненты для таких задач (от бирж с их невероятным количеством апдейтов в реалтайме до визуализаций в музыкальных приложениях).
Проблемы с производительностью могут быть и при реализации скролла в чате, и, например, при создании сложного текстового редактора - поверьте, я знаю, о чём говорю.
Уровень сложности не зависит от предметной области, а формируется количеством входных требований и детализацией покрытия кейсов использования.
Именно поэтому регулярка для почты - задача не на одну минуту, а работа со временем может вас удивить.
Please open Telegram to view this post
VIEW IN TELEGRAM
8 18🔥8❤🔥5🏆2⚡1✍1👍1👏1🍓1
Создание приложения на UIKit с использованием Liquid Glass
Большинство крупных проектов пока что не используют новые опции в дизайне, но часть из топовых приложений (например, телега) уже частично апдейтят отображение ключевых компонентов.
Если вы пока не хотите обновлять дизайн, недавно писал про способ выключения стилистики стекла для ваших проектов.
А вот если на вашем проекте вы уже собираетесь адоптить и возможности iOS 26, то полезно знать про несколько советов.
Например, если вы хотите убрать эффект стекла для ваших кнопок в навбаре, можно юзать hidesSharedBackground (а чтобы отделить группы кнопок визуально, можно добавить .fixedSpace()).
📖 Ещё больше полезных фич разобрали в этом материале.
Процесс перехода будет в любом случае не очень быстрым, так как надо поддерживать и старые опции, но как видите - и для приложений на UIKit новые фичи вполне реально вкрутить уже сейчас.
😃 iOS Dev
Большинство крупных проектов пока что не используют новые опции в дизайне, но часть из топовых приложений (например, телега) уже частично апдейтят отображение ключевых компонентов.
Если вы пока не хотите обновлять дизайн, недавно писал про способ выключения стилистики стекла для ваших проектов.
А вот если на вашем проекте вы уже собираетесь адоптить и возможности iOS 26, то полезно знать про несколько советов.
Например, если вы хотите убрать эффект стекла для ваших кнопок в навбаре, можно юзать hidesSharedBackground (а чтобы отделить группы кнопок визуально, можно добавить .fixedSpace()).
📖 Ещё больше полезных фич разобрали в этом материале.
Процесс перехода будет в любом случае не очень быстрым, так как надо поддерживать и старые опции, но как видите - и для приложений на UIKit новые фичи вполне реально вкрутить уже сейчас.
Кстати, в iOS IQ уже используется новый диз для многих экранов, ещё одно приложение я обновил целиком с учётом поддержки iOS 26, а, например, в плане добавил ещё и кастомизированный таббар.
Please open Telegram to view this post
VIEW IN TELEGRAM
13 15🔥10👍5💯3 2
Сколько часов в день в среднем у вас занимает написание кода?
Anonymous Poll
10%
0
5%
1
13%
2
18%
3
25%
4
13%
5
7%
6
8%
7 (и более). Поделитесь, в какой сфере работаете
7 8🍓5🔥4 4💯3👍2😎2
Передача данных в SwiftUI: сравнение подходов
📖 Маттео Манфердини делится базой на счёт хранения и передача информации внутри приложения.
Сравнивается несколько флоу обмена данными, подходов к тому, какими должны бысть свойства (от сессии в 2019 году до варианта от Криса Эйдхова) и многое другое в нескольких больших разделах:
➡️ Архитектура приложения и источники правды
➡️ Передача данных для View
➡️ Создание и управление состоянием
➡️ Обход View Tree
🔗 Кстати, чтобы почитать и про фундаментальные способы передачи данных в iOS - можно перейти к этому посту.
😃 iOS Dev
📖 Маттео Манфердини делится базой на счёт хранения и передача информации внутри приложения.
Сравнивается несколько флоу обмена данными, подходов к тому, какими должны бысть свойства (от сессии в 2019 году до варианта от Криса Эйдхова) и многое другое в нескольких больших разделах:
🔗 Кстати, чтобы почитать и про фундаментальные способы передачи данных в iOS - можно перейти к этому посту.
Please open Telegram to view this post
VIEW IN TELEGRAM
5 16🔥9 6👍3❤🔥2
Скидки на базу iOS IQ - пора подписываться?
Напомню, что кроме канала у нас есть мощный инструмент, в котором многовекторно рассматриваются основные аспекты разработки на более детальном уровне (включая код, примеры и полезные темы).
🧠 Что вы получите уже сейчас:
Это только верхушка айсберга: также вы получите доступ к ранним релизам приложения iOS IQ, тонну теории и многое другое.
🤖 А ещё бонусный режим собесов в моём боте iOS IQ Bot.
Подпишитесь сегодня⭐️ в телеграме или 💰 с приятными условиями на бусти.
😃 iOS Dev
Напомню, что кроме канала у нас есть мощный инструмент, в котором многовекторно рассматриваются основные аспекты разработки на более детальном уровне (включая код, примеры и полезные темы).
➡️ Карта изучения Swift Concurrency (примеры, разбор каждого уровня, полезные советы)➡️ Вопросы на чтение кода (несколько уровней: простых, посложнее)➡️ Многопоточность➡️ DispatchQueue: практические вопросы➡️ Swift Concurrency➡️ Алгоритмы: терминология и примеры + путь Яндекс Coderun (разбор нескольких десятков задач)➡️ Память: ARC, side table, флаги, утечки➡️ Результаты зарплатного опроса в нашем канале + сравнение с европейскими реальными зарплатами в iOS➡️ Разбор подходов к анимациям и лучшие паттерны (классические способы, Metal, комбинации - все подкреплено кодом)➡️ Утечки памяти в Swift: что с ними делать, как предотвратить?➡️ Навигация в SwiftUI: типы, отличия, разбор неочевидных моментов
Это только верхушка айсберга: также вы получите доступ к ранним релизам приложения iOS IQ, тонну теории и многое другое.
Подпишитесь сегодня
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤🔥9 8 5👍3🔥2✍1
Как вы считается, начнут ли снижаться зарплаты разработчиков из-за допуска ИИ-инструментов?
Anonymous Poll
36%
Да
64%
Нет
4 7🤯6✍5💯3 2❤🔥1👍1🔥1🍓1
Новое расширение для фоновой загрузки ресурсов в iOS 26.1
➡️ В iOS 26.1 в PhotoKit (жаль, конечно, что только в нём, но может в будущем будет апдейт) появился новый вид расширений Background Resource Upload.
По факту, система сама будет управлять загрузками от имени приложения и обрабатывать их в фоне (даже если юзеры переключатся на другие приложения или, например, заблокируют свои девайсы).
Из бонусов: автоматическое управление сетевым подключением, энергосбережением и управление таймингами, чтобы обеспечить надежную обработку.
📖 Пример кода и официальная документация
😃 iOS Dev
По факту, система сама будет управлять загрузками от имени приложения и обрабатывать их в фоне (даже если юзеры переключатся на другие приложения или, например, заблокируют свои девайсы).
Из бонусов: автоматическое управление сетевым подключением, энергосбережением и управление таймингами, чтобы обеспечить надежную обработку.
📖 Пример кода и официальная документация
Please open Telegram to view this post
VIEW IN TELEGRAM
11 19👍10 6🔥5✍3❤🔥1💯1
В июне я писал про создание рабочей группы, целью которой стала поддержка Android в качестве официальной поддерживаемой платформы.
📖 Сегодня был объявлен выпуск предварительных версий Swift SDK для Android.
Уже есть гайд по запуску кода для андроид-девайсов, репа с примерами, а ещё можно чекать доску со статусом прогресса реализации основных фич.
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥46🤯11 10👍4 3
This media is not supported in your browser
VIEW IN TELEGRAM
Трансформация Glass Views с помощью glassEffectID
Среди новых API для работы с интерфейсами можно выделить glassEffectID.
С его помощью можно реализовать плавный переход вьюх друг в друга (например, сделать из одной кнопки несколько и наоборот).
Как обычно, у всего есть условия, например, нам нужно ещё и использовать GlassEffectContainer.
📖 Понятный пример использования есть здесь, а код проект доступен вот тут.
А как применять Liquid Glass к кастомным вью - можно чекнуть в официальной документации.
😃 iOS Dev
Среди новых API для работы с интерфейсами можно выделить glassEffectID.
С его помощью можно реализовать плавный переход вьюх друг в друга (например, сделать из одной кнопки несколько и наоборот).
Как обычно, у всего есть условия, например, нам нужно ещё и использовать GlassEffectContainer.
📖 Понятный пример использования есть здесь, а код проект доступен вот тут.
А как применять Liquid Glass к кастомным вью - можно чекнуть в официальной документации.
Please open Telegram to view this post
VIEW IN TELEGRAM
6 20🔥10 8💯3❤🔥2✍1👍1
Стоимость разработки
Всегда вызывает лёгкую улыбку, когда вижу дискуссии про сокращение/увеличение стоимости разработки.
Парадоксально, но чаще об этом пишут или рассказывают на круглых столах с серьёзными лицами ребята со штатом в 100-200 и более разработчиков.
Ребят, ваши бюджеты на найм раздуты до размера Гинденбурга.
Когда у вас монополия на целую область экономики: будь то банковская сфера или рынок перепродажи б/у товаров, то задумываться о том, повлияет ли ИИ на стоимость разработки, просто смешно.
- ещё раз, не откликов, не просмотров вакансий, а 200 собеседований - с вовлечением как минимум двоих сотрудников, а скорее всего целой цепочки.
О какой экономии вообще речь?
ИИ не сократит стоимость разработки - на поддержку будет потрачено кратно больше ресурсов, инженеры по внедрению AI-решений ситуацию должны упростить, но поиск и рабочие места для таких спецов максимум уравновесят чаши весов.
Вчера увидел тезис, что бизнес-логику сейчас в основном пишет ИИ, а мобильная разработка проиграла - это выглядит как дешёвый хайп и попытка пиара.
Если проводят конфы и говорят, как же хорош BDUI,как мощны его лапищи - хочется напомнить, что вообще-то по гайдам нельзя менять принцип действия фич после проверки в App Store, а за показ другого экрана, не того, что был на ревью - вообще-то должен быть реджект и санкции вплоть до выпила учётки из стора.
Понятно, что бизнес должен выкручиваться - и сейчас всё это выглядит именно так даже для людей, далёких от разработки.
Кайфово, что придумали концепт c QR-кодами и блютузом для оплаты, но каким же костылём это выглядит по сравнению c NFC-стандартом для Apple Pay.
Для меня именно так и выглядит BDUI - не более, чем костыль, просто в масштабах корпораций.
Ничто не заменит нативный опыт, всё остальное - самовнушение.
Стоимость разработки приложений, да и любых проектов в целом - это только один кубик в пирамиде, достаточно посмотреть, сколько ярусов занимает маркетинг.
А тем, кто говорит, как же здорово - что все оптимизируется через ИИ, хочется предложить пообщаться пару раз с чат-ботами в банке или, например, на сервисе по продаже билетов.
Когда-нибудь с такими оптимизациями ключ: «позови оператора» уже не поможет.
😃 iOS Dev
Всегда вызывает лёгкую улыбку, когда вижу дискуссии про сокращение/увеличение стоимости разработки.
Парадоксально, но чаще об этом пишут или рассказывают на круглых столах с серьёзными лицами ребята со штатом в 100-200 и более разработчиков.
Ребят, ваши бюджеты на найм раздуты до размера Гинденбурга.
Когда у вас монополия на целую область экономики: будь то банковская сфера или рынок перепродажи б/у товаров, то задумываться о том, повлияет ли ИИ на стоимость разработки, просто смешно.
В Яндексе в среднем за день проходит собеседование 200 кандидатов
- ещё раз, не откликов, не просмотров вакансий, а 200 собеседований - с вовлечением как минимум двоих сотрудников, а скорее всего целой цепочки.
О какой экономии вообще речь?
ИИ не сократит стоимость разработки - на поддержку будет потрачено кратно больше ресурсов, инженеры по внедрению AI-решений ситуацию должны упростить, но поиск и рабочие места для таких спецов максимум уравновесят чаши весов.
Вчера увидел тезис, что бизнес-логику сейчас в основном пишет ИИ, а мобильная разработка проиграла - это выглядит как дешёвый хайп и попытка пиара.
Если проводят конфы и говорят, как же хорош BDUI,
Понятно, что бизнес должен выкручиваться - и сейчас всё это выглядит именно так даже для людей, далёких от разработки.
Кайфово, что придумали концепт c QR-кодами и блютузом для оплаты, но каким же костылём это выглядит по сравнению c NFC-стандартом для Apple Pay.
Для меня именно так и выглядит BDUI - не более, чем костыль, просто в масштабах корпораций.
Ничто не заменит нативный опыт, всё остальное - самовнушение.
Стоимость разработки приложений, да и любых проектов в целом - это только один кубик в пирамиде, достаточно посмотреть, сколько ярусов занимает маркетинг.
А тем, кто говорит, как же здорово - что все оптимизируется через ИИ, хочется предложить пообщаться пару раз с чат-ботами в банке или, например, на сервисе по продаже билетов.
Когда-нибудь с такими оптимизациями ключ: «позови оператора» уже не поможет.
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤🔥42💯28🍓13👏5 5👍3🔥3 3⚡1