
Код Воробья для iOS разработчиков
Приложения в App Store можно делать доступными только по ссылке
Приложение не будет отображаться в поиске, категориях и рекомендациях. Такие приложения проходят полноценную модерацию и апрув.
Эпл не ограничивает пользователей, которые могут скачать приложение - предлагается делать авторизацию и комбинировать ее с доступностью по ссылке.
Приложение не будет отображаться в поиске, категориях и рекомендациях. Такие приложения проходят полноценную модерацию и апрув.
Эпл не ограничивает пользователей, которые могут скачать приложение - предлагается делать авторизацию и комбинировать ее с доступностью по ссылке.

Код Воробья для iOS разработчиков
В Xcode 13.3 Beta завезли ивертированную проверку доступности.
Так же добавили удобный синтаксис для enum в схеме
Много исправлений подсветки, jump to definition и индексации.
Так же добавили удобный синтаксис для enum в схеме
if case .value
, SPM поддерживает плагины и можно не указывать ключ в словаре - компилятор определит тип автоматически.Много исправлений подсветки, jump to definition и индексации.

Код Воробья для iOS разработчиков
Как устроен системный калькулятор
Приложение написано на сценах. Root-контроллер называется
Клавиатуру сделали обычный вью и назвали
#ViewHierarchy
Приложение написано на сценах. Root-контроллер называется
DisplayViewController
. Лейбл с введенными цифрами обернули в контейнер DisplayView
и добавили жесты LongPress, Swipe и Tap.Клавиатуру сделали обычный вью и назвали
CalculatorKeypadView
. Кнопки сделаны как UIButton. Все кнопки - объекты одного класса, даже измененный 0. Контейнер лейаутится через AutoLayout, а вот сетку с кнопками расставили с помощью фреймов.#ViewHierarchy

Код Воробья для iOS разработчиков
Как добавить кастомную SwiftUI-вью в библиотеку Xcode. Туториал написал Никита. Я рад, что авторов становится больше.
Чтобы оптимизировать работу над туториалами, я опубликовал их на GitHub. Теперь каждый может добавить свой туториал, сделать перевод или исправить опечатку. Открывайте PR, после апрува изменения на сайте появятся автоматически.
Чтобы оптимизировать работу над туториалами, я опубликовал их на GitHub. Теперь каждый может добавить свой туториал, сделать перевод или исправить опечатку. Открывайте PR, после апрува изменения на сайте появятся автоматически.

Код Воробья для iOS разработчиков
Платежи вне App Store для дейтинг приложений в Нидерландах будут с комиссией 27%. Появились подробности.
Сделали через разрешение
Разработчик подает отчёт ежемесячно, Apple выставляет счёт на комиссию.
27% и комиссия платежной системы сумарно дают комиссию в 30%. Apple поступила логично - от своего заработка за размещение в их магазине отняли комиссю банка. Но манипулятивный заголовок про безопасность выглядит дёшево.
Сделали через разрешение
StoreKit External Purchase Link Entitlement
. Нельзя комбинировать со встроенными покупками. Интерфейс платежа должен быть нативным, веб-вью нельзя. Заголовок со скриншота добавлять обязательно 🤦♂️ Разработчик подает отчёт ежемесячно, Apple выставляет счёт на комиссию.
27% и комиссия платежной системы сумарно дают комиссию в 30%. Apple поступила логично - от своего заработка за размещение в их магазине отняли комиссю банка. Но манипулятивный заголовок про безопасность выглядит дёшево.

Код Воробья для iOS разработчиков
Сегодня утром разработчики из Беларуси получили сообщение о деактивации аккаунтов.
Приложения пока остаются в App Store, но создать новое приложение и версию нельзя. Статус некоторых приложений изменился на Pending Agreement.
В панели статус соглашения изменился на Restricted. Похожая ситуация уже была в РФ и Крыму.
За обновлениями ситуации можно следить здесь.
Приложения пока остаются в App Store, но создать новое приложение и версию нельзя. Статус некоторых приложений изменился на Pending Agreement.
В панели статус соглашения изменился на Restricted. Похожая ситуация уже была в РФ и Крыму.
За обновлениями ситуации можно следить здесь.

Код Воробья для iOS разработчиков
Код Воробья для iOS разработчиков
Сегодня утром разработчики из Беларуси получили сообщение о деактивации аккаунтов. Приложения пока остаются в App Store, но создать новое приложение и версию нельзя. Статус некоторых приложений изменился на Pending Agreement. В панели статус соглашения изменился…
Аккаунты оживают - соглашениям вернули активный статус. У некоторых сбросился адрес, нужно ввести заново.
Эпл разослала сообщения, что это была ошибка.
Эпл разослала сообщения, что это была ошибка.

