← Назад к вопросам

Реализовать приложение с формой регистрации DNS-стажёра

1.8 Middle🔥 41 комментариев
#Flutter виджеты#State Management#Работа с сетью

Условие

Создайте приложение для регистрации стажёра с отправкой данных на сервер.

Требования

  1. Экран с формой ввода личных данных:
    • Фамилия, Имя, Отчество
    • Email (валидация формата)
    • Телефон (маска ввода)
  2. Кнопка "Отправить заявку"
  3. Отправка данных на API (POST запрос)
  4. Отображение статуса отправки (loading, success, error)
  5. Валидация всех полей перед отправкой

Дополнительные баллы

  • Сохранение черновика формы
  • Маска ввода для телефона
  • Экран успешной регистрации

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Flutter регистрация DNS-стажёра

Полное решение с валидацией формы, маской ввода и API интеграцией.

Компоненты

  1. Registration Form - форма с полями
  2. Input Masks - маски для телефона
  3. Validation - валидация всех полей
  4. API Service - отправка данных на сервер
  5. State Management - управление состоянием
  6. Draft Storage - сохранение черновиков

Поля формы

  1. Фамилия (lastName) - текст, обязательное
  2. Имя (firstName) - текст, обязательное
  3. Отчество (middleName) - текст, опциональное
  4. Email - валидация формата email
  5. Телефон - маска +7 (XXX) XXX-XX-XX
  6. Согласие - чекбокс с согласием на обработку данных

Валидация

  1. Фамилия - минимум 2 символа, только буквы
  2. Имя - минимум 2 символа, только буквы
  3. Email - корректный формат email
  4. Телефон - 11 цифр, начинается на 7
  5. Согласие - обязательно отмечено

Функциональность

  1. Валидация в реальном времени - ошибки под полями
  2. Маска телефона - автоматическое форматирование
  3. Отправка API - POST запрос на сервер
  4. Loading состояние - индикатор загрузки
  5. Success экран - показ после успешной регистрации
  6. Error handling - обработка ошибок
  7. Черновики - сохранение данных формы
  8. Восстановление - загрузка черновика

API Endpoint

POST /api/v1/interns/register

Привет данных:

{
  "lastName": "Иванов",
  "firstName": "Иван",
  "middleName": "Иванович",
  "email": "ivan@example.com",
  "phone": "+79999999999"
}

Ответ при успехе:

{
  "success": true,
  "message": "Заявка принята",
  "internId": "123456"
}

Маска ввода

  • Телефон: +7 (XXX) XXX-XX-XX
  • Автоматическое добавление символов
  • Удаление при удалении текста

Сохранение черновика

  • SharedPreferences для хранения
  • Автосохранение при вводе
  • Восстановление при открытии формы
  • Очистка после отправки

Success Screen

  • Иконка галочки
  • Сообщение о успехе
  • ID стажёра
  • Кнопки: Отправить по email, На главную

Error Handling

  • Валидация перед отправкой
  • Обработка сетевых ошибок
  • Сообщение об ошибках
  • Возможность повторной попытки

Это production-ready решение для регистрации!