iOS Dev
7.52K subscribers
943 photos
66 videos
1 file
1.07K links
🍏Канал об iOS-разработке, необычных подходах и решениях.
👨‍💻Автор: Виктор Грушевский (@Viktorianec)
Темы:
⭐️ Подготовка к собеседованиям.
⭐️ Архитектуры и алгоритмы.
⭐️ Код. Много кода.

⚒️База знаний: https://boosty.to/ios_dev

#ios #mobile #swift
加入频道
Xcode Bookmarks: создание закладок в коде и организация задач

Закладки в Xcode — новая фича, чтобы быстро перемещаться между важными участками кода (и не только).

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

🧑‍💻 С помощью быстрых действий для создания понадобится пара секунд и комбинация: Shift ⇧ + Command ⌘ + A.

📖 А вот тут можно прочесть об этих и других сценариях использования.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Справочное руководство по использованию SF-символов

😎 SF Symbols позволяют отображать огромное количество иконок в наших приложениях, и с каждым годом их становится всё больше.

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

📖 В этой статье можно больше узнать о возможностях использования символов в проектах.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Реализация анимированного фона с цветным градиентом в SwiftUI

Анимация c использованием градиентного фона может сделать ваше приложение более динамичным (и интересным).

Один из способов достижения этого эффекта — использование AngularGradient.

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

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

📖 Линейный градиент.

📖 AngularGradient (или же конический градиент) в SwiftUI.

📖 Радиальный градиент.

📖 Реализация анимированного фона.

Пример приложения на Github доступен здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему вы должны использовать OSLog в 2023

Xcode 15 (пока что ещё бета) поддерживает структурированное логирование в консоли.

🟡🔴Теперь добавлена подсистема фильтров, и даже появилась возможность выделять предупреждения желтым цветом, а ошибки — красным.

Важно учесть, что такое логирование будет работать только для iOS 17, а на 16 оси логи будут отображаться так же, как и при использовании print.

📖 Вот тут можно увидеть больше примеров использования и возможность использования extension для такого логирования.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Как реализовать обновление ассетов в приложении в реальном времени

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

🔘 Конфигурации для экспериментальных функций.

🔘 Ссылки, например, на политику конфиденциальности и т.д., которые нужно менять из-за обновления домена.

🔘 Небольшие сниппеты Javascript для определённой логики (такой подход использует New York Times).

📖 В этом материале Кшиштоф Заблоцки рассказывает о требованиях, возможных конфигах и подходе к реализации такой логики.

⭐️ Внимание, такой контент обычно платный, но сейчас Кшиштоф решил выложить материал в открытый доступ, поэтому я и публикую его в нашем канале.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Экскурсия по Xcode Debug Console: описание всех параметров

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

⭐️ В Xcode 15 появилась новая версия консоли с улучшенными возможностями журналирования.

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

📖 Вот тут есть хороший разбор новых возможностей для просмотра метаданных и фильтрации.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
5 шагов для поиска медленного кода с Xcode Time Profiler

При старте использования Time Profiler он может казаться перегруженным из-за огромного количества данных.

😎 Один из подходов — использовать пять простых шагов для выявления «узких мест» в коде.

📖 В этом материале на примере описаны этапы, которые можно использовать для поиска проблем в приложении.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Так когда всё-таки действительно нужно использовать [weak self]?

Чтобы ответить на этот вопрос, в любом случае необходимы примеры, но, как обычно в нашей разработке, it depends.

Например, последние версии Swift заставили посмотреть на использование под иным углом.

📖 В своём материале Винсент приводит несколько примеров, и объясняет, когда [weak self] необходим, и когда это излишне, как, например, в случае с .map().

📖 Кстати, вот тут можно узнать, какие из сценариев могут привести к утечкам памяти.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Ошибки, которых следует избегать при внедрении TipKit в приложение

Новый фреймворк — отличный помощник для выделения интересных или пока неиспользуемых пользователями фич.

Его просто добавить, управлять и в целом использовать в своих проектах.

Несмотря на это, во всём нужно знать меру.

