Android Form Validators
Android Form Validators
概要
Android Form ValidatorsはAndroidアプリケーション専用のリアルタイムフォームバリデーションライブラリです。Material Designに準拠したエラー表示とシームレスに統合され、ユーザーフレンドリーなフォーム入力体験を提供します。EditTextを拡張し、組み込みのバリデーターと簡単なカスタマイズオプションを提供します。
特徴
- リアルタイムバリデーション: 入力中の即座なフィードバック
- 組み込みバリデーター: メール、電話番号、パスワード強度など
- Material Design統合: エラー表示の自動スタイリング
- カスタムバリデーター: 簡単に独自のルールを追加
- 多言語対応: 各種言語のエラーメッセージ
- 軽量: 最小限の依存関係
使用例
基本的な使用方法
<!-- レイアウトXML -->
<com.andreabaccega.widget.FormEditText
android:id="@+id/emailEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
app:testType="email"
app:emptyErrorString="メールアドレスを入力してください"
app:testErrorString="有効なメールアドレスを入力してください" />
Kotlinでのバリデーション
class RegistrationActivity : AppCompatActivity() {
private lateinit var emailField: FormEditText
private lateinit var passwordField: FormEditText
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_registration)
emailField = findViewById(R.id.emailEditText)
passwordField = findViewById(R.id.passwordEditText)
// カスタムバリデーターの追加
passwordField.addValidator(CustomPasswordValidator())
// フォーム送信時のバリデーション
submitButton.setOnClickListener {
if (validateForm()) {
// フォーム送信処理
submitRegistration()
}
}
}
private fun validateForm(): Boolean {
return emailField.testValidity() && passwordField.testValidity()
}
}
// カスタムバリデーターの実装
class CustomPasswordValidator : Validator {
override fun isValid(text: String): Boolean {
return text.length >= 8 &&
text.any { it.isUpperCase() } &&
text.any { it.isDigit() }
}
override fun getErrorMessage(): String {
return "パスワードは8文字以上で、大文字と数字を含む必要があります"
}
}
複数フィールドの連携
class FormValidator(private val context: Context) {
fun setupPasswordConfirmation(
passwordField: FormEditText,
confirmField: FormEditText
) {
confirmField.addValidator(object : Validator {
override fun isValid(text: String): Boolean {
return text == passwordField.text.toString()
}
override fun getErrorMessage(): String {
return context.getString(R.string.password_mismatch)
}
})
// パスワード変更時に確認フィールドも再検証
passwordField.doAfterTextChanged {
if (confirmField.text.isNotEmpty()) {
confirmField.testValidity()
}
}
}
}
比較・代替手段
類似ライブラリとの比較
- Konform: より汎用的だが、UI統合は手動
- Android Saripaar: 強力だが、学習曲線が高い
- RxValidator: リアクティブプログラミング向け
Android Form Validatorsを選ぶべき場合
- シンプルなフォームバリデーションが必要
- Material Designとの統合を重視
- 学習曲線の低さを優先
- リアルタイムフィードバックが必要
学習リソース
まとめ
Android Form ValidatorsはAndroidアプリケーションのフォームバリデーションを簡単にする優れたライブラリです。Material Designとの深い統合、リアルタイムバリデーション、豊富な組み込みバリデーターにより、開発者は最小限のコードで高品質なユーザー体験を提供できます。