Validate: bu nədir, giriş sahələrinin validasiyası və Android-də tətbiqi

Müəllif: IT Sectr Dərc olunub: 2026-07-08 Oxuma vaxtı: 5 dəq

Validate — istifadəçi məlumatlarının serverə göndərilmədən və ya tətbiq daxilində işlənmədən əvvəl düzgünlüyünün yoxlanılması prosesidir. Android-də sahə validasiyası email formatı, telefon nömrəsi, şifrə, doldurulma məcburiliyi və digər biznes qaydalarının yoxlanılmasını əhatə edir. Material Design Guidelines, 2026-ya əsasən, Validate istifadəçiyə anlaşılan geribildirim təmin etməlidir: xəta mesajı, sahə rənginin dəyişməsi, status ikonu. Düzgün validasiya formanın səhv göndərilmə sayını 40-60% azaldır və istifadəçi təcrübəsini yaxşılaşdırır.

Əsas məqamlar

  • Validate — daxil edilmiş məlumatların tələblərə uyğunluğunun yoxlanılması prosesi: format, uzunluq, məcburilik.
  • Sahə validasiyası bir giriş sahəsi üçün yerinə yetirilir — email, telefon, şifrə, ad.
  • Ani validasiya TextWatcher vasitəsilə səhv simvol daxil edildikdən dərhal sonra xətanı göstərir.
  • Göndərmə zamanı validasiya formanın bütün sahələrini eyni anda yoxlayır və bütün xətaları bir dəfəyə göstərir.
  • Yoxlama nümunələri: müntəzəm ifadələr, Android-in daxili sinifləri (Patterns.EMAIL_ADDRESS), xüsusi alətlər.

Android-də sahə validasiyası nədir?

Sahə validasiyası — istifadəçi tərəfindən daxil edilmiş bir konkret dəyərin müəyyən edilmiş qaydalara uyğunluğunun yoxlanılmasıdır. Hər sahənin öz məlumat növü var: email, rəqəm, telefon, şifrə, mətn. Hər növ üçün öz meyarlar mövcuddur: format, uzunluq, dəyər diapazonu, məcburilik. Sahə validasiyası suala cavab verir: bu sahədəki daxiletmə düzgündürmü?

Sahə validasiyasının forma validasiyasından fərqi ondadır ki, sahə digər sahələrdən asılı olmayaraq yoxlanılır. Email email şablonuna görə, telefon isə telefon şablonuna görə yoxlanılır. Sahə etibarsızdırsa, istifadəçi xətanı məhz bu sahə üçün görür. Bir sahə yoxlamadan keçməsə belə, formanın göndərilməməsi mümkündür. Sahə validasiyası tam forma validasiyası üçün tikinti blokudur.

UX tədqiqatlarına görə, istifadəçilər validasiya xətasını daxiletmə bitdikdən sonra 1-2 saniyədən gec olmayaraq görməyi gözləyirlər. 3 saniyədən çox gecikmə tətbiq ilə bağlı problem kimi qəbul edilir. Məhz buna görə TextWatcher vasitəsilə real vaxt rejimində validasiya yalnız göndərmə düyməsinə basıldıqda yoxlamadan üstündür.

Sahə validasiyasının əsas metodları

Android-də sahə validasiyası üçün üç əsas yanaşma mövcuddur. Birinci — şərti operatorlar (if, when) vasitəsilə əl ilə yoxlama. Tərtibatçı sətir qəbul edən və Boolean və ya xəta mesajı qaytaran funksiya yazır. Bu yanaşma məntiq üzərində tam nəzarət verir, lakin hər sahə və hər şərt üçün kod yazmağı tələb edir.

İkinci yanaşma — Android-in daxili siniflərindən istifadə. Məsələn, Patterns.EMAIL_ADDRESS.matcher(email).matches() email-i standart şablona uyğun yoxlayır. Patterns.PHONE.matcher(phone).matches() — telefon nömrəsini. TextUtils.isEmpty() — boşluğu yoxlayır. Bu metodlar xarici asılılıqları birləşdirmədən əsas ssenariləri əhatə edir.