📖 В этом материале разбираются ошибки, которые можно допустить при работе с TipKit.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Настройка iOS-приложения для поддержки push-уведомлений

Добавление возможности работы с пушами в iOS достаточно сложный процесс, включающий в себя несколько этапов.

С опытом, конечно, всё станет проще, но если вы делаете это в первый раз, то будет полезно посмотреть несложную инструкцию.

📖 В этой статье описаны необходимые настройки и пример использования новой Push Notification Console.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Одно из любимых приложений, которое я поддерживаю продолжительное время (уже более трёх лет) — трекер сбережений/долгов/целей.

Раз за разом я стараюсь прокачивать его, используя фишки Apple. Иногда это виджеты, иногда — приложение для часов.

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

Так вот, сегодня один из тех дней, когда я выкатил большое масштабное обновление на ProductHunt.

👍 И рассчитываю на вашу поддержку там (комментарий или просто upvote было бы очень круто).

➡️ Помочь своим голосом можно здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Исследование MeasurementFormatter и пример его применения

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

Тогда на помощь может прийти MeasurementFormatter.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Загляните в канал Романа, который прошел путь от iOS разработчика до топ-менеджера международной компании.

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

Интересные статьи:
Хайп на алгоритмах
Поиск ниши для приложения
Как развить критический взгляд
IT это легко или сложно?

👉Подробнее в канале iOS Enjoyer
Улучшение времени сборки приложений и SPM-пакетов

Прежде, чем приступать к подобным оптимизациям, важно определить цели. Например, что мы хотим улучшить, только ли «чистые билды» или же инкрементальные сборки.

Timing Summary и Recent Build TimeLine — важнейшие инструменты в Xcode для измерения времени компиляции.

Кроме этого, можно использовать флаги для вывода предупреждений в тех местах, компиляция которых занимает больше, чем хотелось бы:

-Xfrontend -warn-long-function-bodies=<milliseconds>
-Xfrontend -warn-long-expression-type-checking=<milliseconds>

📖 В этом исследовании можно посмотреть, что возможно ускорить и какие именно настройки в Xcode могут нам в этом помочь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Поиск неиспользуемого кода с помощью Periphery

Принцип работы этого инструмента в следующем. Сначала собирается проект, затем для каждого файла с исходным кодом Periphery строит свое внутреннее графовое представление проекта.

И уже после завершения индексации анализируется граф для выявления неиспользуемого кода.

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

📖 Пример использования Periphery.

🛠 Ссылка на сам инструмент на Github.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Как проверить, нужно ли вам указывать причину для использования UserDefaults (и не только)

Осень уже скоро, а вместе с ней и новые требования к API, используемых в проектах.

Для privacy manifest (больше на wwdc notes) потребуется вносить инфу, с какой целью используется некоторые категории фреймворков.

📖 Для поиска таких API Марко Эйдингер написал скрипт, но рекомендует для начала вынести результаты в текстовый файл.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Подводные камни тестирования кода в Swift Concurrency

Swift Concurrency — мощнейший инструмент, который в том числе позволяет выполнять задачи с разным приоритетом.

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

📖 В исследовании Александр Пиманов и Камиль Ишмуратов разбираются в причинах, рассказывают о порядке выполнения задач и знакомят с протоколом Executor.

📖 Рекомендую к ознакомлению и этот пост: Swift Concurrency — вещи, о которых вам не говорят.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift 6: подготовка ваших проектов Xcode к будущему

📁 Команда разработчиков Swift поделилась своими приоритетными направлениями на 2023 год и ранее выпустила подробный отчет о пути к Swift 6.

Оба документа описывают видение будущего Swift и помогают подготовиться к миграции проекта.

📖 В этом материале описаны шаги, которые можно предпринять для адаптации ваших проектов к предстоящим изменениям.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Стерпятся — слюбятся: как заставить Swift и Objective-C работать в одном SDK

📖 В новой статье на Хабре описывается методика совместного использования Objective-C и Swift в SDK.

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

👨‍💻 Эта информация будет полезна разработчикам SDK, работающим с обоими языками, а также тем, кто планирует перейти с Objective-C на Swift.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM