Код Воробья для iOS разработчиков
11.3K subscribers
382 photos
96 videos
2 files
304 links
Пишу для iOS разработчиков про Xcode, разработку на Swift и SwiftUI.
Реклама: sparrowcode.io/ru/ads
Автор: @ivanvorobei

РКН: bit.ly/sparrowcode
Download Telegram
Платежи вне App Store для дейтинг приложений в Нидерландах будут с комиссией 27%. Появились подробности.

Сделали через разрешение StoreKit External Purchase Link Entitlement. Нельзя комбинировать со встроенными покупками. Интерфейс платежа должен быть нативным, веб-вью нельзя. Заголовок со скриншота добавлять обязательно 🤦‍♂️

Разработчик подает отчёт ежемесячно, Apple выставляет счёт на комиссию.

27% и комиссия платежной системы сумарно дают комиссию в 30%. Apple поступила логично - от своего заработка за размещение в их магазине отняли комиссю банка. Но манипулятивный заголовок про безопасность выглядит дёшево.
😱11👍8🔥5
Сегодня утром разработчики из Беларуси получили сообщение о деактивации аккаунтов.

Приложения пока остаются в App Store, но создать новое приложение и версию нельзя. Статус некоторых приложений изменился на Pending Agreement.

В панели статус соглашения изменился на Restricted. Похожая ситуация уже была в РФ и Крыму.

За обновлениями ситуации можно следить здесь.
😱35🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Ваш покорный слуга дал комментарий по блокировке аккаунтов в Беларуси для РБК @rbc_news.

Ситуация с аккуантами разрешилась - приложения вернули в стор, позиции и рейтинги восстановили. Эпл принесла извинения.
🔥35👍13😱1🎉1
С iOS 13 завезли удобную асинхронность с async/await. Никита написал туториал, где разобрал Task, actor и их взаимодействие.

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

https://sparrowcode.io/ru/tutorials/async-await
👍25🔥115
Как устроено приложение Wallet

Сделали на сценах, а лейаут на фреймах. Рут контроллер называется PKPassGroupsViewController. Главная вью UIStackView, в неё поместили: заголовок Wallet, группу карточек, группу бонусных карт и футер.

Каждую карточку поместили в контейнер PKPassGroupView. Внутри находится скрол-вью, которая отрабатывает жесты и является саб-контейнером карточки. Получается каждая карточка лежит на скрол-вью и управляется жестами на скролле 🤯. Понятия не имею как это работает.

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

#ViewHierarchy
🔥35👍9😱8
Библиотека SPSettingsIcons генериурет иконки, как в настройках.

Указываете иконку и цвет фона. Для ячейки таблицы установить картинку в cell.imageView?.image - размеры будут как у эпл.

Поддержите библиотеку - поставьте звезду на GitHub. Проект сделан под лейблом Код Воробья.
🔥32👍116🎉3
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])


#Библиотеки
👍34🔥123
This media is not supported in your browser
VIEW IN TELEGRAM
ProgressView в SwiftUI. Как кастомизировать внешний вид для спинера и прогресс-бара. Сделаем прогресс-бар, который продолжается от центра в стороны.

https://sparrowcode.io/ru/tutorials/mastering-progressview-swiftui
👍30🔥53
Media is too big
VIEW IN TELEGRAM
Эпл добавила в документацию приложение UIKit Catalog с нативными элементами и примеры кастомизации.

Сделали на сторибордах. Каталог разбит на 3 секции: контролы, вьхи и пикеры. Есть примеры рендеров SFSymbols. Полезно начинающим видеть возможности кастомизации, например, что можно добавить текст-филд в алерт.
👍4810🔥7
Media is too big
VIEW IN TELEGRAM
Библиотека Hero делает бесшовные переходы между контроллерами.

На видео показал переход между экранами, который выглядит как перемещение контроллера в миниатюру. Нужно поставить контейнеру view.hero.isEnabled = true и указать идентификаторы:

sourceView.hero.id = "ironMan"
destinationView.hero.id = "batMan”


#Библиотеки
🔥50👍11🎉1
GitHub добавил диаграммы в Readme. Под капотом работает библиотека Mermaid. Можно делать тайминги, круговые диаграммы, шаги и схемы.

В январе GitHub добавил поддержку SVG для Readme.
🔥179👍9
Apple разрешила переность приложения для аккаунтов с App Store Small Buisness. В соглашении обновили пункт 3.4 - при переносе выручка приложения считается в лимиты и отправителя, и получателя приложения.
🔥7👍53
GitHub не будет блокировать российских разработчиков. Решение мотивировано тем, что сервис хочет находится вне политки и конфликтов - «оставаться домом для разработчиков, где бы они не находились».

Сейчас GitHub запрещен в Крыму, Кубе, Иране, Северной Кореи и Сирии.
90👍18😱7🔥3
Новое в Swift 5.6:

- Ключевое слово any для отображения экзистанциальных типов
- Плейсхолдеры _ позволяют указывать некоторые части типа значения
- Протокол CodingKeyRepresentable кодирует словари с ключами, не являющимися обычными String или Int
- Условие if #unavailable - cразу код для версий, меньше заданной в условии
- Улучшили функции для параллелизма
👍22🔥92🎉2
Сегодня, 5 марта 2022 года, в реестре компаний Великобритании появилась организация Sparrow Code LTD.
🔥81👍195🎉5
Вышел Xcode 13.3 RC, номер сборки 13E113. Для установки нужен macOS Monterey 12 и новее.

Устранили уязвимости Log4J. Поправили вылеты и ломающийся SwiftUI Preview. Xcode научился собирать Swift-документацию проекта в бинарники. Улучшили сканирование утечек памяти и сбор метрик в Instruments.

Полный список измененений здесь. Мы сообщим, когда выйдет релиз и номер релизной сборки.
16👍13🔥6
Добавил на сайт вакансии. Ищу iOS разработчиков, дизайнеров, авторов и переводчика. Только удаленка, зарплата в долларах. Можно джунам. Для разработчиков есть тестовое задание. Подробнее:
http://sparrowcode.io/ru/jobs

UPD: Большинство вакансий закрыто.
🔥31👍135