Üçüncü yanaşma — validasiya kitabxanaları. InputValidator, AndroidValidator və ya Commons Validator kimi kitabxanalar hazır annotasiyalar və yoxlama zəncirləri təmin edir. Tərtibatçı qaydaları deklarativ şəkildə təsvir edir: @Email, @NotEmpty, @MinLength(6). Kitabxana özü yoxlamanı yerinə yetirir və xətaların siyahısını qaytarır. Bu inkişafı sürətləndirir, lakin asılılıq əlavə edir.

MetodÜstünlüklərÇatışmazlıqlarNə zaman istifadə edilməli
Əl ilə yoxlamaTam nəzarət, asılılıqsızÇox kod, dəstək çətinliyi1-3 sahəli sadə formalar
Daxili siniflərSürətli, standart şablonlarMəhdud yoxlama dəstiStandart sahələr (email, phone)
KitabxanalarMinimum kod, deklarativ yanaşmaAsılılıq, fərdiləşdirmə çətinliyi5+ sahəli mürəkkəb formalar

Email, telefon və şifrə validasiyası

Email üçün standart yoxlama @ simvolunun, domen hissəsinin mövcudluğunu, boşluqların və kirillikanın olmamasını əhatə edir. Android əksər qanuni email ünvanlarını əhatə edən Patterns.EMAIL_ADDRESS təqdim edir. Əgər xüsusi yoxlama tələb olunursa (məsələn, yalnız korporativ domenlər), xüsusi müntəzəm ifadə yazılmalıdır. Email daxiletmə bitdikdən sonra validasiya edilir, hər simvoldan sonra yox.

Telefon nömrəsi ölkə və ya region maskasına görə yoxlanılır. Beynəlxalq nömrələr üçün E.164 formatı istifadə olunur: +ölkə kodu, operator kodu, nömrə. Google-dan libphonenumber kitabxanası telefon validasiyası üçün sənaye standartıdır. Kod üzrə ölkəni müəyyənləşdirir, nömrənin uzunluğunu və formatını yoxlayır. Android-də əsas yoxlama üçün PhoneNumberUtils.isGlobalPhoneNumber istifadə edilə bilər.

Şifrə bir neçə mürəkkəblik meyarına malikdir: minimal uzunluq, böyük və kiçik hərflərin, rəqəmlərin, xüsusi simvolların olması. Android-də şifrə yoxlaması üçün daxili sinif yoxdur — hər layihə öz tələblərini müəyyən edir. Adətən şifrə müntəzəm ifadə və ya şərtlər dəsti vasitəsilə yoxlanılır. Xəta mesajında dəqiq tələbləri açıqlamamaq vacibdir: „Şifrə çox sadədir" „Böyük hərf və rəqəm tələb olunur"-dan yaxşıdır.

kotlin
data class ValidationResult(
    val isValid: Boolean,
    val errorMessage: String? = null
)

fun validatePassword(password: String): ValidationResult {
    if (password.length < 6)
        return ValidationResult(false, "Minimum 6 characters")
    if (!password.any { it.isUpperCase() })
        return ValidationResult(false, "Uppercase letter required")
    return ValidationResult(true)
}

Nümunədə validatePassword isValid sahəsi və isteğe bağlı xəta mesajı ilə ValidationResult qaytarır. Bu yanaşma kompozisiya üçün əlverişlidir: bir neçə yoxlama ardıcıl yerinə yetirilir və tapılan ilk xəta qaytarılır. Email və telefon validasiyaları eyni prinsiplə qurulur — hər biri mesaj və ya uğurla nəticə qaytarır.

Validasiya nə zaman yerinə yetirilməlidir?

