Как устроен системный калькулятор
Приложение написано на сценах. Root-контроллер называется
Клавиатуру сделали обычный вью и назвали
#ViewHierarchy
Приложение написано на сценах. Root-контроллер называется
DisplayViewController
. Лейбл с введенными цифрами обернули в контейнер DisplayView
и добавили жесты LongPress, Swipe и Tap.Клавиатуру сделали обычный вью и назвали
CalculatorKeypadView
. Кнопки сделаны как UIButton. Все кнопки - объекты одного класса, даже измененный 0. Контейнер лейаутится через AutoLayout, а вот сетку с кнопками расставили с помощью фреймов.#ViewHierarchy
🔥53👍20😱4❤3🎉1
Как добавить кастомную SwiftUI-вью в библиотеку Xcode. Туториал написал Никита. Я рад, что авторов становится больше.
Чтобы оптимизировать работу над туториалами, я опубликовал их на GitHub. Теперь каждый может добавить свой туториал, сделать перевод или исправить опечатку. Открывайте PR, после апрува изменения на сайте появятся автоматически.
Чтобы оптимизировать работу над туториалами, я опубликовал их на GitHub. Теперь каждый может добавить свой туториал, сделать перевод или исправить опечатку. Открывайте PR, после апрува изменения на сайте появятся автоматически.
🔥19👍7❤3🎉2
Платежи вне App Store для дейтинг приложений в Нидерландах будут с комиссией 27%. Появились подробности.
Сделали через разрешение
Разработчик подает отчёт ежемесячно, Apple выставляет счёт на комиссию.
27% и комиссия платежной системы сумарно дают комиссию в 30%. Apple поступила логично - от своего заработка за размещение в их магазине отняли комиссю банка. Но манипулятивный заголовок про безопасность выглядит дёшево.
Сделали через разрешение
StoreKit External Purchase Link Entitlement
. Нельзя комбинировать со встроенными покупками. Интерфейс платежа должен быть нативным, веб-вью нельзя. Заголовок со скриншота добавлять обязательно 🤦♂️ Разработчик подает отчёт ежемесячно, Apple выставляет счёт на комиссию.
27% и комиссия платежной системы сумарно дают комиссию в 30%. Apple поступила логично - от своего заработка за размещение в их магазине отняли комиссю банка. Но манипулятивный заголовок про безопасность выглядит дёшево.
😱11👍8🔥5
Сегодня утром разработчики из Беларуси получили сообщение о деактивации аккаунтов.
Приложения пока остаются в App Store, но создать новое приложение и версию нельзя. Статус некоторых приложений изменился на Pending Agreement.
В панели статус соглашения изменился на Restricted. Похожая ситуация уже была в РФ и Крыму.
За обновлениями ситуации можно следить здесь.
Приложения пока остаются в App Store, но создать новое приложение и версию нельзя. Статус некоторых приложений изменился на Pending Agreement.
В панели статус соглашения изменился на Restricted. Похожая ситуация уже была в РФ и Крыму.
За обновлениями ситуации можно следить здесь.
😱35🔥2
Код Воробья для iOS разработчиков
Сегодня утром разработчики из Беларуси получили сообщение о деактивации аккаунтов. Приложения пока остаются в App Store, но создать новое приложение и версию нельзя. Статус некоторых приложений изменился на Pending Agreement. В панели статус соглашения изменился…
Аккаунты оживают - соглашениям вернули активный статус. У некоторых сбросился адрес, нужно ввести заново.
Эпл разослала сообщения, что это была ошибка.
Эпл разослала сообщения, что это была ошибка.
🎉34❤6👍6
This media is not supported in your browser
VIEW IN TELEGRAM
Ваш покорный слуга дал комментарий по блокировке аккаунтов в Беларуси для РБК @rbc_news.
Ситуация с аккуантами разрешилась - приложения вернули в стор, позиции и рейтинги восстановили. Эпл принесла извинения.
Ситуация с аккуантами разрешилась - приложения вернули в стор, позиции и рейтинги восстановили. Эпл принесла извинения.
🔥35👍13😱1🎉1
С iOS 13 завезли удобную асинхронность с async/await. Никита написал туториал, где разобрал
С новыми инструментами код удобнее читать и поддерживать. В конце туториала напишите тузлу для получения позиции приложения в App Store.
https://sparrowcode.io/ru/tutorials/async-await
Task
, actor
и их взаимодействие. С новыми инструментами код удобнее читать и поддерживать. В конце туториала напишите тузлу для получения позиции приложения в App Store.
https://sparrowcode.io/ru/tutorials/async-await
👍25🔥11❤5
Как устроено приложение Wallet
Сделали на сценах, а лейаут на фреймах. Рут контроллер называется
Каждую карточку поместили в контейнер
Чтобы управлять пространством сверху для тапа - эпл сделала переиспользуемый класс. Каждую карточку поместили в ещё один саб-контейнер с названием
#ViewHierarchy
Сделали на сценах, а лейаут на фреймах. Рут контроллер называется
PKPassGroupsViewController
. Главная вью UIStackView
, в неё поместили: заголовок Wallet, группу карточек, группу бонусных карт и футер.Каждую карточку поместили в контейнер
PKPassGroupView
. Внутри находится скрол-вью, которая отрабатывает жесты и является саб-контейнером карточки. Получается каждая карточка лежит на скрол-вью и управляется жестами на скролле 🤯. Понятия не имею как это работает.Чтобы управлять пространством сверху для тапа - эпл сделала переиспользуемый класс. Каждую карточку поместили в ещё один саб-контейнер с названием
WLEasyToHitCustomView
(переводится легко нажать). Возможно, связали контейнеры в родителе или через делегаты.#ViewHierarchy
🔥35👍9😱8
Библиотека SPSettingsIcons генериурет иконки, как в настройках.
Указываете иконку и цвет фона. Для ячейки таблицы установить картинку в
Поддержите библиотеку - поставьте звезду на GitHub. Проект сделан под лейблом Код Воробья.
Указываете иконку и цвет фона. Для ячейки таблицы установить картинку в
cell.imageView?.image
- размеры будут как у эпл. Поддержите библиотеку - поставьте звезду на GitHub. Проект сделан под лейблом Код Воробья.
🔥32👍11❤6🎉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🔥12❤3
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
👍30🔥5❤3
Media is too big
VIEW IN TELEGRAM
Эпл добавила в документацию приложение UIKit Catalog с нативными элементами и примеры кастомизации.
Сделали на сторибордах. Каталог разбит на 3 секции: контролы, вьхи и пикеры. Есть примеры рендеров SFSymbols. Полезно начинающим видеть возможности кастомизации, например, что можно добавить текст-филд в алерт.
Сделали на сторибордах. Каталог разбит на 3 секции: контролы, вьхи и пикеры. Есть примеры рендеров SFSymbols. Полезно начинающим видеть возможности кастомизации, например, что можно добавить текст-филд в алерт.
👍48❤10🔥7
Media is too big
VIEW IN TELEGRAM
Библиотека Hero делает бесшовные переходы между контроллерами.
На видео показал переход между экранами, который выглядит как перемещение контроллера в миниатюру. Нужно поставить контейнеру
#Библиотеки
На видео показал переход между экранами, который выглядит как перемещение контроллера в миниатюру. Нужно поставить контейнеру
view.hero.isEnabled = true
и указать идентификаторы:sourceView.hero.id = "ironMan"
destinationView.hero.id = "batMan”
#Библиотеки
🔥50👍11🎉1
Apple разрешила переность приложения для аккаунтов с App Store Small Buisness. В соглашении обновили пункт 3.4 - при переносе выручка приложения считается в лимиты и отправителя, и получателя приложения.
🔥7👍5❤3
GitHub не будет блокировать российских разработчиков. Решение мотивировано тем, что сервис хочет находится вне политки и конфликтов - «оставаться домом для разработчиков, где бы они не находились».
Сейчас GitHub запрещен в Крыму, Кубе, Иране, Северной Кореи и Сирии.
Сейчас GitHub запрещен в Крыму, Кубе, Иране, Северной Кореи и Сирии.
❤90👍18😱7🔥3