Telegram Web Link
This media is not supported in your browser
VIEW IN TELEGRAM
🥳 Создание файла из кода в буфере обмена в Xcode 16

Одна из наиболее приятных (если не топовых) фич в новом Xcode — новая возможность рефакторинга (и не только).

Например, можно буквально за пару секунд скопировать любой кусок кода и создать из этого файл с помощью хоткея для вставки.

При этом Xcode ещё и сам подберёт и задаст подходящее название (например, как на гифке).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Барбара Лисков — об абстракции данных и ООП

Барбара — профессор MIT, автор языков Клу и Argus, лауреат премии Тьюринга, и вы все наверняка её знаете из-за изучения SOLID.

Рекомендую посмотреть интересное видео, в котором Барбара отвечает на необычные вопросы не только о прошлом, но и о будущем ООП. А ещё затрагивает технические нюансы принципа подстановки Лисков в контексте SOLID.

🤩 Ведь как известно, лучше всего — получать ответы на свои вопросы из первоисточников.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Swift Navigation: инструменты навигации от PointFree

PointFree выкатили в опенсорс либу Swift Navigation — набор мощных инструментов для всех платформ Swift (в качестве вдохновения использовались принципы SwiftUI).

С помощью библиотеки можно управлять навигацией в SwiftUI, UIKit и AppKit. Более того, её можно использовать и для платформ, отличных от Apple, таких как Windows, Linux, Wasm и т.д..

🛠 Инструментарий уже доступен на GitHub (1 800 )

Примеры работы доступны здесь:

📖 Case Studies — коллекция примеров SwiftUI и UIKit, демонстрирующих API этой библиотеки.
📖 Inventory — многоэкранное приложение со списками, всплывающими окнами и алертами.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Как решить проблему с констрэинтами или как быть с ошибками вида «will attempt to recover by breaking constraint»?

Многие уже используют SwiftUI в проде или пет-проектах. Несмотря на это, UIKit никуда не уходит, а проблемы с автолэйаутом встречаются довольно часто.

Хотел бы напомнить про трюк, а если быть точнее, мастхэв-навык при поиске подобных проблемных вьюх с помощью стандартных инструментов Xcode.

Если вы встретите такую ошибку (или её вариации):

Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xb82d450 H:[UIButton:0xb82ad50]-(NSSpace(20))-| (Names: '|':UIView:0xb82f360 )>


Запустите View Debugger и вставьте айдишник проблемной вьюхи в поле поиска слева внизу. Xcode автоматически подсветит её и уже после вы спокойно сможете устранить эту проблему.

⭐️ А ещё есть полезнейший сайт, который часто может помочь в таких ситуациях.

⭐️Кстати, в базе знаний я делюсь своим опытом, и стараюсь наполнять разные разделы, один из которых — разбор различных проблем в разработке.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как автоматически обнаруживать утечки памяти с помощью UI-тестов

📖 Пол Пиелла написал отличную развёрнутую статью о том, как можно юзать функциональность, доступную нам аж с Xcode 13 (тогда появилась опция xcodebuild, генерирующая memory graph всякий раз, когда фэйлится тест XCTMemoryMetrics).

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

Саму статью можно разбить на несколько важных частей:

1️⃣ Написание самого теста, чекающего использование памяти.

2️⃣ Генерация memory graph.

3️⃣ Разбор результатов и анализ графа.

Тут пригодится ещё один материал про разбор содержимого XCResult.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё одно приятное нововведение в Xcode 16

🚀 Теперь в ассетах можно найти все места в проекте, где используется картинка за пару мгновений.

Использование: щелчок правой кнопкой мыши + Find References to Item.

Легко можно найти лишние ресурсы + избежать потенциальных опечаток (ну и сэкономить немного времени).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Подборка докладов с конференции Swift Craft

Swift Craft — конференция в Великобритании, которая прошла в мае, а сейчас на канале появились видео, с которыми можно ознакомиться.

📺 Управление состояниями для iOS-приложений
Аракс Авоян рассказывает о функциональном управлении состояниями в приложениях для iOS. В докладе уделено внимание основам функционального программирования (и приведены практические примеры).

📺 Назад в будущее - Swift 6 Edition!
Пол Пиелла Абадия подготовил этот доклад, в котором объясняет все предстоящие изменения, а также использует несколько примеров кода, чтобы лучше подготовиться к Swift 6 уже сейчас.

📺 Математик размышляет о макросах, @Models и ML
Дэниел Стейнберг делится своими размышлениями, в частности, как мы решаем, чему учиться и как изучать новые вещи, анонсируемые каждый год на WWDC.

