iOS Dev
前往频道在 Telegram
👨💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift
显示更多7 876
订阅者
-424 小时
+27 天
-5430 天
帖子存档
7 876
Как проверить, нужно ли вам указывать причину для использования UserDefaults (и не только)
Осень уже скоро, а вместе с ней и новые требования к API, используемых в проектах.
Для privacy manifest (больше на wwdc notes) потребуется вносить инфу, с какой целью используется некоторые категории фреймворков.
📖 Для поиска таких API Марко Эйдингер написал скрипт, но рекомендует для начала вынести результаты в текстовый файл.
😃 iOS Dev
7 876
Поиск неиспользуемого кода с помощью Periphery
Принцип работы этого инструмента в следующем. Сначала собирается проект, затем для каждого файла с исходным кодом
Periphery строит свое внутреннее графовое представление проекта.
И уже после завершения индексации анализируется граф для выявления неиспользуемого кода.
В долгосрочной перспективе использование Peiphery позволит тратить меньше времени на компиляцию (что логично, меньше кода) и избавит от лишнего шума в кодовой базе.
📖 Пример использования Periphery.
🛠 Ссылка на сам инструмент на Github.
😃 iOS Dev7 876
🚀 TradingView ищет iOS Tech Lead.
Современный стек и подходы
UIKit, SwiftUI, Combine, async-await, iOS 15+
Комфортное место работы
Удаленка или офис в Тбилиси, Санкт-Петербурге и Ростове-на-Дону, а также помощь с релокейтом
Крутой международный продукт
Top-1 по доходу в категории финансовых приложений. Мобильная аудитория – 10 млн. MAU.
Наши решения используют Чикагская и Бразильская биржи, S&P Global, Forbes, Revolut, Interactive Brokers, Тинькофф, БКС, Открытие, Twitter.
Как откликнуться? 🏃♂️
Пиши @janemanolis, если обладаешь сильными навыками проектирования и глубоким пониманием iOS платформы.
👉Подробнее в вакансии
7 876
Улучшение времени сборки приложений и SPM-пакетов
Прежде, чем приступать к подобным оптимизациям, важно определить цели. Например, что мы хотим улучшить, только ли «чистые билды» или же инкрементальные сборки.
Timing Summary и Recent Build TimeLine — важнейшие инструменты в Xcode для измерения времени компиляции.
Кроме этого, можно использовать флаги для вывода предупреждений в тех местах, компиляция которых занимает больше, чем хотелось бы:
-Xfrontend -warn-long-function-bodies=<milliseconds>
-Xfrontend -warn-long-expression-type-checking=<milliseconds>
📖 В этом исследовании можно посмотреть, что возможно ускорить и какие именно настройки в Xcode могут нам в этом помочь.
😃 iOS Dev7 876
Загляните в канал Романа, который прошел путь от iOS разработчика до топ-менеджера международной компании.
Автор пишет о создании пет-проектов, управлении командой, iOS разработке, переходе из инженера в менеджеры.
Интересные статьи:
Хайп на алгоритмах
Поиск ниши для приложения
Как развить критический взгляд
IT это легко или сложно?
👉Подробнее в канале iOS Enjoyer
7 876
Исследование MeasurementFormatter и пример его применения
Иногда из-за разниц подходов к измерениям в метрической и, например, американской системах код может выглядеть не очень приятно.
Тогда на помощь может прийти
MeasurementFormatter.
📖 Вот тут есть хорошее объяснение, когда его лучше использовать, и приводится пример для разных локалей.
😃 iOS Dev7 876
Одно из моих любимых приложений, которое я поддерживаю продолжительное время (уже более трёх лет) — трекер сбережений/долгов/целей.
Раз за разом я стараюсь прокачивать его, используя фишки Apple. Иногда это виджеты, иногда — приложение для часов.
Помню, как запилил туда кросс-интеграцию европейских банков для сверки курсов (и авто-конвертации валют в выбранную).
Так вот, сегодня один из тех дней, когда я выкатил большое масштабное обновление на ProductHunt.
👍 И рассчитываю на вашу поддержку там (комментарий или просто upvote было бы очень круто).
➡️ Помочь своим голосом можно здесь.
😃 iOS Dev
7 876
Настройка iOS-приложения для поддержки push-уведомлений
Добавление возможности работы с пушами в iOS достаточно сложный процесс, включающий в себя несколько этапов.
⏩ С опытом, конечно, всё станет проще, но если вы делаете это в первый раз, то будет полезно посмотреть несложную инструкцию.
📖 В этой статье описаны необходимые настройки и пример использования новой Push Notification Console.
😃 iOS Dev
7 876
Ошибки, которых следует избегать при внедрении TipKit в приложение
➡️ Новый фреймворк — отличный помощник для выделения интересных или пока неиспользуемых пользователями фич.
Его просто добавить, управлять и в целом использовать в своих проектах.
Несмотря на это, во всём нужно знать меру.
📖 В этом материале разбираются ошибки, которые можно допустить при работе с
TipKit.
@iOS Dev7 876
Так когда всё-таки действительно нужно использовать [weak self]?
Чтобы ответить на этот вопрос, в любом случае необходимы примеры, но, как обычно в нашей разработке,
it depends.
Например, последние версии Swift заставили посмотреть на использование под иным углом.
📖 В своём материале Винсент приводит несколько примеров, и объясняет, когда [weak self] необходим, и когда это излишне, как, например, в случае с .map().
📖 Кстати, вот тут можно узнать, какие из сценариев могут привести к утечкам памяти.
@iOS Dev7 876
5 шагов для поиска медленного кода с Xcode Time Profiler
При старте использования
Time Profiler он может казаться перегруженным из-за огромного количества данных.
😎 Один из подходов — использовать пять простых шагов для выявления «узких мест» в коде.
📖 В этом материале на примере описаны этапы, которые можно использовать для поиска проблем в приложении.
@iOS Dev7 876
Экскурсия по Xcode Debug Console: описание всех параметров
Все мы знаем, что отладочная консоль Xcode позволяет искать проблемы в приложениях.
⭐️ В Xcode 15 появилась новая версия консоли с улучшенными возможностями журналирования.
Каждый лог-левел будет отображаться разным цветом, а расширенные фильтры позволят показать только нужное.
📖 Вот тут есть хороший разбор новых возможностей для просмотра метаданных и фильтрации.
@iOS Dev
7 876
Важное обновление Xcode 15 beta 6: можно комментировать код даже на одной строке!
🥳 Фича, которую так или иначе многие пытались использовать во многих версиях Xcode, наконец реализована!
Теперь можно комментить код даже на одной строке (например, тестовые параметры или что-то в перечислениях).
Пока что только в бете.
@iOS Dev
7 876
Как реализовать обновление ассетов в приложении в реальном времени
Во многих приложениях требуются вещи, доступные для изменения без создания новой сборки:
🔘 Конфигурации для экспериментальных функций.
🔘 Ссылки, например, на политику конфиденциальности и т.д., которые нужно менять из-за обновления домена.
🔘 Небольшие сниппеты
Javascript для определённой логики (такой подход использует New York Times).
📖 В этом материале Кшиштоф Заблоцки рассказывает о требованиях, возможных конфигах и подходе к реализации такой логики.
⭐️ Внимание, такой контент обычно платный, но сейчас Кшиштоф решил выложить материал в открытый доступ, поэтому я и публикую его в нашем канале.
@iOS Dev7 876
Почему вы должны использовать OSLog в 2023
Xcode 15 (пока что ещё бета) поддерживает структурированное логирование в консоли.
🟡🔴Теперь добавлена подсистема фильтров, и даже появилась возможность выделять предупреждения желтым цветом, а ошибки — красным.
Важно учитывать, обратите внимание, что такое логирование будет работать только для iOS 17, а на 16 оси логи будут отображаться так же, как и при использовании
print.
📖 Вот тут можно увидеть больше примеров использования и возможность использования extension для такого логирования.
@iOS Dev7 876
Реализация анимированного фона с цветным градиентом в SwiftUI
Анимация c использованием градиентного фона может сделать ваше приложение более динамичным (и интересным).
Один из способов достижения этого эффекта — использование
AngularGradient.
Но при реализации важно поддерживать баланс между приятной анимацией и той, которая может отвлечь.
В этой серии статей можно познакомиться с различными способами добавления градиента в ваше приложение:
📖 Линейный градиент.
📖 AngularGradient (или же конический градиент) в SwiftUI.
📖 Радиальный градиент.
📖 Реализация анимированного фона.
Пример приложения на Github доступен здесь.
@iOS Dev7 876
Справочное руководство по использованию SF-символов
😎
SF Symbols позволяют отображать огромное количество иконок в наших приложениях, и с каждым годом их становится всё больше.
Кроме этого, расширяются и возможности работы с ними: заполнение по слоям, управление цветами и возможность добавления анимаций, а также, например, использование их в меню.
📖 В этой статье можно больше узнать о возможностях использования символов в проектах.
@iOS Dev7 876
Xcode Bookmarks: создание закладок в коде и организация задач
Закладки в Xcode — новая фича, чтобы быстро перемещаться между важными участками кода (и не только).
Их можно группировать, использовать для поисковых запросов и даже запилить собственный TODO-лист.
🧑💻 С помощью быстрых действий для создания понадобится пара секунд и комбинация:
Shift ⇧ + Command ⌘ + A.
📖 А вот тут можно прочесть об этих и других сценариях использования.
@iOS Dev7 876
Swift Charts и реализация скролла на графиках
⭐️ Одна из долгожданных функций — возможность скроллить графики.
Эта функция наконец была реализована в последней версии Swift Charts (спойлер: нужно юзать
chartScrollableAxes).
📖 В этом материале можно узнать о тонкостях реализации и возможностях настройки.
@iOS Dev7 876
Повторение эффекта анимации NameDrop с использованием Metal and Swift Shader
🤩 Пожалуй, это самая эффектная анимация в iOS 17.
И ранее я уже приводил пример реализации в нашем канале.
📖 В этом же решении автор использовал комбинацию Metal и Swift Shader (доступно на github).
@iOS Dev
