React Native Шаблон

Внутренний шаблон приложения Todo App
React Native - схема, API и руководство по искусственному интеллекту

Готовая к производству схема бэкенда React Native Todo и Starter Kit на Back4app: ER-диаграмма, словарь данных, JSON-схема, игровая площадка API, JavaScript/React примеры нативного кода, offline-first pinning, а также подсказка AI Agent для развертывания в один клик за считанные минуты.

Основные выводы

На этой странице вы получите готовую к производству схему, подсказку AI в один клик и пошаговый React Native код - так что вы сможете создать приложение Todo без создания бэкенда.

  1. Развертывание за считанные минутыВставьте приглашение AI Agent и получите работающее приложение с фронтендом, бэкендом и базой данных.
  2. Безопасность по умолчаниюACL на уровне строк гарантируют, что каждый пользователь видит только свои собственные задания.
  3. React Native-нативный SDKParse React Native SDK с async/await, локальным пиннингом и Live Queries из коробки.
  4. ОТДЫХ + GraphQLОба API генерируются автоматически; не нужно писать собственные конечные точки.
  5. Два класса_User (встроенная авторизация) и Todo (задачи с заголовком, выполненные, срок выполнения, приоритет, владелец).

Что такое бэкэнд-шаблон React Native Todo App?

React Native Todo App Backend Template - это готовая к производству схема бэкенда, размещенная на Back4app. Она предоставляет вам два класса баз данных (_User и Todo), ACL на основе владения, REST и GraphQL API, а также подсказку AI Agent в один клик - так что вы можете подключить React Native приложение и отправить работающее Todo приложение с поддержкой офлайн за несколько минут, а не дней.

Лучшее для:

React Отечественные разработчикиЭкспозиция и голый рабочий процессМобильные приложения, ориентированные на работу в автономном режимеЗапуск MVPКроссплатформенные iOS и Android.

Обзор

Приложение Todo - одна из самых распространенных отправных точек для изучения бэкенд-разработки. Под капотом у него должны быть регистрация пользователей, CRUD задач, контроль доступа на основе прав собственности, а также синхронизация в реальном времени и поддержка офлайн.

В приведенной ниже схеме определены два класса - _User (встроенный) и Todo, - связанные указателем. С помощью Parse React Native SDK (Back4app) вы можете взаимодействовать с этим бэкендом непосредственно из вашего JavaScript или TypeScript кода - запрашивать, создавать, обновлять и удалять объекты, а также сохранять их для автономной работы - без написания собственного уровня API.

Почему стоит создать свой бэкэнд React Native Todo с помощью Back4app?

Back4app предоставляет вам готовый бэкэнд и Parse React Native SDK, чтобы вы могли сосредоточиться на UX и производительности, а не на REST-проводке и аутентификации.

  • Сначала оффлайн и синхронизация: Закрепите объекты Todo в локальном хранилище данных, чтобы список работал в автономном режиме и синхронизировался, когда приложение вернется в сеть - идеальный вариант для мобильных устройств.
  • Компоненты и крючки: Используйте SDK с React крючками и контекстом; поддерживайте состояние в синхронизации с Parse запросами и Live Queries для обновлений в реальном времени.
  • Кроссплатформенность, один бэкэнд: Одна и та же схема и API для iOS и Android; идеально подходит для команд React Native, использующих Expo или пустой рабочий процесс.

Идеально подходит для React нативных разработчиков, использующих Expo или голый рабочий процесс - один бэкенд, обе платформы.

Основные преимущества

Бэкенд Todo, готовый к производству, позволит вам ускорить процесс поставки и сосредоточиться на своем приложении.

Отправка быстрее, без внутреннего кода

API REST и GraphQL и готовая к использованию схема - подключите свое приложение и работайте.

Безопасность по умолчанию

ACL и разрешения на уровне классов, чтобы пользователи получали доступ только к своим собственным данным.

Обновления в режиме реального времени

Live Queries через WebSockets для мгновенного обновления пользовательского интерфейса.

Встроенная авторизация

Регистрация пользователей, вход в систему и работа с сессиями "из коробки" - без необходимости создания собственного слоя аутентификации.

Работает в автономном режиме

Локальная привязка позволяет сохранять данные в автономном режиме и синхронизировать их при повторном подключении.

Развертывание за считанные минуты

Используйте AI Agent для создания и развертывания приложения Todo на основе этого шаблона.

Готовы попробовать?

Агент искусственного интеллекта Back4app создаст бэкэнд вашего приложения Todo, подключит фронтэнд React Native и развернет его - все это можно сделать с помощью одного запроса.

Бесплатный старт - 50 подсказок AI Agent в месяц, не требуется кредитная карта

Технический стек

Все, что работает с этим шаблоном приложения Todo, можно увидеть с первого взгляда.

Frontend
React Native
Бэкэнд
Back4app
База данных
MongoDB
Авторизация
Авторизация и контроль доступа
API
ОТДЫХ И __БРЕНД0__
Развертывание
Агент искусственного интеллекта / приборная панель

Диаграмма ER

Диаграмма "сущность-связь" для модели данных приложения React Native Todo.

Просмотр источника диаграммы
Mermaid
erDiagram
    _User {
        String objectId PK
        String username
        String email
        String password
        Date createdAt
        Date updatedAt
    }

    Todo {
        String objectId PK
        String title
        Boolean done
        Date dueDate
        Number priority
        Pointer owner FK
        Date createdAt
        Date updatedAt
    }

    _User ||--o{ Todo : "owns"

Интеграционный поток

Последовательность Auth-to-CRUD: как ваше приложение React Native общается с Back4app - логин, затем запрос и создание тодо.

Просмотр источника диаграммы
Mermaid
sequenceDiagram
  participant User
  participant App as React Native App
  participant Back4app as Back4app Cloud

  User->>App: Login
  App->>Back4app: Parse.User.logIn(username, password)
  Back4app-->>App: Session token
  App-->>User: Logged in

  User->>App: Load todos
  App->>Back4app: new Parse.Query('Todo').find()
  Back4app-->>App: Array of Todo
  App-->>User: Show list

  User->>App: Create todo
  App->>Back4app: todo.save()
  Back4app-->>App: Todo (objectId)
  App-->>User: Updated list

Словарь данных

Полный справочник по полям для каждого класса в схеме.

ПолеТипОписаниеТребуется
objectIdStringAuto-generated unique identifierавто
titleStringShort description of the task
doneBooleanWhether the task is completed
dueDateDateOptional deadline for the task
priorityNumberPriority level (1 = high, 3 = low)
ownerPointer<_User>User who owns this task
createdAtDateAuto-generated creation timestampавто
updatedAtDateAuto-generated last-update timestampавто

Поля 8 в Todo

Безопасность и разрешения

Как права собственности, ACL и разрешения на уровне классов защищают данные в этой схеме.

ACL на уровне строк

Каждое Todo получает ACL, привязанный к его владельцу. Только создатель может читать, обновлять или удалять свои задачи.

Разрешения на уровне класса

CLP ограничивают, какие роли или пользователи могут создавать, читать, обновлять или удалять объекты на уровне класса - это ваша первая линия защиты.

Владение на основе указателей

Указатель владельца связывает каждый Todo с его _пользователем. Триггеры Cloud Code могут автоматически устанавливать владельца и накладывать ACL на сохранение.

Схема (JSON)

Необработанное определение схемы в формате JSON - скопируйте и используйте в своем приложении Back4app или импортируйте через API.

JSON
{
  "classes": [
    {
      "className": "Todo",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "title": {
          "type": "String",
          "required": true
        },
        "done": {
          "type": "Boolean",
          "required": false,
          "defaultValue": false
        },
        "dueDate": {
          "type": "Date",
          "required": false
        },
        "priority": {
          "type": "Number",
          "required": false,
          "defaultValue": 3
        },
        "owner": {
          "type": "Pointer",
          "targetClass": "_User",
          "required": false
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    },
    {
      "className": "_User",
      "fields": {
        "objectId": {
          "type": "String",
          "required": false
        },
        "username": {
          "type": "String",
          "required": true
        },
        "email": {
          "type": "String",
          "required": true
        },
        "password": {
          "type": "String",
          "required": true
        },
        "createdAt": {
          "type": "Date",
          "required": false
        },
        "updatedAt": {
          "type": "Date",
          "required": false
        }
      }
    }
  ]
}

Построение с помощью агента искусственного интеллекта

Используйте Back4app AI Agent для создания реального приложения Todo на основе этого шаблона: он создаст фронтенд, бэкенд (схему, аутентификацию и API) и развернет его - никаких ручных настроек. В подсказке ниже описан стек Todo, чтобы агент мог создать готовое к производству приложение за один раз.

Back4app Агент искусственного интеллекта
Готовность к строительству
Create a Todo app on Back4app with this exact schema and behavior.

Schema:
1. _User (use Back4app built-in): username (String, required), email (String, required), password (String, required); objectId, createdAt, updatedAt (system).
2. Todo: title (String, required), done (Boolean, default: false), dueDate (Date, optional), priority (Number, default: 3; 1=high, 2=medium, 3=low), owner (Pointer to _User; set to current user on create); objectId, createdAt, updatedAt (system).

Security:
- Set ACLs on every Todo so only the owner has read and write. No public read/write.
- On create, set Todo.owner to the current user (e.g. via Cloud Code beforeSave or client-side).
- Use Class-Level Permissions so only authenticated users can create/read/update/delete Todo.

Auth:
- Sign-up (username, email, password) and login; support logout/session.
- After login, the app should only show and allow CRUD for the current user's todos.

Behavior:
- Full CRUD for Todo: create, list (only owner's), get one, update (toggle done, edit title, dueDate, priority), delete.
- List todos with sort (e.g. by priority then dueDate or createdAt). Default priority for new todos: 3 (low).

Deliver:
- Create the Back4app app with the schema above, ACLs, and any Cloud Code needed (e.g. beforeSave on Todo to set owner).
- Generate the frontend and connect it to this backend; deploy so the app is runnable end-to-end.

Нажмите кнопку ниже, чтобы открыть агента с предварительно заполненной подсказкой этого шаблона.

Развертывание за считанные минуты50 бесплатных подсказок в месяцНе требуется кредитная карта

API Playground

Попробуйте конечные точки REST и GraphQL для схемы Todo. Ответы из примера данных выше - учетная запись Back4app не требуется.

Загрузка игровой площадки...

Использует ту же схему Todo, что и этот шаблон.

Пошаговая интеграция React Native

Подключитесь к своему Back4app бэкенду из React Native приложения, используя Parse React Native SDK.

  1. Шаг 1: Установите Parse React Native SDK

    Добавьте Parse React Native SDK (или React-native-Parse) в свой проект с помощью npm или yarn.

    JavaScript
    npm install parse --save
    # or: yarn add parse
  2. Шаг 2: Инициализируйте Parse в вашем приложении

    Инициализируйте Parse SDK в записи вашего приложения (например, App.js или index.js) с идентификатором приложения, URL-адресом сервера и ключом JavaScript.

    JavaScript
    import Parse from 'parse/react-native';
    
    Parse.setAsyncStorage(AsyncStorage);
    Parse.initialize('YOUR_APP_ID', 'YOUR_JS_KEY');
    Parse.serverURL = 'https://parseapi.back4app.com';
    
  3. Шаг 3: Запросить все тодо

    Создайте Parse Query для класса Todo, добавьте порядок возрастания по приоритету и вызовите find() (или findWithCount()).

    JavaScript
    async function getTodos() {
      const query = new Parse.Query('Todo').ascending('priority');
      const results = await query.find();
      return results;
    }
  4. Шаг 4: Создайте тодо

    Создайте новый Parse.Object('Todo'), установите название, выполненное и приоритет, затем вызовите save().

    JavaScript
    async function createTodo(title, priority = 3) {
      const Todo = Parse.Object.extend('Todo');
      const todo = new Todo();
      todo.set('title', title);
      todo.set('done', false);
      todo.set('priority', priority);
      await todo.save();
      return todo;
    }
  5. Шаг 5: Обновление и удаление тодо

    Получите Todo по объектуId, установите поля и вызовите save() для обновления или destroy() для удаления.

    JavaScript
    async function markDone(objectId) {
      const query = new Parse.Query('Todo');
      const todo = await query.get(objectId);
      todo.set('done', true);
      await todo.save();
    }
    
    async function deleteTodo(objectId) {
      const query = new Parse.Query('Todo');
      const todo = await query.get(objectId);
      await todo.destroy();
    }

Управление государством

Используйте React хуки (useState, useReducer, useContext) или небольшое хранилище для хранения состояния списка Todo и вызывайте Parse SDK.

Полная модель данных JavaScript/TypeScript

Скопируйте полный тип Todo и помощники для безопасной для типов сериализации с помощью Parse SDK.

JavaScript
/** @typedef {{ objectId?: string, title: string, done: boolean, dueDate?: string, priority: number, owner?: { objectId: string }, createdAt?: string, updatedAt?: string }} Todo */

/**
 * @param {Parse.Object} obj
 * @returns {Todo}
 */
function todoFromParse(obj) {
  return {
    objectId: obj.id,
    title: obj.get('title'),
    done: obj.get('done') ?? false,
    dueDate: obj.get('dueDate')?.toISOString?.() ?? undefined,
    priority: obj.get('priority') ?? 3,
    owner: obj.get('owner') ? { objectId: obj.get('owner').id } : undefined,
    createdAt: obj.get('createdAt')?.toISOString?.() ?? undefined,
    updatedAt: obj.get('updatedAt')?.toISOString?.() ?? undefined,
  };
}

Оффлайн-первое и локальное хранилище данных

Используйте функции pinAll() и unpin, чтобы данные были доступны в автономном режиме и синхронизировались при возвращении в сеть.

В Parse React Native SDK поддерживается локальное хранилище данных. После получения объектов Todo закрепите их, чтобы список был доступен в автономном режиме; выполните тот же запрос с помощью функции fromLocalDatastore(), когда устройство находится в автономном режиме. Когда приложение вернется в сеть, сохраните изменения и синхронизируйте.

Ниже: прикрепляйте результаты после выборки и открепляйте, когда вам больше не нужны локальные копии.

JavaScript
// Pin todos after fetch (offline-first)
async function fetchAndPinTodos() {
  const query = new Parse.Query('Todo').ascending('priority');
  const results = await query.find();
  await Parse.Object.pinAll(results);
  // When offline, read from local datastore:
  // const localQuery = new Parse.Query('Todo').fromLocalDatastore();
  // const localResults = await localQuery.find();
}

async function unpinAllTodos() {
  await Parse.Object.unpinAll('Todo');
}

Часто задаваемые вопросы

Общие вопросы о шаблоне бэкенда приложения Todo.

Доверие разработчиков по всему миру

Присоединяйтесь к сообществу, создающему будущее приложений

G2 Users Love Us Badge

Готовы создать свое приложение Todo?

Начните свой проект React Native за считанные минуты. Не требуется кредитная карта.