Quickstarters
CRUD Samples
Строительство CRUD-приложения с Jetpack Compose?
29 мин
обзор в этом руководстве вы узнаете, как разработать приложение crud (создание, чтение, обновление, удаление) с использованием jetpack compose для android мы проиллюстрируем, как эффективно управлять операциями с данными, интегрируя ваше приложение с back4app проект начинается с настройки экземпляра back4app с именем basic crud app jetpackcompose , который будет служить надежной инфраструктурой для бэкенда мы опишем, как разработать оптимальную схему базы данных, определив конкретные коллекции и поля — либо вручную, либо с помощью инструментов, управляемых ии от back4app это гарантирует, что структура данных вашего приложения будет достаточно надежной для бесшовных операций crud затем вы настроите консоль администратора back4app, удобный интерфейс с функцией перетаскивания, который упрощает управление данными, делая выполнение действий crud простым наконец, вы свяжете свой фронтенд jetpack compose с back4app, используя либо parse android sdk (где это применимо), либо прямые вызовы rest api, при этом обеспечивая строгие меры безопасности с помощью продвинутых средств контроля доступа к концу этого учебника у вас будет android приложение, которое поддерживает основные функции crud, включая аутентификацию пользователей и безопасное управление данными что вы узнаете как построить приложение на основе crud на android с использованием jetpack compose методы создания масштабируемого бэкенда с помощью back4app стратегии использования интуитивно понятной консоли администратора back4app для манипуляции данными техники интеграции с использованием либо parse android sdk, либо rest api предварительные требования перед тем как продолжить, убедитесь, что у вас есть следующее аккаунт back4app с недавно созданным проектом если вам нужна помощь, ознакомьтесь с началом работы с back4app https //www back4app com/docs/get started/new parse app настройка разработки для android с android studio убедитесь, что у вас установлена последняя версия android studio вместе с kotlin знание kotlin, jetpack compose и restful api для быстрого освежения знаний посетите документацию jetpack compose https //developer android com/jetpack/compose шаг 1 – инициация вашего проекта создание проекта back4app войдите в свой аккаунт back4app выберите опцию “новое приложение” на вашей панели управления назовите ваш проект basic crud app jetpackcompose и завершите процесс настройки создать новый проект после настройки ваш проект будет виден в консоли back4app, закладывая основу для вашей конфигурации бэкенда шаг 2 – создание схемы вашей базы данных определение структуры ваших данных для этого crud приложения вы определите несколько коллекций ниже приведены образцы коллекций вместе с необходимыми полями и типами данных, чтобы ваш бэкенд был хорошо подготовлен для обработки данных 1\ коллекция элементы эта коллекция используется для хранения деталей о каждой записи поле тип детали ид идентификатор объекта автоматически сгенерированный уникальный идентификатор название строка название или заголовок элемента описание строка краткий обзор предмета создано в дата время, когда элемент был добавлен обновлено дата метка времени для последнего обновления 2\ сбор пользователи эта коллекция управляет профилями пользователей и данными аутентификации поле тип описание ид идентификатор объекта автоматически сгенерированный первичный ключ имя пользователя строка уникальный идентификатор пользователя электронная почта строка уникальный адрес электронной почты пользователя хэш пароля строка зашифрованный пароль для безопасности создано в дата время создания аккаунта обновлено дата последнее время обновления учетной записи вы можете вручную добавить эти коллекции и поля через панель управления back4app, создав новые классы и указав необходимые столбцы создать новый класс вы можете настроить каждый столбец, выбрав тип данных, назвав его, назначив значения по умолчанию и определив, является ли он обязательным создать столбец использование ии back4app для настройки схемы инструмент ии back4app может автоматизировать создание схемы вашей базы данных, интерпретируя запрос, который описывает ваши желаемые коллекции и поля эта функция значительно ускоряет конфигурацию проекта как использовать инструмент ии получите доступ к инструменту ии войдите в свою консоль back4app и перейдите в раздел ии введите описание вашей схемы предоставьте подробный запрос, описывающий коллекции и соответствующие им поля просмотрите и примените после генерации проверьте предложенную схему и интегрируйте ее в ваш проект пример запроса ии create the following collections in my back4app project collection items \ fields \ id objectid (auto generated) \ title string \ description string \ created at date (auto assigned) \ updated at date (auto updated) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto assigned) \ updated at date (auto updated) использование этого метода ии гарантирует, что ваша база данных структурирована правильно и оптимизирована для нужд вашего приложения шаг 3 – активация консоли администратора и управление функциями crud введение в консоль администратора консоль администратора back4app – это универсальное решение без кода, которое позволяет вам легко контролировать и управлять вашими данными на сервере его интуитивно понятный интерфейс поддерживает операции crud с перетаскиванием, что делает управление данными простым активация консоли администратора перейдите в раздел “дополнительно” на вашей панели управления back4app выберите “консоль администратора” и затем выберите “активировать консоль администратора ” настройте свои учетные данные администратора зарегистрировав своего первого администратора, что также устанавливает необходимые роли и системные коллекции включить приложение администратора после активации войдите в консоль администратора, чтобы управлять вашими коллекциями панель управления приложения администратора выполнение действий crud через консоль внутри консоли администратора вы можете добавить записи используйте функцию “добавить запись” в коллекции (например, товары), чтобы вставить новые записи просмотреть/изменить записи нажмите на любую запись, чтобы просмотреть или изменить ее поля удалить записи выберите опцию удаления, чтобы устранить устаревшие записи этот упрощенный интерфейс повышает производительность, делая операции на серверной стороне доступными и эффективными шаг 4 – подключение jetpack compose к back4app теперь, когда ваш бэкенд настроен, пришло время связать ваше android приложение, созданное с помощью jetpack compose, с back4app вариант a использование parse android sdk добавьте зависимость parse sdk обновите ваш build gradle файл implementation 'com parse\ parse android\ latest version' инициализируйте parse в вашем классе приложения создайте или обновите ваш класс приложения (например, myapplication kt ) // myapplication kt package com example basiccrud import android app application import com parse parse class myapplication application() { override fun oncreate() { super oncreate() parse initialize( parse configuration builder(this) applicationid("your application id") clientkey("your client key") server("https //parseapi back4app com") build() ) } } реализуйте crud на экране compose например, создайте экран для отображения элементов // itemsscreen kt package com example basiccrud import androidx compose foundation layout import androidx compose foundation lazy lazycolumn import androidx compose foundation lazy items import androidx compose material button import androidx compose material text import androidx compose runtime import androidx compose ui modifier import androidx compose ui unit dp import com parse parseobject import com parse parsequery import kotlinx coroutines dispatchers import kotlinx coroutines withcontext @composable fun itemsscreen() { var items by remember { mutablestateof(listof\<parseobject>()) } launchedeffect(unit) { withcontext(dispatchers io) { val query = parsequery getquery\<parseobject>("items") try { val result = query find() items = result } catch (e exception) { e printstacktrace() } } } column(modifier = modifier padding(16 dp)) { text(text = "items", modifier = modifier padding(bottom = 8 dp)) lazycolumn { items(items) { item > row( modifier = modifier fillmaxwidth() padding(8 dp), horizontalarrangement = arrangement spacebetween ) { text(text = item getstring("title") ? "нет заголовка") button(onclick = { / запустить действие редактирования / }) { text(text = "редактировать") } } } } } } вариант b использование rest или graphql если вы предпочитаете не использовать parse sdk, вы можете взаимодействовать с back4app напрямую, используя restful api или graphql например, чтобы получить элементы через rest suspend fun fetchitems() { try { val response = khttp get( url = "https //parseapi back4app com/classes/items", headers = mapof( "x parse application id" to "your application id", "x parse rest api key" to "your rest api key" ) ) // process json response accordingly } catch (e exception) { e printstacktrace() } } интегрируйте эти api вызовы в ваши компоненты compose по мере необходимости шаг 5 – обеспечение безопасности вашего бэкенда реализация списков контроля доступа (acl) улучшите безопасность данных, назначив acl вашим объектам например, чтобы создать запись, доступную только её владельцу suspend fun createsecureitem(itemdata map\<string, string>, owneruser parseobject) { val item = parseobject("items") item put("title", itemdata\["title"]) item put("description", itemdata\["description"]) // define acl so that only the owner has read/write privileges val acl = parseacl(owneruser) acl publicreadaccess = false acl publicwriteaccess = false item acl = acl try { item save() println("secure item saved successfully") } catch (e exception) { e printstacktrace() } } настройка разрешений на уровне класса (clp) в вашей консоли back4app настройте clp для каждой коллекции это гарантирует, что только авторизованные или аутентифицированные пользователи могут получить доступ к конфиденциальным данным шаг 6 – управление аутентификацией пользователей настройка учетных записей пользователей back4app использует встроенный класс user от parse для управления аутентификацией в вашем приложении jetpack compose обрабатывайте регистрацию и вход пользователя с помощью parse sdk ниже приведен пример экрана регистрации с использованием compose // signupscreen kt package com example basiccrud import androidx compose foundation layout import androidx compose material button import androidx compose material outlinedtextfield import androidx compose material text import androidx compose runtime import androidx compose ui modifier import androidx compose ui unit dp import com parse parseuser @composable fun signupscreen() { var username by remember { mutablestateof("") } var email by remember { mutablestateof("") } var password by remember { mutablestateof("") } column(modifier = modifier padding(16 dp)) { outlinedtextfield( value = username, onvaluechange = { username = it }, label = { text("username") }, modifier = modifier fillmaxwidth() ) spacer(modifier = modifier height(8 dp)) outlinedtextfield( value = email, onvaluechange = { email = it }, label = { text("email") }, modifier = modifier fillmaxwidth() ) spacer(modifier = modifier height(8 dp)) outlinedtextfield( value = password, onvaluechange = { password = it }, label = { text("password") }, modifier = modifier fillmaxwidth() ) spacer(modifier = modifier height(16 dp)) button(onclick = { val user = parseuser() user username = username user email = email user setpassword(password) user signupinbackground { e > if (e == null) { println("user registered successfully!") } else { println("registration error ${'$'}{e message}") } } }) { text(text = "sign up") } } } вы можете реализовать аналогичные экраны для входа и управления сессиями дополнительные функции, такие как вход через социальные сети, подтверждение электронной почты и восстановление пароля, можно управлять через консоль back4app шаг 7 – (не применимо) примечание развертывание через веб не применимо в контексте этого мобильного приложения шаг 8 – заключительные мысли и следующие шаги поздравляем! вы теперь разработали полное crud приложение с использованием jetpack compose и back4app вы создали проект под названием basic crud app jetpackcompose , разработали эффективную схему базы данных для элементов и пользователей и использовали консоль администратора back4app для удобного управления данными более того, вы интегрировали свой android фронтенд с back4app, применяя надежные меры безопасности на протяжении всего процесса что дальше? расширьте свой compose ui улучшите свое приложение дополнительными функциями, такими как детальные представления элементов, возможности поиска и обновления данных в реальном времени внедрите больше логики на стороне сервера рассмотрите возможность использования облачных функций, интеграции сторонних api или реализации контроля доступа на основе ролей дальнейшее обучение изучите документацию back4app https //www back4app com/docs и дополнительные учебные пособия по compose, чтобы оптимизировать производительность и исследовать пользовательские интеграции следуя этому руководству, у вас теперь есть инструменты для создания безопасного и эффективного crud бэкенда для ваших android приложений с использованием jetpack compose и back4app удачного кодирования!