Quickstarters
Feature Overview
Как построить бэкэнд для tvOS?
42 мин
введение в этом учебном пособии вы узнаете как создать бэкенд для tvos приложений с использованием back4app мы рассмотрим интеграцию основных функций back4app — таких как управление базами данных, функции облачного кода, rest и graphql api, аутентификация пользователей и в реальном времени (live queries) — для создания безопасного, масштабируемого бэкенда, который бесшовно взаимодействует с вашим apple tv приложением, созданным с помощью parse swift sdk вы увидите, как упрощенная среда back4app и быстрая настройка значительно сокращают время по сравнению с ручной настройкой серверов и баз данных в процессе вы получите практический опыт с ключевыми функциями, включая расширенные функции безопасности, планирование облачных задач и интеграцию вебхуков к концу этого учебного пособия вы будете готовы улучшить эту базовую структуру до готового к производству приложения для tvos или легко включить пользовательскую логику и сторонние api этот гид также поможет поддерживать высокое качество пользовательского опыта на apple tv , используя ваш проект xcode и существующие знания по разработке ios предварительные требования чтобы завершить это учебное пособие, вам потребуется аккаунт back4app и новый проект back4app начало работы с back4app https //www back4app com/docs/get started/new parse app если у вас нет аккаунта, вы можете создать его бесплатно следуйте приведенному выше руководству, чтобы подготовить ваш проект установленная версия xcode (последняя стабильная версия) вы будете создавать ваше приложение для tvos с помощью swift или swiftui убедитесь, что у вас есть самая последняя версия xcode из mac app store parse swift sdk настройте parse swift sdk https //github com/netreconlab/parse swift для подключения вашего приложения для tvos знание swift и основных концепций разработки ios/tvos если вы новичок в apple tv, сначала ознакомьтесь с документацией apple tvos https //developer apple com/tvos/ или с учебным пособием для начинающих убедитесь, что у вас есть все эти предварительные условия, прежде чем вы начнете наличие вашего проекта back4app и локального xcode проекта поможет вам легче следовать инструкциям шаг 1 – создание нового проекта на back4app и подключение создать новый проект первый шаг в создании вашего tvos приложения на back4app – это создание нового проекта если вы еще этого не сделали, выполните следующие шаги войдите в свою учетную запись back4app нажмите кнопку “новое приложение” на вашей панели управления back4app дайте вашему приложению имя (например, “tvos backend tutorial”) после создания вы увидите проект в списке на вашей панели управления back4app этот новый проект back4app является основой всех конфигураций бэкенда, рассмотренных в этом учебном пособии подключите parse swift sdk back4app использует parse для обработки хранения данных, аутентификации пользователей, функций в реальном времени и многого другого чтобы подключить ваше tvos приложение к back4app, установите и настройте parse swift sdk в вашем xcode проекте получите ваши ключи parse в вашей панели управления back4app перейдите в “настройки приложения” или “безопасность и ключи”, чтобы найти ваш id приложения и ключ клиента вы также увидите url сервера parse —обычно https //parseapi back4app com установите parse swift sdk в вашем проекте tvos swift package manager (рекомендуется) в xcode выберите файл → добавить пакеты введите url github для parse swift https //github com/netreconlab/parse swift git выберите подходящую версию или основную ветку cocoapods если вы предпочитаете cocoapods, добавьте следующее в ваш podfile pod 'parseswiftog' затем выполните pod install инициализируйте parse в вашем appdelegate или @main структуре import parseswift import swiftui @main struct mytvosapp app { init() { task { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\\\(error)") } } } var body some scene { windowgroup { contentview() } } } это гарантирует, что ваше tvos приложение создано для взаимодействия с бэкендом back4app, позволяя вам хранить данные, выполнять запросы, аутентифицировать пользователей и многое другое шаг 2 – настройка базы данных создание модели данных теперь, когда ваше tvos приложение подключено к back4app, вы можете создавать и управлять данными в parse swift вы определяете parseobject структуры struct gamescore parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom fields var score int? var playername string? } вы также можете вручную определить классы в вашей панели управления back4app перейдите в “база данных” в консоли back4app создайте новый класс (например, “gamescore”) добавьте соответствующие столбцы (score, playername и т д ) создание модели данных с использованием ai агента ai агент back4app может автоматически разработать вашу схему откройте ai агента в вашей панели управления back4app опишите вашу модель (например, “создать класс todo с полем заголовка и iscompleted”) примените и позвольте ai агенту сгенерировать схему чтение и запись данных с использованием sdk func savescore() async { var gamescore = gamescore() gamescore score = 1337 gamescore playername = "tvos fan" do { try await gamescore save() print("score saved successfully ") } catch { print("error saving score \\\\(error)") } } func fetchscores() async { let query = gamescore query() do { let results = try await query find() print("fetched scores \\\\(results)") } catch { print("error fetching scores \\\\(error)") } } чтение и запись данных с использованием rest api curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"score" 9000, "playername" "applefan"}' \\ https //parseapi back4app com/classes/gamescore чтение и запись данных с использованием graphql api mutation { creategamescore(input { fields { score 420 playername "swiftie" } }) { gamescore { objectid score playername } } } работа с живыми запросами (по желанию) живые запросы могут обеспечивать обновления в реальном времени в вашем apple tv интерфейсе—особенно полезно для многопользовательских или лидерборд приложений включите живые запросы в настройках сервера вашего приложения на back4app инициализируйте подписку let subscription = gamescore query("score" > 1000) subscribecallback { event in switch event { case created(let score) print("new high score created \\\\(score)") case updated(let score) print("high score updated \\\\(score)") case deleted(let score) print("high score removed \\\\(score)") default break } } шаг 3 – применение безопасности с помощью acl и clp обзор back4app защищает ваши данные с помощью acl (списков управления доступом) и clp (разрешений на уровне класса) используйте их для определения правил чтения/записи на уровне объекта или класса разрешения на уровне класса перейдите в базу данных , выберите класс (например, gamescore) нажмите “безопасность” или “разрешения на уровне класса” установите, кто может читать, писать или удалять (например, только аутентифицированные пользователи) acl в коде var gamescore = gamescore() gamescore score = 500 // restrict read/write to only the current user var acl = parseacl() if let user = try? await user current() { acl setreadaccess(user user, value true) acl setwriteaccess(user user, value true) } gamescore acl = acl шаг 4 – написание функций облачного кода почему облачный код? облачный код позволяет вам разгрузить критическую логику с вашего клиента на защищенный серверный код это отлично подходит для бизнес правил, валидации данных или интеграции с третьими сторонами без раскрытия секретов в вашем приложении tvos пример функции в вашем main js parse cloud define("awardbonus", async (request) => { const { objectid, bonus } = request params; const query = new parse query("gamescore"); const gamescore = await query get(objectid, { usemasterkey true }); gamescore increment("score", bonus); await gamescore save(null, { usemasterkey true }); return gamescore; }); развертывание back4app cli b4a configure accountkey b4a deploy или используйте back4app dashboard → cloud code → functions → main js вызов из swift import parseswift func awardbonusscore(objectid string, bonus int) async { do { let result = try await parsecloud callfunction("awardbonus", with \[ "objectid" objectid, "bonus" bonus ]) print("updated score \\\\(result)") } catch { print("error awarding bonus \\\\(error)") } } модули npm внутри вашего package json , добавьте зависимости { "dependencies" { "axios" "^0 27 0" } } затем подключите или импортируйте их в main js для использования в cloud code шаг 5 – настройка аутентификации аутентификация пользователей в back4app приложения tvos часто нуждаются в синхронизации данных пользователей или входе в систему parseuser предоставляет безопасную регистрацию, вход, сессии и доступ на основе ролей struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // essential var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } регистрация / вход func signupuser() async { var newuser = user() newuser username = "tvuser" newuser password = "secret" newuser email = "user\@example com" do { try await newuser signup() print("sign up successful ") } catch { print("error signing up \\\\(error)") } } func loginuser() async { do { let loggedin = try await user login(username "tvuser", password "secret") print("logged in as \\\\(loggedin username ?? "")") } catch { print("login error \\\\(error)") } } социальный вход настройте вход через facebook или apple https //www back4app com/docs/platform/sign in with apple затем свяжите аккаунты try await user link(with apple(idtoken "token", rawnonce "nonce")) шаг 6 – обработка хранения файлов настройка хранения файлов загрузите изображения пользователей, повторы игр или ресурсы приложения с помощью parsefile let filedata = data( ) // e g image bytes let file = parsefile(name "preview\ png", data filedata) do { let savedfile = try await file save() print("file uploaded \\\\(savedfile url)") } catch { print("error uploading file \\\\(error)") } пример прикрепите файлы к объектам struct gamemedia parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var screenshot parsefile? } соображения безопасности используйте clp или acl для защиты ссылок на файлы прямой url файла может быть общедоступным, если вы не включите безопасность файлов https //www back4app com/docs/security/parse security шаг 7 – подтверждение электронной почты и сброс пароля обзор подтверждение электронной почты помогает подтвердить право собственности пользователя на учетные записи электронной почты сброс пароля предлагает безопасный и удобный способ восстановления доступа к учетной записи настройка панели управления back4app в вашем приложении → настройки приложения → электронная почта включите подтверждение электронной почты или сброс пароля настройте шаблоны электронной почты реализация кода func requestpasswordreset(for email string) async { do { try await user passwordreset(email email) print("password reset link sent ") } catch { print("error requesting password reset \\\\(error)") } } шаг 8 – планирование задач с помощью облачных заданий облачные задания автоматизируйте повторяющиеся задачи, такие как очистка старых данных или отправка ежемесячных обновлений parse cloud job("cleanupoldscores", async (request) => { const now = new date(); const thirtydaysago = new date(now 30 24 60 60 1000); const query = new parse query("gamescore"); query lessthan("createdat", thirtydaysago); const oldscores = await query find({ usemasterkey true }); await parse object destroyall(oldscores, { usemasterkey true }); return `deleted ${oldscores length} old scores `; }); в back4app dashboard → настройки приложения → настройки сервера → фоновая работа , запланируйте “cleanupoldscores” для ежедневного выполнения шаг 9 – интеграция вебхуков определение вебхуки позволяют вашему приложению back4app отправлять события во внешние сервисы это может быть отправка уведомлений в slack, обновлений платежей в stripe или аналитических данных на ваш сервер конфигурация в вашем back4app dashboard перейдите в дополнительно → вебхуки → добавить вебхук укажите конечную точку (например, https //myserver com/webhook endpoint ) и триггеры (обновления объектов, новые записи и т д ) пример уведомить slack, когда создается новый рекорд parse cloud aftersave("gamescore", async (request) => { const score = request object get("score"); await sendtoslack(`a new high score of ${score} was posted!`); }); шаг 10 – изучение панели администратора back4app где это найти приложение back4app admin app является удобной, ориентированной на модели панелью для управления данными, выполнения операций crud или редактирования классов — без необходимости прямых запросов к базе данных включите его через app dashboard → more → admin app функции после включения вы можете пригласить членов команды или клиентов управлять данными, проверять журналы или настраивать push уведомления — по сути, предоставляя им прямой доступ к бэкенду вашего tvos приложения заключение следуя этому подробному руководству, вы создали безопасный бэкенд для вашего tvos приложения с использованием back4app настроили базу данных с классами, типами данных и отношениями настроили запросы в реальном времени для отражения немедленных изменений применили безопасность через acl и clp реализовали cloud code для пользовательской бизнес логики и интеграций включили аутентификацию с проверкой электронной почты и сбросом паролей обработали загрузку файлов с дополнительными контролями безопасности запланировали cloud jobs для рутинных задач использовали вебхуки для интеграции с внешними сервисами изучили панель администратора для управления и мониторинга данных теперь вы хорошо подготовлены к созданию насыщенных, высококачественных apple tv приложений ваш приложение построено на прочной основе — наслаждайтесь превращением ваших tvos приложений идей в реальность! следующие шаги уточните свой интерфейс tvos внедрите навигацию на основе фокуса, пользовательские потоки для больших экранов и лучшие практики app store улучшите безопасность добавьте управление доступом на основе ролей, многофакторную аутентификацию или расширенное шифрование углубите свои навыки изучите более продвинутые функции parse swift, такие как оффлайн кэширование или пользовательская аналитика посмотрите официальные документы документы back4app https //www back4app com/docs и документы apple tvos https //developer apple com/tvos/ для более глубоких знаний монетизация рассмотрите возможность подписки или оплаты за просмотр, чтобы расширить потенциал вашего стримингового бизнеса с основами из этого руководства вы можете продолжать внедрять инновации и интегрировать новые функции удачи в продвижении вашего приложения tvos , на следующий уровень!