← Назад к вопросам
Реализовать приложение с формой регистрации DNS-стажёра
1.8 Middle🔥 41 комментариев
#Flutter виджеты#State Management#Работа с сетью
Условие
Создайте приложение для регистрации стажёра с отправкой данных на сервер.
Требования
- Экран с формой ввода личных данных:
- Фамилия, Имя, Отчество
- Email (валидация формата)
- Телефон (маска ввода)
- Кнопка "Отправить заявку"
- Отправка данных на API (POST запрос)
- Отображение статуса отправки (loading, success, error)
- Валидация всех полей перед отправкой
Дополнительные баллы
- Сохранение черновика формы
- Маска ввода для телефона
- Экран успешной регистрации
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Flutter регистрация DNS-стажёра
Полное решение с валидацией формы, маской ввода и API интеграцией.
Компоненты
- Registration Form - форма с полями
- Input Masks - маски для телефона
- Validation - валидация всех полей
- API Service - отправка данных на сервер
- State Management - управление состоянием
- Draft Storage - сохранение черновиков
Поля формы
- Фамилия (lastName) - текст, обязательное
- Имя (firstName) - текст, обязательное
- Отчество (middleName) - текст, опциональное
- Email - валидация формата email
- Телефон - маска +7 (XXX) XXX-XX-XX
- Согласие - чекбокс с согласием на обработку данных
Валидация
- Фамилия - минимум 2 символа, только буквы
- Имя - минимум 2 символа, только буквы
- Email - корректный формат email
- Телефон - 11 цифр, начинается на 7
- Согласие - обязательно отмечено
Функциональность
- Валидация в реальном времени - ошибки под полями
- Маска телефона - автоматическое форматирование
- Отправка API - POST запрос на сервер
- Loading состояние - индикатор загрузки
- Success экран - показ после успешной регистрации
- Error handling - обработка ошибок
- Черновики - сохранение данных формы
- Восстановление - загрузка черновика
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 решение для регистрации!