📺 Дата и время в Swift — обработка даты в программировании на Swift (будет доступно 21 августа).
В этом докладе будет рассказано о взаимодействии Date с датами, календарями, форматорами, компонентами DateComponents, TimeZones и другими полезными вещами.

📖 Все доклады конференции доступны в этом плейлисте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️ CocoaPods прекращает активное развитие и переходит в режим поддержки

Прошло уже 9 лет с момента анонса SPM (именно тогда начал замедляться рост CocoaPods). Несмотря на это, CocoaPods продолжали оставаться сверхпопулярными и востребованными среди разработчиков.

ℹ️ Orta Therox написал большой пост, в частности, затрагивающий и проблемы с безопасностью, а также выпустил важный анонс, в котором сообщил о будущих планах по поддержке и обслуживанию.

Теперь будет как минимум два релиза в год для поддержки изменений Xcode, будут закрывать все возможные проблемы с безопасностью и уделять внимание тем PR, которые ориентированы на будущее.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Warp-эффект на metal-шейдере

Возможности использования шейдеров в iOS-разработке довольно велики, но применение именно в прод-разработке не так обширно на данный момент (если речь не идёт о работе с видео или фото).

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

🤩 Один из таких эффектов — Warp, реализацию которого без Metal я уже применял в приложении.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Apple Search Ads заблокировал все рекламные инструменты и кампании для разработчиков из РФ и Беларуси

Сегодня все разработчики получили письмо о том, что им больше недоступны эти инструменты от Apple.

Я тоже получил такое письмо утром, Apple ссылается на пункт 13, но по факту причина только одна: страна регистрации аккаунта.

Боюсь предположить, что будет дальше и поменяется ли политика по выплате дохода.

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

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

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

На скриншоте пример для приложения iOS IQ (попробовал замаскироваться под твиттер, чтобы заменить его более полезным контентом), обновление которого уже скоро будет доступно подписчикам.

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

😃 iOS Dev — а вот тут я писал про способ использования для NSUserActivity
Please open Telegram to view this post
VIEW IN TELEGRAM
Скрытые возможности крашлогов: как читать информацию об ошибках

Никто не любит краши. Бывает, что их сложно анализировать, а исследование причин может отнять большое количество времени (и возможно, даже не всегда привести нас к решению).

Патрик Уордл проделал огромную работу и написал статью, в которой объяснил, как упростить понимание структуры и информации из крашлогов.

Он признаёт, что сам путь исследования требует глубокого понимания реверс-инжиниринга, поэтому поверхностно ещё и затронуты темы дизассемблирования и отладки на примере ARM64.

Сам материал наполнен большим количеством примеров не только под iOS, но и macOS, и, даже показан баг 0day (который затрагивает даже бетки 15 макоси).

📖 Рекомендую прочитать и сохранить исследование.

А если вы хотите узнать, что, например, означает EXC_BAD_ACCESS — у нас в канале уже есть и такой пост.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Зарплаты стажёров и джунов в IT

На Хабр.карьере вышло новое исследование зарплат, на этот раз изучили зарплатные возможности для новичков в IT — стажеров и джунов.

Главные выводы:

1️⃣ Проще попасть в IT с позиции стажера.

2️⃣ Доля вакансий с удаленкой для джунов и стажеров сейчас 60%, это на 17% больше, чем в начале 2023.

3️⃣ Больше всего начинающие IT-специалисты зарабатывают в Ozon Tech, YADRO и Холдинге Т1.

💸Эти данные основаны на реальных зарплатах, а больше про динамику на рынке можно узнать в этом посте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Отслеживание утечек памяти в iOS-приложении со SwiftUI в Runtime

Декларативность, а также то, что в SwiftUI нет явно выраженного жизненного цикла для вьюх, значительно повышает трудности при поиске утечек по сравнению с UIKit.

📖 На хабре iOS-разработчик Фарид поделился своим решением в компании для упрощения поиска проблем утечек в таких проектах.

Основные блоки:

1️⃣ Рассмотрены основные подходы для поиска утечек.

2️⃣ Поиск оптимального варианта для нахождения таких проблем.

3️⃣ Поиск опций для подстраховки от утечек в будущем.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Как использовать файлы EditorConfig в Xcode 16

🛠 Если вы работали/работаете над несколькими проектами с разным кодстайлом, то может быть такое, что приходится настраивать параметры Xcode каждый раз при переключении между проектами.

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

В Xcode 16 добавлена поддержка файлов EditorConfig, которые позволяют задавать настройки редактора Xcode для каждого проекта.

📖 В этой статье вы узнаете, как настроить файлы EditorConfig в Xcode и какие настройки поддерживаются на данный момент.

Больше советов по работе с инструментарием вы можете найти здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
2024/11/20 11:36:53
Back to Top
HTML Embed Code: