This media is not supported in your browser
VIEW IN TELEGRAM
Лёгкая демонстрация эффекта липкости на SwiftUI
📖 Минсанг Чой поделился необычным подходом к реализации (без использования Metal 😉).
🛠 Исходный код доступен на GitHub.
😃 iOS Dev
📖 Минсанг Чой поделился необычным подходом к реализации (без использования Metal 😉).
🛠 Исходный код доступен на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥52 12❤🔥6👍5✍1🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
Повторяем эффект Apple Intelligence - разбор+код
В новой оси можно было заметить анимированный эффект обводки, который динамически подсвечивает формы и компоненты.
📖 В этой статье автор пробует воссоздать этот эффект в SwiftUI с помощью модификаторов для фона и оверлэя и делится расширением.
🛠 Исходный код доступен здесь.
😃 iOS Dev
В новой оси можно было заметить анимированный эффект обводки, который динамически подсвечивает формы и компоненты.
📖 В этой статье автор пробует воссоздать этот эффект в SwiftUI с помощью модификаторов для фона и оверлэя и делится расширением.
🛠 Исходный код доступен здесь.
Если захотите подключить через SPM, то используйте этот адрес (в самой репе ошибка).
Please open Telegram to view this post
VIEW IN TELEGRAM
5 21 9❤🔥7👍7✍1🔥1
Классическая история
Написание кода - это лишь верхушка айсберга наших задач.
Вот одна из классических ситуаций: вы заложили время на реализацию фичи, успешно сделали требуемое, все покрыли тестами, затем отдали в тестирование QA-команде, а она оказалсь сейчас загружена.
Проходит день, другой, неделя - фича все еще в фазе "на проверку/на тестирование", вы уже погрузились в контекст другой задачи, совсем забыв про то, что делали.
И вот наступает долгожданный момент, когда вашу задачу наконец тестируют и... Возвращают обратно.
Причина банальна ну просто донельзя, например, в изменившихся требованиях (оказывается, что в целом это положительное изменение для пользователей), и вам нужно что-то менять, дорабатывать, а тут ещё и новая ось подоспела, да и версия Swift повысилась. Поэтому нужно апдейтить код к изменившимся условиям, допиливать, повторять процесс снова.
Эта итерация может повториться несколько раз. И окажется, что вообще-то время релизить, все команды уже готовы - а вы доделываете фичу, учитывая окончательные требования. Вот только и они могут поменяться.
Идеальных процессов не бывает - бывают лишь многократно улучшенные. Разработка и создание проектов - это живой организм, пусть на некоторых он и может действовать как кордицепс, проявляя себя в разных симптомах.
Умение адаптироваться к постоянным изменениям, использовать те инструменты, которые актуальны сейчас, соглашаться с тем, что иногда фичи действительно могут быть выпилены, даже когда на них потрачено много сил - лишь одна часть из того, что включает наша работа.
Об этом не пишут популярные блогеры, которые хотят нажиться на желающих влететь в разработку, быстро раскрутиться и обещающих мир в розовых очках.
Здесь всё сложнее.
😃 iOS Dev
Написание кода - это лишь верхушка айсберга наших задач.
Вот одна из классических ситуаций: вы заложили время на реализацию фичи, успешно сделали требуемое, все покрыли тестами, затем отдали в тестирование QA-команде, а она оказалсь сейчас загружена.
Проходит день, другой, неделя - фича все еще в фазе "на проверку/на тестирование", вы уже погрузились в контекст другой задачи, совсем забыв про то, что делали.
И вот наступает долгожданный момент, когда вашу задачу наконец тестируют и... Возвращают обратно.
Причина банальна ну просто донельзя, например, в изменившихся требованиях (оказывается, что в целом это положительное изменение для пользователей), и вам нужно что-то менять, дорабатывать, а тут ещё и новая ось подоспела, да и версия Swift повысилась. Поэтому нужно апдейтить код к изменившимся условиям, допиливать, повторять процесс снова.
Эта итерация может повториться несколько раз. И окажется, что вообще-то время релизить, все команды уже готовы - а вы доделываете фичу, учитывая окончательные требования. Вот только и они могут поменяться.
Идеальных процессов не бывает - бывают лишь многократно улучшенные. Разработка и создание проектов - это живой организм, пусть на некоторых он и может действовать как кордицепс, проявляя себя в разных симптомах.
Умение адаптироваться к постоянным изменениям, использовать те инструменты, которые актуальны сейчас, соглашаться с тем, что иногда фичи действительно могут быть выпилены, даже когда на них потрачено много сил - лишь одна часть из того, что включает наша работа.
Об этом не пишут популярные блогеры, которые хотят нажиться на желающих влететь в разработку, быстро раскрутиться и обещающих мир в розовых очках.
Здесь всё сложнее.
Please open Telegram to view this post
VIEW IN TELEGRAM
9💯26 9❤🔥6👍4🔥3🏆3🤯1
Кэширование изображений в 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 14🔥10👍4💯3 2
Сколько часов в день в среднем у вас занимает написание кода?
Anonymous Poll
10%
0
5%
1
13%
2
19%
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❤🔥8 8 5👍3🔥2✍1
Как вы считается, начнут ли снижаться зарплаты разработчиков из-за допуска ИИ-инструментов?
Anonymous Poll
37%
Да
63%
Нет
4 7🤯6✍5💯3 2❤🔥1👍1🔥1🍓1