Как реализовать обновление ассетов в приложении в реальном времени
Во многих приложениях требуются вещи, доступные для изменения без создания новой сборки:
🔘 Конфигурации для экспериментальных функций.
🔘 Ссылки, например, на политику конфиденциальности и т.д., которые нужно менять из-за обновления домена.
🔘 Небольшие сниппеты
📖 В этом материале Кшиштоф Заблоцки рассказывает о требованиях, возможных конфигах и подходе к реализации такой логики.
⭐️ Внимание, такой контент обычно платный, но сейчас Кшиштоф решил выложить материал в открытый доступ, поэтому я и публикую его в нашем канале.
😃 iOS Dev
Во многих приложениях требуются вещи, доступные для изменения без создания новой сборки:
Javascript
для определённой логики (такой подход использует New York Times
).📖 В этом материале Кшиштоф Заблоцки рассказывает о требованиях, возможных конфигах и подходе к реализации такой логики.
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
Все мы знаем, что отладочная консоль Xcode позволяет искать проблемы в приложениях.
Каждый лог-левел будет отображаться разным цветом, а расширенные фильтры позволят показать только нужное.
📖 Вот тут есть хороший разбор новых возможностей для просмотра метаданных и фильтрации.
Please open Telegram to view this post
VIEW IN TELEGRAM
5 шагов для поиска медленного кода с Xcode Time Profiler
При старте использования
😎 Один из подходов — использовать пять простых шагов для выявления «узких мест» в коде.
📖 В этом материале на примере описаны этапы, которые можно использовать для поиска проблем в приложении.
😃 iOS Dev
При старте использования
Time Profiler
он может казаться перегруженным из-за огромного количества данных. 📖 В этом материале на примере описаны этапы, которые можно использовать для поиска проблем в приложении.
Please open Telegram to view this post
VIEW IN TELEGRAM
Так когда всё-таки действительно нужно использовать [weak self]?
Чтобы ответить на этот вопрос, в любом случае необходимы примеры, но, как обычно в нашей разработке,
Например, последние версии Swift заставили посмотреть на использование под иным углом.
📖 В своём материале Винсент приводит несколько примеров, и объясняет, когда
📖 Кстати, вот тут можно узнать, какие из сценариев могут привести к утечкам памяти.
😃 iOS Dev
Чтобы ответить на этот вопрос, в любом случае необходимы примеры, но, как обычно в нашей разработке,
it depends
.Например, последние версии Swift заставили посмотреть на использование под иным углом.
📖 В своём материале Винсент приводит несколько примеров, и объясняет, когда
[weak self]
необходим, и когда это излишне, как, например, в случае с .map()
.📖 Кстати, вот тут можно узнать, какие из сценариев могут привести к утечкам памяти.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ошибки, которых следует избегать при внедрении TipKit в приложение
➡ ️ Новый фреймворк — отличный помощник для выделения интересных или пока неиспользуемых пользователями фич.
Его просто добавить, управлять и в целом использовать в своих проектах.
Несмотря на это, во всём нужно знать меру.
📖 В этом материале разбираются ошибки, которые можно допустить при работе с
😃 iOS Dev
Его просто добавить, управлять и в целом использовать в своих проектах.
Несмотря на это, во всём нужно знать меру.
📖 В этом материале разбираются ошибки, которые можно допустить при работе с
TipKit
.Please open Telegram to view this post
VIEW IN TELEGRAM
Настройка iOS-приложения для поддержки push-уведомлений
Добавление возможности работы с пушами в iOS достаточно сложный процесс, включающий в себя несколько этапов.
⏩ С опытом, конечно, всё станет проще, но если вы делаете это в первый раз, то будет полезно посмотреть несложную инструкцию.
📖 В этой статье описаны необходимые настройки и пример использования новой Push Notification Console.
😃 iOS Dev
Добавление возможности работы с пушами в iOS достаточно сложный процесс, включающий в себя несколько этапов.
📖 В этой статье описаны необходимые настройки и пример использования новой Push Notification Console.
Please open Telegram to view this post
VIEW IN TELEGRAM
Одно из любимых приложений, которое я поддерживаю продолжительное время (уже более трёх лет) — трекер сбережений/долгов/целей.
Раз за разом я стараюсь прокачивать его, используя фишки Apple. Иногда это виджеты, иногда — приложение для часов.
Помню, как запилил туда кросс-интеграцию европейских банков для сверки курсов (и авто-конвертации валют в выбранную).
Так вот, сегодня один из тех дней, когда я выкатил большое масштабное обновление на ProductHunt.
👍 И рассчитываю на вашу поддержку там (комментарий или просто upvote было бы очень круто).
➡️ Помочь своим голосом можно здесь.
😃 iOS Dev
Раз за разом я стараюсь прокачивать его, используя фишки Apple. Иногда это виджеты, иногда — приложение для часов.
Помню, как запилил туда кросс-интеграцию европейских банков для сверки курсов (и авто-конвертации валют в выбранную).
Так вот, сегодня один из тех дней, когда я выкатил большое масштабное обновление на ProductHunt.
Please open Telegram to view this post
VIEW IN TELEGRAM
Исследование MeasurementFormatter и пример его применения
Иногда из-за разниц подходов к измерениям в метрической и, например, американской системах код может выглядеть не очень приятно.
Тогда на помощь может прийти
📖 Вот тут есть хорошее объяснение, когда его лучше использовать, и приводится пример для разных локалей.
😃 iOS Dev
Иногда из-за разниц подходов к измерениям в метрической и, например, американской системах код может выглядеть не очень приятно.
Тогда на помощь может прийти
MeasurementFormatter
.📖 Вот тут есть хорошее объяснение, когда его лучше использовать, и приводится пример для разных локалей.
Please open Telegram to view this post
VIEW IN TELEGRAM
Загляните в канал Романа, который прошел путь от iOS разработчика до топ-менеджера международной компании.
Автор пишет о создании пет-проектов, управлении командой, iOS разработке, переходе из инженера в менеджеры.
Интересные статьи:
Хайп на алгоритмах
Поиск ниши для приложения
Как развить критический взгляд
IT это легко или сложно?
👉Подробнее в канале iOS Enjoyer
Автор пишет о создании пет-проектов, управлении командой, iOS разработке, переходе из инженера в менеджеры.
Интересные статьи:
Хайп на алгоритмах
Поиск ниши для приложения
Как развить критический взгляд
IT это легко или сложно?
👉Подробнее в канале iOS Enjoyer
Telegram
Роман Галь – Работа в IT
Управление командой, составление резюме, переход из инженера в менеджеры, создание пет-проектов
Предложить статью или новость: @iOSEnjoyerBot
Автор: @roman_mobile
Предложить статью или новость: @iOSEnjoyerBot
Автор: @roman_mobile
Улучшение времени сборки приложений и 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
Поиск неиспользуемого кода с помощью Periphery
Принцип работы этого инструмента в следующем. Сначала собирается проект, затем для каждого файла с исходным кодом
И уже после завершения индексации анализируется граф для выявления неиспользуемого кода.
В долгосрочной перспективе использование
📖 Пример использования Periphery.
🛠 Ссылка на сам инструмент на Github.
😃 iOS Dev
Принцип работы этого инструмента в следующем. Сначала собирается проект, затем для каждого файла с исходным кодом
Periphery
строит свое внутреннее графовое представление проекта. И уже после завершения индексации анализируется граф для выявления неиспользуемого кода.
В долгосрочной перспективе использование
Peiphery
позволит тратить меньше времени на компиляцию (что логично, меньше кода) и избавит от лишнего шума в кодовой базе.📖 Пример использования Periphery.
🛠 Ссылка на сам инструмент на Github.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как проверить, нужно ли вам указывать причину для использования 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
Подводные камни тестирования кода в Swift Concurrency
Swift Concurrency — мощнейший инструмент, который в том числе позволяет выполнять задачи с разным приоритетом.
🔘 Несмотря на это, периодически могут возникать сложности и непростые для тестирования кейсы.
📖 В исследовании Александр Пиманов и Камиль Ишмуратов разбираются в причинах, рассказывают о порядке выполнения задач и знакомят с протоколом
📖 Рекомендую к ознакомлению и этот пост: Swift Concurrency — вещи, о которых вам не говорят.
😃 iOS Dev
Swift Concurrency — мощнейший инструмент, который в том числе позволяет выполнять задачи с разным приоритетом.
📖 В исследовании Александр Пиманов и Камиль Ишмуратов разбираются в причинах, рассказывают о порядке выполнения задач и знакомят с протоколом
Executor
.📖 Рекомендую к ознакомлению и этот пост: Swift Concurrency — вещи, о которых вам не говорят.
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift 6: подготовка ваших проектов Xcode к будущему
📁 Команда разработчиков Swift поделилась своими приоритетными направлениями на 2023 год и ранее выпустила подробный отчет о пути к Swift 6.
Оба документа описывают видение будущего Swift и помогают подготовиться к миграции проекта.
📖 В этом материале описаны шаги, которые можно предпринять для адаптации ваших проектов к предстоящим изменениям.
😃 iOS Dev
Оба документа описывают видение будущего Swift и помогают подготовиться к миграции проекта.
📖 В этом материале описаны шаги, которые можно предпринять для адаптации ваших проектов к предстоящим изменениям.
Please open Telegram to view this post
VIEW IN TELEGRAM
Стерпятся — слюбятся: как заставить 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
Важные советы для разработчиков всех уровней от Бьёрна Страуструпа (создателя C++)
Для успешной карьеры необходимо развиваться всесторонне и не стоит зацикливаться на одном навыке (или фреймворке). Кроме этого:
🔘 Мы не знаем будущего, а наша карьера — долгосрочная вещь. Важно быть гибкими и жить не только одной работой.
🔘 Если вы напишете лучший код, мир не изменится только благодаря этому. Важно слушать остальных (в том числе и потенциальных пользователей), уметь общаться, а также доносить свои идеи.
🔘 Не нужно жалеть о потраченном времени на другие направления. Например, история может дать понимание о некоторых ограничениях, а математика обострит ваш ум, поэтому во всём нужно искать баланс.
🔘 Широкий набор навыков, приобретённых во время обучения, можно будет применить позже, когда придёт время. И для этого совсем необязательно знать две дюжины языков, как сам Бьёрн.
😃 iOS Dev
Для успешной карьеры необходимо развиваться всесторонне и не стоит зацикливаться на одном навыке (или фреймворке). Кроме этого:
🔘 Мы не знаем будущего, а наша карьера — долгосрочная вещь. Важно быть гибкими и жить не только одной работой.
🔘 Если вы напишете лучший код, мир не изменится только благодаря этому. Важно слушать остальных (в том числе и потенциальных пользователей), уметь общаться, а также доносить свои идеи.
🔘 Не нужно жалеть о потраченном времени на другие направления. Например, история может дать понимание о некоторых ограничениях, а математика обострит ваш ум, поэтому во всём нужно искать баланс.
🔘 Широкий набор навыков, приобретённых во время обучения, можно будет применить позже, когда придёт время. И для этого совсем необязательно знать две дюжины языков, как сам Бьёрн.
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучшие практики для обратной связи при работе в команде
За свою карьеру я поработал в нескольких компаниях с разными стилями менеджмента и разными подходами.
Конечно, все мы стремимся к лучшему для себя, но есть базовые принципы, которые могут помочь повысить вашу личную производительность и тем самым повлиять на рост всей команды. Следствием этого будет и успех проекта.
Мне близки мысли Фила Йейтса (инженера с 17-летним опытом).
Обратная связь — это не просто указание на то, что неправильно или правильно, а начало диалога, способствующего пониманию, обучению и росту. К сожалению, многие об этом забывают.
Поэтому вот несколько советов от Фила, которые можно взять на вооружение:
👍 Будьте конкретны. Вместо того чтобы сказать: «Вы хорошо поработали», скажите: «То, как вы отладили эту сложную проблему в коде, впечатляет».
👍 Будьте своевременны. Детали будут свежи в памяти и позволят немедленно извлечь уроки, но нужно учесть готовность собеседника к разговору.
👍 Сосредоточьтесь на действии, а не на человеке. Это поможет сфокусироваться на самой проблеме.
👍 Чаще используйте «Я». Это выразит вашу точку зрения, а не обвинения или предположения в адрес собеседника.
👍 Устройте двусторонний разговор. Это способствует пониманию и заинтересованности.
👍 Будьте конструктивны. Важно не зацикливаться на ошибках, а стремиться к улучшению в следующий раз.
👍 Баланс между позитивным и конструктивным.
👍 Учитывайте точку зрения собеседника. У каждого может своё понимание проблемы.
👍 Будьте искренними и уважительными. Обратная связь должна быть честной и уважительной. Избегайте лести или критики.
Важно учитывать, что обратная связь не заканчивается после разговора. Можно обсудить план по улучшению ситуации, предоставление ресурсов или поддержки, проанализировать прогресс или признать улучшения.
😃 iOS Dev
За свою карьеру я поработал в нескольких компаниях с разными стилями менеджмента и разными подходами.
Конечно, все мы стремимся к лучшему для себя, но есть базовые принципы, которые могут помочь повысить вашу личную производительность и тем самым повлиять на рост всей команды. Следствием этого будет и успех проекта.
Мне близки мысли Фила Йейтса (инженера с 17-летним опытом).
Обратная связь — это не просто указание на то, что неправильно или правильно, а начало диалога, способствующего пониманию, обучению и росту. К сожалению, многие об этом забывают.
Поэтому вот несколько советов от Фила, которые можно взять на вооружение:
Важно учитывать, что обратная связь не заканчивается после разговора. Можно обсудить план по улучшению ситуации, предоставление ресурсов или поддержки, проанализировать прогресс или признать улучшения.
Please open Telegram to view this post
VIEW IN TELEGRAM
SwiftSyntax: Разбор и генерация исходного кода Swift
SwiftSyntax представляет собой набор библиотек, позволяющих анализировать, проверять, генерировать и корректировать исходный код
Изначально он был разработан компанией Apple, а сейчас это поддерживаемый опенсорс со множеством авторов.
Чтобы лучше познакомиться с его структурой, посмотрите на этот сайт, разработанный @kishikawakatsumi.
Кстати, на базе набора этих либ построены Swift parser, swift-format, и Swift macros.
📖 Пример работы с SwiftSyntax хорошо описан здесь.
⭐️ Сам репозиторий с 2 400 звёзд вот тут.
😃 iOS Dev
SwiftSyntax представляет собой набор библиотек, позволяющих анализировать, проверять, генерировать и корректировать исходный код
Swift
. Изначально он был разработан компанией Apple, а сейчас это поддерживаемый опенсорс со множеством авторов.
SwiftSyntax
создает абстрактное синтаксическое дерево (AST) исходного кода, которое позволяет взаимодействовать с высокоуровневым, безопасным и эффективным API. Чтобы лучше познакомиться с его структурой, посмотрите на этот сайт, разработанный @kishikawakatsumi.
Кстати, на базе набора этих либ построены Swift parser, swift-format, и Swift macros.
📖 Пример работы с SwiftSyntax хорошо описан здесь.
⭐️ Сам репозиторий с 2 400 звёзд вот тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Переходы в Swift с эффектом искажения и использованием Metal Shaders
Итоговый шейдер является результатом экспериментов, так как цель состояла в том, чтобы использовать положительное значение для перехода вставки и отрицательное — для удаления.
📖 В этом материале Павел Зак разбирается с
😃 iOS Dev
Итоговый шейдер является результатом экспериментов, так как цель состояла в том, чтобы использовать положительное значение для перехода вставки и отрицательное — для удаления.
📖 В этом материале Павел Зак разбирается с
.distortionEffect
и приводит пример его использования.Please open Telegram to view this post
VIEW IN TELEGRAM