Telegram Web Link
Развёрнутый гайд по работе с App Store Connect API

Выполнение действий вручную на сайте App Store Connect, вероятно, наиболее распространенный способ для разработчиков управлять и отслеживать состояние приложений в App Store.

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

Вот библиотеки, которые могут помочь при работе с App Store Connect API:

🔗 appstoreconnect-swift-sdk (c её помощью я написал собственное решение для управления отзывами и частичной автоматизации обновлений в аппсторе)
🔗 Bagbutik
🔗 asc-swift

Ниже перечислил статьи, демонстрирующие способы создания собственных средств автоматизации с помощью App Store Connect API

1️⃣ Как отправлять запросы к App Store Connect API.

2️⃣ Расчет среднего рейтинга отзывов.

3️⃣ Работа с provisioning profiles.

4️⃣ Создание и удаление сертификатов.

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

Например, вы можете узнать подробнее про понятия .der и .pem, цепочку доверия, Certificate signing request, что происходит при переподписывании кода в App Store и многое другое.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Swift Translation API: примеры реализации

Для перевода до анонса этого фреймворка в пет-проектах я использовал или Google Translate API, или DeepL (знаю, что многие юзают решение от OpenAI).

📶 Но для них нужно интернет-соединение (что логично), и деньги (DeepL, например, имеет премиум-акк, на котором нужно платить за объём знаков).

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

Посмотрим, что будет после выхода в прод, будет ли перевод на платную модель, как с Weather API или оставят все фичи, как есть.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Анимации в SwiftUI — подборка репозиториев на Github

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

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

🔗 Open SwiftUI Animations — 4 000

🔗 SwiftUI-Animations — 1 800

🔗 kavsoft-swiftui-animations — 460

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Паттерны навигации в SwiftUI

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

📖 В этой статье рассмотрены общие варианты навигации, которые можно использовать при создании приложений:

🔘 Базовая навигация при использовании List
🔘 Динамическая программная маршрутизация
🔘 Глобальная маршрутизация в SwiftUI
🔘 Реализация навигации c использованием Environment Values.
🔘 Реализация навигации для TabView.

📖 А вот тут можно почитать про особенности NavigationPath, принципы работы и отличия от UINavigationController в UIKit.

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

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

К такому можно отнести работу с криптографией, для кого-то многопоточку, а для кого-то сложную вёрстку.

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

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

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

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

Этот канал — способ поделиться самыми разными областями знаний мобильного сообщества.

🎆 Сегодня я хотел бы анонсировать новый раздел для тех, кто саппортит развитие канала.

Кроме подборок материалов по Metal, я буду делиться и своими опытами, пусть не всегда удачными или «правильными», но совершенно точно необычными.

Сделайте ещё один шаг вперёд уже сегодня, подпишитесь на бусти или в телеграме (код шейдера с видео уже там).

😃 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

Одна из наиболее приятных (если не топовых) фич в новом 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
2024/10/01 14:23:06
Back to Top
HTML Embed Code: