Xcode Bookmarks: создание закладок в коде и организация задач
Закладки в Xcode — новая фича, чтобы быстро перемещаться между важными участками кода (и не только).
Их можно группировать, использовать для поисковых запросов и даже запилить собственный TODO-лист.
🧑💻 С помощью быстрых действий для создания понадобится пара секунд и комбинация:
📖 А вот тут можно прочесть об этих и других сценариях использования.
😃 iOS Dev
Закладки в Xcode — новая фича, чтобы быстро перемещаться между важными участками кода (и не только).
Их можно группировать, использовать для поисковых запросов и даже запилить собственный TODO-лист.
Shift ⇧ + Command ⌘ + A
.📖 А вот тут можно прочесть об этих и других сценариях использования.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍7❤1🤩1🤣1🏆1🆒1
Справочное руководство по использованию SF-символов
😎
Кроме этого, расширяются и возможности работы с ними: заполнение по слоям, управление цветами и возможность добавления анимаций, а также, например, использование их в меню.
📖 В этой статье можно больше узнать о возможностях использования символов в проектах.
😃 iOS Dev
SF Symbols
позволяют отображать огромное количество иконок в наших приложениях, и с каждым годом их становится всё больше. Кроме этого, расширяются и возможности работы с ними: заполнение по слоям, управление цветами и возможность добавления анимаций, а также, например, использование их в меню.
📖 В этой статье можно больше узнать о возможностях использования символов в проектах.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥3👏2❤1🏆1
Реализация анимированного фона с цветным градиентом в SwiftUI
Анимация c использованием градиентного фона может сделать ваше приложение более динамичным (и интересным).
Один из способов достижения этого эффекта — использование
Но при реализации важно поддерживать баланс между приятной анимацией и той, которая может отвлечь.
В этой серии статей можно познакомиться с различными способами добавления градиента в ваше приложение:
📖 Линейный градиент.
📖 AngularGradient (или же конический градиент) в SwiftUI.
📖 Радиальный градиент.
📖 Реализация анимированного фона.
Пример приложения на Github доступен здесь.
😃 iOS Dev
Анимация c использованием градиентного фона может сделать ваше приложение более динамичным (и интересным).
Один из способов достижения этого эффекта — использование
AngularGradient
. Но при реализации важно поддерживать баланс между приятной анимацией и той, которая может отвлечь.
В этой серии статей можно познакомиться с различными способами добавления градиента в ваше приложение:
📖 Линейный градиент.
📖 AngularGradient (или же конический градиент) в SwiftUI.
📖 Радиальный градиент.
📖 Реализация анимированного фона.
Пример приложения на Github доступен здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥5❤4👏1🏆1🆒1
Почему вы должны использовать OSLog в 2023
Xcode 15 (пока что ещё бета) поддерживает структурированное логирование в консоли.
🟡🔴Теперь добавлена подсистема фильтров, и даже появилась возможность выделять предупреждения желтым цветом, а ошибки — красным.
Важно учесть, что такое логирование будет работать только для iOS 17, а на 16 оси логи будут отображаться так же, как и при использовании
📖 Вот тут можно увидеть больше примеров использования и возможность использования
😃 iOS Dev
Xcode 15 (пока что ещё бета) поддерживает структурированное логирование в консоли.
🟡🔴Теперь добавлена подсистема фильтров, и даже появилась возможность выделять предупреждения желтым цветом, а ошибки — красным.
Важно учесть, что такое логирование будет работать только для iOS 17, а на 16 оси логи будут отображаться так же, как и при использовании
print
.📖 Вот тут можно увидеть больше примеров использования и возможность использования
extension
для такого логирования.Please open Telegram to view this post
VIEW IN TELEGRAM
👏16🔥6👍4❤🔥1🏆1😐1
Как реализовать обновление ассетов в приложении в реальном времени
Во многих приложениях требуются вещи, доступные для изменения без создания новой сборки:
🔘 Конфигурации для экспериментальных функций.
🔘 Ссылки, например, на политику конфиденциальности и т.д., которые нужно менять из-за обновления домена.
🔘 Небольшие сниппеты
📖 В этом материале Кшиштоф Заблоцки рассказывает о требованиях, возможных конфигах и подходе к реализации такой логики.
⭐️ Внимание, такой контент обычно платный, но сейчас Кшиштоф решил выложить материал в открытый доступ, поэтому я и публикую его в нашем канале.
😃 iOS Dev
Во многих приложениях требуются вещи, доступные для изменения без создания новой сборки:
Javascript
для определённой логики (такой подход использует New York Times
).📖 В этом материале Кшиштоф Заблоцки рассказывает о требованиях, возможных конфигах и подходе к реализации такой логики.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍4❤3👏2🤩1🏆1
This media is not supported in your browser
VIEW IN TELEGRAM
Важное обновление Xcode 15 beta 6: можно комментировать код даже на одной строке!
🥳 Фича, которую так или иначе многие пытались использовать во всех предыдущих версиях Xcode, наконец реализована!
В релизнотах об этом ни слова, хотя как об этом можно не сообщить!
Теперь можно комментить код даже на одной строке (например, тестовые параметры или что-то в перечислениях).
Пока что только в бете.
😃 iOS Dev
В релизнотах об этом ни слова, хотя как об этом можно не сообщить!
Теперь можно комментить код даже на одной строке (например, тестовые параметры или что-то в перечислениях).
Пока что только в бете.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥34👍8🎉7🤣5❤3😐3👏1🤩1🏆1
Экскурсия по Xcode Debug Console: описание всех параметров
Все мы знаем, что отладочная консоль Xcode позволяет искать проблемы в приложениях.
⭐️ В Xcode 15 появилась новая версия консоли с улучшенными возможностями журналирования.
Каждый лог-левел будет отображаться разным цветом, а расширенные фильтры позволят показать только нужное.
📖 Вот тут есть хороший разбор новых возможностей для просмотра метаданных и фильтрации.
😃 iOS Dev
Все мы знаем, что отладочная консоль Xcode позволяет искать проблемы в приложениях.
Каждый лог-левел будет отображаться разным цветом, а расширенные фильтры позволят показать только нужное.
📖 Вот тут есть хороший разбор новых возможностей для просмотра метаданных и фильтрации.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥2❤1👏1🏆1🆒1
5 шагов для поиска медленного кода с Xcode Time Profiler
При старте использования
😎 Один из подходов — использовать пять простых шагов для выявления «узких мест» в коде.
📖 В этом материале на примере описаны этапы, которые можно использовать для поиска проблем в приложении.
😃 iOS Dev
При старте использования
Time Profiler
он может казаться перегруженным из-за огромного количества данных. 📖 В этом материале на примере описаны этапы, которые можно использовать для поиска проблем в приложении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥6👏2🏆2🆒1😎1
Так когда всё-таки действительно нужно использовать [weak self]?
Чтобы ответить на этот вопрос, в любом случае необходимы примеры, но, как обычно в нашей разработке,
Например, последние версии Swift заставили посмотреть на использование под иным углом.
📖 В своём материале Винсент приводит несколько примеров, и объясняет, когда
📖 Кстати, вот тут можно узнать, какие из сценариев могут привести к утечкам памяти.
😃 iOS Dev
Чтобы ответить на этот вопрос, в любом случае необходимы примеры, но, как обычно в нашей разработке,
it depends
.Например, последние версии Swift заставили посмотреть на использование под иным углом.
📖 В своём материале Винсент приводит несколько примеров, и объясняет, когда
[weak self]
необходим, и когда это излишне, как, например, в случае с .map()
.📖 Кстати, вот тут можно узнать, какие из сценариев могут привести к утечкам памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍8❤4🏆2🤯1🤣1
Ошибки, которых следует избегать при внедрении TipKit в приложение
➡ ️ Новый фреймворк — отличный помощник для выделения интересных или пока неиспользуемых пользователями фич.
Его просто добавить, управлять и в целом использовать в своих проектах.
Несмотря на это, во всём нужно знать меру.
📖 В этом материале разбираются ошибки, которые можно допустить при работе с
😃 iOS Dev
Его просто добавить, управлять и в целом использовать в своих проектах.
Несмотря на это, во всём нужно знать меру.
📖 В этом материале разбираются ошибки, которые можно допустить при работе с
TipKit
.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3❤2👏1🏆1🫡1
Настройка iOS-приложения для поддержки push-уведомлений
Добавление возможности работы с пушами в iOS достаточно сложный процесс, включающий в себя несколько этапов.
⏩ С опытом, конечно, всё станет проще, но если вы делаете это в первый раз, то будет полезно посмотреть несложную инструкцию.
📖 В этой статье описаны необходимые настройки и пример использования новой Push Notification Console.
😃 iOS Dev
Добавление возможности работы с пушами в iOS достаточно сложный процесс, включающий в себя несколько этапов.
📖 В этой статье описаны необходимые настройки и пример использования новой Push Notification Console.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥3❤2👏2🏆2🆒1
Одно из любимых приложений, которое я поддерживаю продолжительное время (уже более трёх лет) — трекер сбережений/долгов/целей.
Раз за разом я стараюсь прокачивать его, используя фишки Apple. Иногда это виджеты, иногда — приложение для часов.
Помню, как запилил туда кросс-интеграцию европейских банков для сверки курсов (и авто-конвертации валют в выбранную).
Так вот, сегодня один из тех дней, когда я выкатил большое масштабное обновление на ProductHunt.
👍 И рассчитываю на вашу поддержку там (комментарий или просто upvote было бы очень круто).
➡️ Помочь своим голосом можно здесь.
😃 iOS Dev
Раз за разом я стараюсь прокачивать его, используя фишки Apple. Иногда это виджеты, иногда — приложение для часов.
Помню, как запилил туда кросс-интеграцию европейских банков для сверки курсов (и авто-конвертации валют в выбранную).
Так вот, сегодня один из тех дней, когда я выкатил большое масштабное обновление на ProductHunt.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥49👍15🎉2🤩2👏1🤔1🤣1🏆1🫡1
Исследование MeasurementFormatter и пример его применения
Иногда из-за разниц подходов к измерениям в метрической и, например, американской системах код может выглядеть не очень приятно.
Тогда на помощь может прийти
📖 Вот тут есть хорошее объяснение, когда его лучше использовать, и приводится пример для разных локалей.
😃 iOS Dev
Иногда из-за разниц подходов к измерениям в метрической и, например, американской системах код может выглядеть не очень приятно.
Тогда на помощь может прийти
MeasurementFormatter
.📖 Вот тут есть хорошее объяснение, когда его лучше использовать, и приводится пример для разных локалей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍7❤3👏3🏆1🆒1
Загляните в канал Романа, который прошел путь от iOS разработчика до топ-менеджера международной компании.
Автор пишет о создании пет-проектов, управлении командой, iOS разработке, переходе из инженера в менеджеры.
Интересные статьи:
Хайп на алгоритмах
Поиск ниши для приложения
Как развить критический взгляд
IT это легко или сложно?
👉Подробнее в канале iOS Enjoyer
Автор пишет о создании пет-проектов, управлении командой, iOS разработке, переходе из инженера в менеджеры.
Интересные статьи:
Хайп на алгоритмах
Поиск ниши для приложения
Как развить критический взгляд
IT это легко или сложно?
👉Подробнее в канале iOS Enjoyer
Telegram
Роман Галь – Работа в IT
Управление командой, составление резюме, переход из инженера в менеджеры, создание пет-проектов
Предложить статью или новость: @iOSEnjoyerBot
Автор: @roman_mobile
Предложить статью или новость: @iOSEnjoyerBot
Автор: @roman_mobile
👍16🔥8🤣6👏2🎉2🤔1🤩1🌚1🏆1🆒1
Улучшение времени сборки приложений и SPM-пакетов
Прежде, чем приступать к подобным оптимизациям, важно определить цели. Например, что мы хотим улучшить, только ли «чистые билды» или же инкрементальные сборки.
Кроме этого, можно использовать флаги для вывода предупреждений в тех местах, компиляция которых занимает больше, чем хотелось бы:
📖 В этом исследовании можно посмотреть, что возможно ускорить и какие именно настройки в Xcode могут нам в этом помочь.
😃 iOS Dev
Прежде, чем приступать к подобным оптимизациям, важно определить цели. Например, что мы хотим улучшить, только ли «чистые билды» или же инкрементальные сборки.
Timing Summary
и Recent Build TimeLine
— важнейшие инструменты в Xcode для измерения времени компиляции.Кроме этого, можно использовать флаги для вывода предупреждений в тех местах, компиляция которых занимает больше, чем хотелось бы:
-Xfrontend -warn-long-function-bodies
=<milliseconds>-Xfrontend -warn-long-expression-type-checking
=<milliseconds>📖 В этом исследовании можно посмотреть, что возможно ускорить и какие именно настройки в Xcode могут нам в этом помочь.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍7❤4👏2🏆1🤗1
Поиск неиспользуемого кода с помощью Periphery
Принцип работы этого инструмента в следующем. Сначала собирается проект, затем для каждого файла с исходным кодом
И уже после завершения индексации анализируется граф для выявления неиспользуемого кода.
В долгосрочной перспективе использование
📖 Пример использования Periphery.
🛠 Ссылка на сам инструмент на Github.
😃 iOS Dev
Принцип работы этого инструмента в следующем. Сначала собирается проект, затем для каждого файла с исходным кодом
Periphery
строит свое внутреннее графовое представление проекта. И уже после завершения индексации анализируется граф для выявления неиспользуемого кода.
В долгосрочной перспективе использование
Peiphery
позволит тратить меньше времени на компиляцию (что логично, меньше кода) и избавит от лишнего шума в кодовой базе.📖 Пример использования Periphery.
🛠 Ссылка на сам инструмент на Github.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥4❤3🏆2🤩1🆒1
Как проверить, нужно ли вам указывать причину для использования UserDefaults (и не только)
Осень уже скоро, а вместе с ней и новые требования к API, используемых в проектах.
Для privacy manifest (больше на wwdc notes) потребуется вносить инфу, с какой целью используется некоторые категории фреймворков.
📖 Для поиска таких API Марко Эйдингер написал скрипт, но рекомендует для начала вынести результаты в текстовый файл.
😃 iOS Dev
Осень уже скоро, а вместе с ней и новые требования к API, используемых в проектах.
Для privacy manifest (больше на wwdc notes) потребуется вносить инфу, с какой целью используется некоторые категории фреймворков.
📖 Для поиска таких API Марко Эйдингер написал скрипт, но рекомендует для начала вынести результаты в текстовый файл.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥4👏2🤩1🏆1🆒1
Подводные камни тестирования кода в Swift Concurrency
Swift Concurrency — мощнейший инструмент, который в том числе позволяет выполнять задачи с разным приоритетом.
🔘 Несмотря на это, периодически могут возникать сложности и непростые для тестирования кейсы.
📖 В исследовании Александр Пиманов и Камиль Ишмуратов разбираются в причинах, рассказывают о порядке выполнения задач и знакомят с протоколом
📖 Рекомендую к ознакомлению и этот пост: Swift Concurrency — вещи, о которых вам не говорят.
😃 iOS Dev
Swift Concurrency — мощнейший инструмент, который в том числе позволяет выполнять задачи с разным приоритетом.
📖 В исследовании Александр Пиманов и Камиль Ишмуратов разбираются в причинах, рассказывают о порядке выполнения задач и знакомят с протоколом
Executor
.📖 Рекомендую к ознакомлению и этот пост: Swift Concurrency — вещи, о которых вам не говорят.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥3❤1🏆1🫡1🆒1
Swift 6: подготовка ваших проектов Xcode к будущему
📁 Команда разработчиков Swift поделилась своими приоритетными направлениями на 2023 год и ранее выпустила подробный отчет о пути к Swift 6.
Оба документа описывают видение будущего Swift и помогают подготовиться к миграции проекта.
📖 В этом материале описаны шаги, которые можно предпринять для адаптации ваших проектов к предстоящим изменениям.
😃 iOS Dev
Оба документа описывают видение будущего Swift и помогают подготовиться к миграции проекта.
📖 В этом материале описаны шаги, которые можно предпринять для адаптации ваших проектов к предстоящим изменениям.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤5🔥2👏1🤩1🏆1
Стерпятся — слюбятся: как заставить Swift и Objective-C работать в одном SDK
📖 В новой статье на Хабре описывается методика совместного использования Objective-C и Swift в SDK.
Авторы рассматривают различные подходы, объясняют, почему стандартный способ оказался непригодным, и рассказывают, что они смогли получить в результате.
👨💻 Эта информация будет полезна разработчикам SDK, работающим с обоими языками, а также тем, кто планирует перейти с Objective-C на Swift.
😃 iOS Dev
📖 В новой статье на Хабре описывается методика совместного использования Objective-C и Swift в SDK.
Авторы рассматривают различные подходы, объясняют, почему стандартный способ оказался непригодным, и рассказывают, что они смогли получить в результате.
👨💻 Эта информация будет полезна разработчикам SDK, работающим с обоими языками, а также тем, кто планирует перейти с Objective-C на Swift.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4🔥2👏1🏆1🫡1