Код Воробья для iOS разработчиков
This media is not supported in your browser
VIEW IN TELEGRAM
Ваш покорный слуга дал комментарий по блокировке аккаунтов в Беларуси для РБК @rbc_news.
Ситуация с аккуантами разрешилась - приложения вернули в стор, позиции и рейтинги восстановили. Эпл принесла извинения.
Ситуация с аккуантами разрешилась - приложения вернули в стор, позиции и рейтинги восстановили. Эпл принесла извинения.

Код Воробья для iOS разработчиков
С iOS 13 завезли удобную асинхронность с async/await. Никита написал туториал, где разобрал
С новыми инструментами код удобнее читать и поддерживать. В конце туториала напишите тузлу для получения позиции приложения в App Store.
https://sparrowcode.io/ru/tutorials/async-await
Task
, actor
и их взаимодействие. С новыми инструментами код удобнее читать и поддерживать. В конце туториала напишите тузлу для получения позиции приложения в App Store.
https://sparrowcode.io/ru/tutorials/async-await

Код Воробья для iOS разработчиков
Как устроено приложение Wallet
Сделали на сценах, а лейаут на фреймах. Рут контроллер называется
Каждую карточку поместили в контейнер
Чтобы управлять пространством сверху для тапа - эпл сделала переиспользуемый класс. Каждую карточку поместили в ещё один саб-контейнер с названием
#ViewHierarchy
Сделали на сценах, а лейаут на фреймах. Рут контроллер называется
PKPassGroupsViewController
. Главная вью UIStackView
, в неё поместили: заголовок Wallet, группу карточек, группу бонусных карт и футер.Каждую карточку поместили в контейнер
PKPassGroupView
. Внутри находится скрол-вью, которая отрабатывает жесты и является саб-контейнером карточки. Получается каждая карточка лежит на скрол-вью и управляется жестами на скролле 🤯. Понятия не имею как это работает.Чтобы управлять пространством сверху для тапа - эпл сделала переиспользуемый класс. Каждую карточку поместили в ещё один саб-контейнер с названием
WLEasyToHitCustomView
(переводится легко нажать). Возможно, связали контейнеры в родителе или через делегаты.#ViewHierarchy

Код Воробья для iOS разработчиков
Библиотека SPSettingsIcons генериурет иконки, как в настройках.
Указываете иконку и цвет фона. Для ячейки таблицы установить картинку в
Поддержите библиотеку - поставьте звезду на GitHub. Проект сделан под лейблом Код Воробья.
Указываете иконку и цвет фона. Для ячейки таблицы установить картинку в
cell.imageView?.image
- размеры будут как у эпл. Поддержите библиотеку - поставьте звезду на GitHub. Проект сделан под лейблом Код Воробья.

Код Воробья для iOS разработчиков
Media is too big
VIEW IN TELEGRAM
Библиотека ViewAnimator анимирует группы элементов: таблицы, коллекции и просто массивы вьюх. Ставится через Cocoapods и SPM.
Создаем анимацию и передаем с вьюхой:
Анимации можно комбинировать. Для таблицы / коллекции предварительно получить видимые ячейки:
#Библиотеки
Создаем анимацию и передаем с вьюхой:
let animation = AnimationType.from(direction: .top, offset: 30.0)
view.animate(animations: [animation])
Анимации можно комбинировать. Для таблицы / коллекции предварительно получить видимые ячейки:
let cells = tableView.visibleCells(in: 1)
UIView.animate(views: cells, animations: [rotateAnimation, fadeAnimation])
#Библиотеки

Код Воробья для iOS разработчиков
This media is not supported in your browser
VIEW IN TELEGRAM
ProgressView в SwiftUI. Как кастомизировать внешний вид для спинера и прогресс-бара. Сделаем прогресс-бар, который продолжается от центра в стороны.
https://sparrowcode.io/ru/tutorials/mastering-progressview-swiftui
https://sparrowcode.io/ru/tutorials/mastering-progressview-swiftui

Код Воробья для iOS разработчиков
Media is too big
VIEW IN TELEGRAM
Эпл добавила в документацию приложение UIKit Catalog с нативными элементами и примеры кастомизации.
Сделали на сторибордах. Каталог разбит на 3 секции: контролы, вьхи и пикеры. Есть примеры рендеров SFSymbols. Полезно начинающим видеть возможности кастомизации, например, что можно добавить текст-филд в алерт.
Сделали на сторибордах. Каталог разбит на 3 секции: контролы, вьхи и пикеры. Есть примеры рендеров SFSymbols. Полезно начинающим видеть возможности кастомизации, например, что можно добавить текст-филд в алерт.

Код Воробья для iOS разработчиков
Media is too big
VIEW IN TELEGRAM
Библиотека Hero делает бесшовные переходы между контроллерами.
На видео показал переход между экранами, который выглядит как перемещение контроллера в миниатюру. Нужно поставить контейнеру
#Библиотеки
На видео показал переход между экранами, который выглядит как перемещение контроллера в миниатюру. Нужно поставить контейнеру
view.hero.isEnabled = true
и указать идентификаторы:sourceView.hero.id = "ironMan"
destinationView.hero.id = "batMan”
#Библиотеки