Самый простой вариант формы регистрации в Android на Kotlin — Jetpack Compose: два поля, состояние, проверка ввода и кнопка. Сначала сделайте локальную форму, а уже потом подключайте сервер, Firebase или свою API
Минимальный пример:
@Composable
fun RegisterForm() {
var email by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
var error by remember { mutableStateOf<String?>(null) }
Column(modifier = Modifier.padding(16.dp)) {
TextField(
value = email,
onValueChange = { email = it },
label = { Text("Email") }
)
TextField(
value = password,
onValueChange = { password = it },
label = { Text("Пароль") },
visualTransformation = PasswordVisualTransformation()
)
Button(onClick = {
error = validate(email, password)
}) {
Text("Зарегистрироваться")
}
error?.let {
Text(text = it, color = Color.Red)
}
}
}
Простая проверка формы
fun validate(email: String, password: String): String? {
if (!email.contains("@")) return "Введите корректный email"
if (password.length < 6) return "Пароль должен быть не короче 6 символов"
return null
}
Это не полноценная безопасность, а первая пользовательская проверка. Настоящая регистрация должна дополнительно проверяться на сервере
Что происходит в коде
email и password хранят состояние полей. Когда пользователь печатает, onValueChange обновляет состояние. При нажатии кнопки вызывается validate, и ошибка показывается под формой
PasswordVisualTransformation скрывает пароль на экране. Это не шифрование, а только визуальное скрытие символов
Как проверить
- Откройте экран с формой.
- Нажмите кнопку с пустыми полями.
- Введите email без
@. - Введите короткий пароль.
- Введите корректные данные и убедитесь, что ошибка исчезает.
После этого можно подключать ViewModel и отправку данных
Что добавить дальше
В следующем шаге вынесите состояние в ViewModel:
email;password;isLoading;errorMessage;- событие
onRegisterClick.
Так UI будет только рисовать форму, а логика регистрации уйдет в отдельный слой
Что отправлять на сервер
После локальной проверки обычно отправляют email и пароль в API:
data class RegisterRequest(
val email: String,
val password: String
)
Не отправляйте лишние данные, если они не нужны для регистрации. Имя, телефон, аватар и согласия лучше добавлять осознанно, а не превращать первую форму в анкету на десять экранов
Частые ошибки
Отправлять пароль без HTTPS
Регистрация должна идти только через защищенное соединение
Проверять только на клиенте
Клиентская проверка нужна для удобства, но сервер все равно обязан проверять данные заново
Хранить пароль в логах
Не выводите пароль через Log.d, даже во время отладки
Что почитать дальше по Kotlin
Если нужен общий маршрут по теме, откройте рубрику Kotlin. Для соседних задач пригодятся эти разборы:
- Как сделать анимацию в Kotlin: простой пример для Android Compose
- Как сделать тетрис в Android Studio на Kotlin
- Kotlin Android: первый экран без перегруза
- UUID Android-устройства в Kotlin ViewModel: как получить безопасно