Validasiya anı UX-ə kritik təsir göstərir. Üç strategiya mövcuddur: hər simvoldan sonra validasiya (instant), fokus itkisindən sonra (onFocusLost) və formanın göndərilməsi zamanı (onSubmit). Hər strategiya müxtəlif ssenarilər üçün uyğundur. Instant-validasiya sərt məhdudiyyətləri olan sahələr üçün yaxşıdır — telefon nömrəsi, PIN-kod. OnFocusLost — email və ad üçün. OnSubmit — məcburi sahələr üçün.

Material Design Guidelines-a görə, strategiyaları birləşdirmək tövsiyə olunur: sahə fokus itkisində, həmçinin formanın göndərilməsi zamanı yoxlanılmalıdır. Instant-validasiya məhdudiyyət aydın olduqda uyğundur — məsələn, sahənin maksimal uzunluğu. Email üçün hər simvoldan sonra xəta göstərilərsə, istifadəçi daxiletməni hələ bitirmədən mesaj görəcək. Bu qıcıqlandırır və konversiyanı azaldır.

İlk xəta qaydası: formanı göndərərkən xətanı yalnız ilk etibarsız sahə üçün göstərin. İstifadəçini 10 xətadan ibarət siyahı ilə yükləməyin. İlk xəta düzəldildikdən sonra növbətisi göstərilə bilər. Bu addım-addım təlimat idrak yükünü azaldır və istifadəçiyə formanı daha tez doldurmağa kömək edir.

Validasiya üçün alətlər və kitabxanalar

Android SDK Validate üçün əsas alətlər təqdim edir: email və telefon üçün Patterns, boşluğu yoxlamaq üçün TextUtils, ixtiyari nümunələr üçün müntəzəm ifadələr. 1-3 sahəli layihələr üçün bu kifayətdir. Lakin 10+ sahəli formalarda əl ilə validasiya çətin dəstəklənir — hər yeni sahə ayrıca funksiya və göndərmə məntiqinin yenilənməsini tələb edir.

Populyar validasiya kitabxanaları: Android Saripaar (@Email, @NotEmpty, @Password annotasiyaları), Apache-dən Commons Validator (email, URL, kredit kartı nömrəsinin yoxlanılması), reaktiv validasiya üçün RxBinding + RxJava. Saripaar annotasiyaları birbaşa giriş sahələrinə yerləşdirməyə və validasiyanı bir sətirlə çağırmağa imkan verir: validator.validate(). Kitabxana səhvləri setError vasitəsilə avtomatik göstərir.

Google Material Design Components-i TextInputLayout ilə istifadə etməyi tövsiyə edir. setError, setHelperText və setCounterEnabled vasitəsilə daxili validasiya xarici kitabxanalar olmadan əsas ssenariləri əhatə edir. Mürəkkəb layihələr (fintech, tibb) üçün kombinasiyadan istifadə etmək daha yaxşıdır: Material Components + Clean Architecture-in domain qatından nümunələrlə xüsusi validasiya.

Sahə validasiyasında səhvlər

Birinci səhv — daxiletmə başlamamış xəta göstərmək. Sahə məcburidirsə, lakin istifadəçi hələ doldurmağa başlamayıbsa, „Sahə məcburidir" göstərməyin. Bu, yalançı problem hissi yaradır. Xəta yalnız istifadəçi sahə ilə qarşılıqlı əlaqədə olduqdan sonra görünməlidir: daxil etməyə başladıqda, sahədən çıxdıqda, formanı göndərməyə cəhd etdikdə.

İkinci səhv — anlaşılmaz xəta mesajı. Mesaj konkret olmalı və problemin necə düzəldiləcəyini izah etməlidir. „Yanlış email" — pis. „Email @ və domen ehtiva etməlidir, məsələn user@example.com" — yaxşı. İstifadəçi nəyin səhv olduğunu və bunu necə düzəltməyi sənədlərə müraciət etmədən başa düşməlidir.

Üçüncü səhv — izahsız göndərməni bloklamaq. Göndərmə düyməsi validasiya xətaları səbəbindən aktiv deyilsə, istifadəçi hansı sahələrin etibarsız olduğunu görməlidir. Mesajsız boz düymə istifadəçi üçün çıxılmaz vəziyyətdir. Həmişə xətalı sahələri vurğulayın və hər etibarsız sahənin yanında xəta mətnini göstərin.

SəhvProblemHəll
Daxiletmədən əvvəl xətaİstifadəçini qorxudurYalnız qarşılıqlı əlaqədən sonra yoxlayın
Qeyri-müəyyən mesajİstifadəçi səbəbi anlamırKonkret təsvir + nümunə
Boz düyməGeri bildirim yoxdurXətaları vurğulayın + mesaj
Həddindən artıq validasiyaÇox sərt qaydalarTəhlükəsizlik və UX balansı

Tez-tez verilən suallar

Sahə validasiyasını nə vaxt yerinə yetirmək daha yaxşıdır?

Optimal an — sahənin fokus itkisi (onFocusLost) və formanın göndərilməsi zamanı. Hər simvoldan sonra ani validasiya yalnız sərt məhdudiyyətləri olan sahələr üçün uyğundur: uzunluq, rəqəmlər, xüsusi simvollar. Email və şifrə üçün istifadəçinin daxiletməni bitirməsini gözləmək və sahədən çıxdıqdan sonra yoxlamaq daha yaxşıdır.

Android-də email-i necə validasiya etmək olar?

Android SDK-dan Patterns.EMAIL_ADDRESS istifadə edin. Matcher(daxilEdilənEmail).matches() çağırın — metod email düzgündürsə true qaytarır. Əlavə yoxlama (müvəqqəti domenlərin bloklanması, MX qeydinin yoxlanılması) üçün server validasiyası tələb olunur. Müştəri tərəfində formatı daxili nümunə vasitəsilə yoxlamaq kifayətdir.

Forma 10+ sahədən ibarətdirsə nə etməli?

Sahələrdə annotasiyaları olan Saripaar kimi validasiya kitabxanasından istifadə edin. Bu validasiya kodunu 3-5 dəfə qısaldacaq. Layihə Clean Architecture istifadə edirsə, validasiya məntiqini domain qatına çıxarın və UI-dan ayrı test edin. Xətaları göstərmək üçün setError ilə TextInputLayout istifadə edin.

Sahəni serverdə validasiya etmək lazımdırmı?

Mütləq. Müştəri validasiyası — UX üçün, server validasiyası — təhlükəsizlik üçündür. Təcavüzkar tətbiqə məhəl qoymadan birbaşa API-yə sorğu göndərə bilər. Server bütün sahələri yenidən yoxlamalıdır. Müştəri validasiyası serveri əvəz etmir, istifadəçi rahatlığı üçün onu tamamlayır.

Validasiya xətasını istifadəçiyə necə göstərmək olar?

Material Design Components-dən TextInputLayout.setError() istifadə edin. Metod sahənin altında qırmızı mesaj göstərir və çərçivənin rəngini dəyişir. Alternativ: sahənin yanında xəta üçün ayrıca TextView. Fərdi sahələrin validasiya xətaları üçün Toast və ya Snackbar istifadə etməyin — istifadəçi mesajı konkret sahə ilə əlaqələndirməyəcək.

Nəticə

  • Validate — məlumat göndərilməzdən əvvəl bir sahənin format, uzunluq və məcburilik baxımından yoxlanılması.
  • Üç yanaşma validasiya üçün: əl ilə yoxlama, Android-in daxili sinifləri, üçüncü tərəf kitabxanaları.
  • Validasiya anı UX-ə təsir edir: ən yaxşı balans — fokus itkisində və formanın göndərilməsi zamanı yoxlama.
  • Email və telefon Patterns.EMAIL_ADDRESS və PhoneNumberUtils vasitəsilə yoxlanılır.
  • Şifrə xüsusi yoxlama tələb edir — minimal uzunluq, böyük hərflər, rəqəmlər.
  • Xəta mesajı konkret olmalı və düzəliş üsulunu göstərməlidir.
  • Server validasiyası məcburidir — müştəri validasiyası yalnız UX üçündür, təhlükəsizlik üçün deyil.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun