Использование UIViewRepresentable для отображения кнопок входа в социальные сети и интерфейса

Всем привет,

В этой статье я расскажу, как реализовать «Вход с помощью Google» (или другой вход в социальную сеть) в проекте SwiftUI.

На данный момент кнопка и поток входа в социальную сеть доступны только для реализации с использованием контроллера представления в UIKit. Следовательно, мы создадим для них представления SwiftUI, используя UIViewRepresentable, чтобы реализовать функциональность в нашем проекте.

Мы специально реализуем вход с помощью Google, однако концепция остается той же для реализации и других поставщиков (например, вход с помощью GitHub).

Ладно, пошагово -

1. Установите необходимые зависимости и настройте проект.

Посетите официальный веб-сайт документации Google и выполните начальные шаги по настройке проекта для использования Google Auth.



2. Добавьте код AppDelegate как есть из документации.

Посетите эту страницу и добавьте код AppDelegate как есть.



3. Оберните кнопку входа и последовательность действий для SwiftUI.

Приведенная выше страница документации (которую мы использовали на шаге 2) содержит все шаги (четыре шага), необходимые от начала до конца. Из них мы уже выполнили первые два шага (до «Включить вход»).

Шаги 3 и 4 («Добавить кнопку входа» и «Выйти пользователя») в документации предназначены для контроллеров представлений. Мы рассмотрим оба из них здесь, заключив их в представления SwiftUI с помощью UIViewRepresentable.

Структура GoogleSignInButton - это представление для кнопки (специально для Google, для кнопки другого поставщика потребуется новое представление).

Структура SocialLogin - это представление, которое отвечает за пользовательский интерфейс потока провайдера входа в социальную сеть. Это общее представление, которое может инкапсулировать пользовательские интерфейсы для всех различных поставщиков.

В настоящее время у нас есть метод попыткиLoginGoogle, который вызывает процесс входа в Google. Точно так же у нас может быть метод tryLoginGitHub, который может вызывать поток входа GitHub.

4. Использование в приложении SwiftUI.

Все настройки завершены, и теперь мы можем просто использовать кнопку входа и получить поток пользовательского интерфейса провайдера следующим образом:

Готово, готово!

Спасибо за чтение!

Не стесняйтесь обращаться ко мне и общаться, проверять наши проекты или присоединяться к нашему сообществу с открытым исходным кодом:
LinkedIn, GitHub, Mentorship iOS, AnitaB.org Community