Развёрнутый гайд по работе с 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
Выполнение действий вручную на сайте App Store Connect, вероятно, наиболее распространенный способ для разработчиков управлять и отслеживать состояние приложений в App Store.
Но некоторые задачи могут занимать неоправданно много времени, поскольку для их выполнения нужно постоянно повторять одни и те же действия. Да и не всегда сайт показывает корректное описание ошибок (при заливке скриншотов, например).
Вот библиотеки, которые могут помочь при работе с App Store Connect API:
Ниже перечислил статьи, демонстрирующие способы создания собственных средств автоматизации с помощью App Store Connect API
1️⃣ Как отправлять запросы к App Store Connect API.
2️⃣ Расчет среднего рейтинга отзывов.
3️⃣ Работа с provisioning profiles.
4️⃣ Создание и удаление сертификатов.
Кстати, если вы хотите узнать, что скрывается за сертификатами для Code Signing, в канале есть общий пост, а здесь большой разбор.
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
Для перевода до анонса этого фреймворка в пет-проектах я использовал или Google Translate API, или DeepL (знаю, что многие юзают решение от OpenAI).
📶 Но для них нужно интернет-соединение (что логично), и деньги (DeepL, например, имеет премиум-акк, на котором нужно платить за объём знаков).
Поэтому анонс решения Apple выглядит криптонитом для многих проектов, и одновременно возможностью реализации своих решений.
Посмотрим, что будет после выхода в прод, будет ли перевод на платную модель, как с Weather API или оставят все фичи, как есть.
📖 А уже сейчас можно посмотреть на пример создания приложений с новым фреймворком и почитать прекрасный разбор API здесь.
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
Реализация эффектов в приложениях может быть и интересной, и сложной задачей одновременно.
В этой подборке добавил несколько популярных репозиториев на Github, где можно посмотреть на анимации и поискать вдохновение:
🔗 Open SwiftUI Animations — 4 000
🔗 SwiftUI-Animations — 1 800
🔗 kavsoft-swiftui-animations — 460
Please open Telegram to view this post
VIEW IN TELEGRAM
Паттерны навигации в SwiftUI
NavigationStack улучшил навигацию, обеспечив динамическую и программную маршрутизацию, вместе с тем появились способы централизации маршрутов для всего приложения.
📖 В этой статье рассмотрены общие варианты навигации, которые можно использовать при создании приложений:
🔘 Базовая навигация при использовании List
🔘 Динамическая программная маршрутизация
🔘 Глобальная маршрутизация в SwiftUI
🔘 Реализация навигации c использованием Environment Values.
🔘 Реализация навигации для TabView.
📖 А вот тут можно почитать про особенности NavigationPath, принципы работы и отличия от UINavigationController в UIKit.
😃 iOS Dev
NavigationStack улучшил навигацию, обеспечив динамическую и программную маршрутизацию, вместе с тем появились способы централизации маршрутов для всего приложения.
📖 В этой статье рассмотрены общие варианты навигации, которые можно использовать при создании приложений:
🔘 Базовая навигация при использовании List
🔘 Динамическая программная маршрутизация
🔘 Глобальная маршрутизация в SwiftUI
🔘 Реализация навигации c использованием Environment Values.
🔘 Реализация навигации для TabView.
📖 А вот тут можно почитать про особенности NavigationPath, принципы работы и отличия от UINavigationController в UIKit.
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
При изучении новой темы сложнее всего возвращаться к ней в случае, когда область неизведанного кажется непреодолимой, когда кажется, что с первого взгляда задачи не то что решить, а даже понять невозможно.
К такому можно отнести работу с криптографией, для кого-то многопоточку, а для кого-то сложную вёрстку.
Когда я делал приложение, то изначально преследовал две цели: во-первых, заюзать как можно больше фишек из новых версий iOS, во-вторых, что гораздо более прозаично — сделать инструмент, который будет интересно не только изучать, но и соревноваться.
Саморазвитие через дополнительные задачи может казаться не лучшим времяпрепровождением, особенно, когда результат неясен, а область сама по себе размыта.
Но оно жизненно необходимо, ведь умение тренировать переполненный мозг — это большая проблема современного общества эпохи тик-тока, рилсов, шортсов.
Когда-то я читал любопытное мнение, что программист переходит на новый уровень, когда изучает второй язык. Мне оно кажется справедливым (и может пригодиться в неожиданные моменты).
Этот канал — способ поделиться самыми разными областями знаний мобильного сообщества.
Кроме подборок материалов по Metal, я буду делиться и своими опытами, пусть не всегда удачными или «правильными», но совершенно точно необычными.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Одна из наиболее приятных (если не топовых) фич в новом Xcode — новая возможность рефакторинга (и не только).
Например, можно буквально за пару секунд скопировать любой кусок кода и создать из этого файл с помощью хоткея для вставки.
При этом Xcode ещё и сам подберёт и задаст подходящее название (например, как на гифке).
Please open Telegram to view this post
VIEW IN TELEGRAM
Барбара Лисков — об абстракции данных и ООП
Барбара — профессор MIT, автор языков Клу и Argus, лауреат премии Тьюринга, и вы все наверняка её знаете из-за изучения SOLID.
Рекомендую посмотреть интересное видео, в котором Барбара отвечает на необычные вопросы не только о прошлом, но и о будущем ООП. А ещё затрагивает технические нюансы принципа подстановки Лисков в контексте SOLID.
🤩 Ведь как известно, лучше всего — получать ответы на свои вопросы из первоисточников.
😃 iOS Dev
Барбара — профессор MIT, автор языков Клу и Argus, лауреат премии Тьюринга, и вы все наверняка её знаете из-за изучения SOLID.
Рекомендую посмотреть интересное видео, в котором Барбара отвечает на необычные вопросы не только о прошлом, но и о будущем ООП. А ещё затрагивает технические нюансы принципа подстановки Лисков в контексте SOLID.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
MIT Professor on Data Abstraction & Object-Oriented Programming
Barbara Liskov, MIT EECS Institute Professor: https://www.csail.mit.edu/person/barbara-liskov
Programming Methodology Group: https://pmg.csail.mit.edu
Videographer: Mike Grimmett
Director: Rachel Gordon
PA: Alex Shipps
Programming Methodology Group: https://pmg.csail.mit.edu
Videographer: Mike Grimmett
Director: Rachel Gordon
PA: Alex Shipps
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
PointFree выкатили в опенсорс либу Swift Navigation — набор мощных инструментов для всех платформ Swift (в качестве вдохновения использовались принципы SwiftUI).
С помощью библиотеки можно управлять навигацией в SwiftUI, UIKit и AppKit. Более того, её можно использовать и для платформ, отличных от Apple, таких как Windows, Linux, Wasm и т.д..
🛠 Инструментарий уже доступен на GitHub (1 800
Примеры работы доступны здесь:
📖 Case Studies — коллекция примеров SwiftUI и UIKit, демонстрирующих API этой библиотеки.
📖 Inventory — многоэкранное приложение со списками, всплывающими окнами и алертами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как решить проблему с констрэинтами или как быть с ошибками вида «will attempt to recover by breaking constraint»?
Многие уже используют SwiftUI в проде или пет-проектах. Несмотря на это, UIKit никуда не уходит, а проблемы с автолэйаутом встречаются довольно часто.
Хотел бы напомнить про трюк, а если быть точнее, мастхэв-навык при поиске подобных проблемных вьюх с помощью стандартных инструментов Xcode.
Если вы встретите такую ошибку (или её вариации):
Запустите View Debugger и вставьте айдишник проблемной вьюхи в поле поиска слева внизу. Xcode автоматически подсветит её и уже после вы спокойно сможете устранить эту проблему.
⭐️ А ещё есть полезнейший сайт, который часто может помочь в таких ситуациях.
⭐️ Кстати, в базе знаний я делюсь своим опытом, и стараюсь наполнять разные разделы, один из которых — разбор различных проблем в разработке.
😃 iOS Dev
Многие уже используют SwiftUI в проде или пет-проектах. Несмотря на это, UIKit никуда не уходит, а проблемы с автолэйаутом встречаются довольно часто.
Хотел бы напомнить про трюк, а если быть точнее, мастхэв-навык при поиске подобных проблемных вьюх с помощью стандартных инструментов Xcode.
Если вы встретите такую ошибку (или её вариации):
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0xb82d450 H:[UIButton:0xb82ad50]-(NSSpace(20))-| (Names: '|':UIView:0xb82f360 )>
Запустите View Debugger и вставьте айдишник проблемной вьюхи в поле поиска слева внизу. Xcode автоматически подсветит её и уже после вы спокойно сможете устранить эту проблему.
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
📖 Пол Пиелла написал отличную развёрнутую статью о том, как можно юзать функциональность, доступную нам аж с Xcode 13 (тогда появилась опция xcodebuild, генерирующая memory graph всякий раз, когда фэйлится тест XCTMemoryMetrics).
Эта фича так и осталась незамеченной многими, хотя при правильном использовании это мощнейший инструмент для обнаружения утечек памяти в приложениях.
Саму статью можно разбить на несколько важных частей:
1️⃣ Написание самого теста, чекающего использование памяти.
2️⃣ Генерация memory graph.
3️⃣ Разбор результатов и анализ графа.
Тут пригодится ещё один материал про разбор содержимого XCResult.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё одно приятное нововведение в Xcode 16
🚀 Теперь в ассетах можно найти все места в проекте, где используется картинка за пару мгновений.
Использование:
Легко можно найти лишние ресурсы + избежать потенциальных опечаток (ну и сэкономить немного времени).
😃 iOS Dev
Использование:
щелчок правой кнопкой мыши + Find References to Item
.Легко можно найти лишние ресурсы + избежать потенциальных опечаток (ну и сэкономить немного времени).
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой у вас опыт разработки (не только iOS, а в целом)?
Anonymous Poll
6%
Менее полугода
5%
Около года
8%
От года до двух лет
29%
2-4 года
19%
4-7 лет
11%
7-10 лет
14%
> 10 лет
8%
Посмотреть ответы
Подборка докладов с конференции Swift Craft
Swift Craft — конференция в Великобритании, которая прошла в мае, а сейчас на канале появились видео, с которыми можно ознакомиться.
📺 Управление состояниями для iOS-приложений
Аракс Авоян рассказывает о функциональном управлении состояниями в приложениях для iOS. В докладе уделено внимание основам функционального программирования (и приведены практические примеры).
📺 Назад в будущее - Swift 6 Edition!
Пол Пиелла Абадия подготовил этот доклад, в котором объясняет все предстоящие изменения, а также использует несколько примеров кода, чтобы лучше подготовиться к Swift 6 уже сейчас.
📺 Математик размышляет о макросах, @Models и ML
Дэниел Стейнберг делится своими размышлениями, в частности, как мы решаем, чему учиться и как изучать новые вещи, анонсируемые каждый год на WWDC.
📺 Дата и время в Swift — обработка даты в программировании на Swift (будет доступно 21 августа).
В этом докладе будет рассказано о взаимодействии Date с датами, календарями, форматорами, компонентами DateComponents, TimeZones и другими полезными вещами.
📖 Все доклады конференции доступны в этом плейлисте.
😃 iOS Dev
Swift Craft — конференция в Великобритании, которая прошла в мае, а сейчас на канале появились видео, с которыми можно ознакомиться.
📺 Управление состояниями для iOS-приложений
Аракс Авоян рассказывает о функциональном управлении состояниями в приложениях для iOS. В докладе уделено внимание основам функционального программирования (и приведены практические примеры).
📺 Назад в будущее - Swift 6 Edition!
Пол Пиелла Абадия подготовил этот доклад, в котором объясняет все предстоящие изменения, а также использует несколько примеров кода, чтобы лучше подготовиться к Swift 6 уже сейчас.
📺 Математик размышляет о макросах, @Models и ML
Дэниел Стейнберг делится своими размышлениями, в частности, как мы решаем, чему учиться и как изучать новые вещи, анонсируемые каждый год на WWDC.
📺 Дата и время в Swift — обработка даты в программировании на Swift (будет доступно 21 августа).
В этом докладе будет рассказано о взаимодействии Date с датами, календарями, форматорами, компонентами DateComponents, TimeZones и другими полезными вещами.
📖 Все доклады конференции доступны в этом плейлисте.
Please open Telegram to view this post
VIEW IN TELEGRAM
Прошло уже 9 лет с момента анонса SPM (именно тогда начал замедляться рост CocoaPods). Несмотря на это, CocoaPods продолжали оставаться сверхпопулярными и востребованными среди разработчиков.
ℹ️ Orta Therox написал большой пост, в частности, затрагивающий и проблемы с безопасностью, а также выпустил важный анонс, в котором сообщил о будущих планах по поддержке и обслуживанию.
Теперь будет как минимум два релиза в год для поддержки изменений Xcode, будут закрывать все возможные проблемы с безопасностью и уделять внимание тем PR, которые ориентированы на будущее.
Вместе с этим, больше не будет активного реагирования на проблемы индивидуальных пользователей, и будет свернуто активное развитие проекта. Кроме этого, они не могут дать гарантий, что будут рассмотрены пулреквесты, направленные только на новые фичи.
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
Возможности использования шейдеров в iOS-разработке довольно велики, но применение именно в прод-разработке не так обширно на данный момент (если речь не идёт о работе с видео или фото).
Ранее я писал о том, что добавил новый раздел в iOS IQ, в котором разбираю некоторые необычные вещи, эффекты и варианты реализации с помощью возможностей системных фреймворков.
🔗 Доступ, примеры и рабочий код уже доступны для всех подписчиков здесь и в бусти.
Please open Telegram to view this post
VIEW IN TELEGRAM
❗️Apple Search Ads заблокировал все рекламные инструменты и кампании для разработчиков из РФ и Беларуси
Сегодня все разработчики получили письмо о том, что им больше недоступны эти инструменты от Apple.
Я тоже получил такое письмо утром, Apple ссылается на пункт 13, но по факту причина только одна: страна регистрации аккаунта.
Боюсь предположить, что будет дальше и поменяется ли политика по выплате дохода.
😃 iOS Dev — вот такое утро
Сегодня все разработчики получили письмо о том, что им больше недоступны эти инструменты от Apple.
Я тоже получил такое письмо утром, Apple ссылается на пункт 13, но по факту причина только одна: страна регистрации аккаунта.
Боюсь предположить, что будет дальше и поменяется ли политика по выплате дохода.
Please open Telegram to view this post
VIEW IN TELEGRAM