• Stars
    star
    396
  • Rank 103,964 (Top 3 %)
  • Language
    Kotlin
  • License
    Apache License 2.0
  • Created almost 6 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

βœ”οΈ A text and input validation library in Kotlin for Android

New in the EasyValidationΒ  The article on how this library was created is now published. You can read it on this link here. β†’.


Built with ❀︎ by Wajahat Karim and contributors


βœ”οΈ Changelog

Changes exist in the releases tab.

πŸ’» Installation

Add this in app's build.gradle file:

   def ev_version = "1.0.4"
   implementation "com.wajahatkarim:easyvalidation-core:$ev_version"

   // Shows Toasts by default for every validation error
   implementation "com.wajahatkarim:easyvalidation-toast:$ev_version"

πŸ“„ Documentation

Full documentation is available at Gitbook.

⭐️ Features

  • The Validator way validation support. - Details
  • 30+ built-in validation rules like empty, email, credit cards, etc. - Rules List
  • Extension methods for String, EditText, TextView, AutoCompleteTextView, TextInputLayout, and Spinner. - Details
  • Multiple Validations and Checks - Details
  • Collection Extension Methods for validations on multiple texts and views - Details
  • Create your own custom rules - Details

❓ Quick Usage

For example, you can validate any email String like this:

   var myEmailStr = "[email protected]"
   var isValid = myEmailStr.validEmail()  // isValid will be true or false
   
   // Or you can also validate with an error callback method
   myEmailStr.validEmail() {
       // This method will be called when myEmailStr is not a valid email.
       Toast.makeText(contex, it, Toast.LENGTH_SHORT).show()
   }

These extension methods are also available for String, EditText, TextView, AutoCompleteTextView, TextInputLayout, and Spinner.

   var myEditText = findViewById<EditText>(R.id.myEditText)
   var isValid = myEditText.nonEmpty()        // Checks if edit text is empty or not

   // Or with error callback method like this
   myEditText.nonEmpty() {
       // This method will be called when myEditText is empty.
       myEditText.error = it
   }

There are around 30+ built-in rules in the core module library. You can check all these in Rules page. EasyValidation also supports multiple validation checks at same time using Validator class like this:

// This example will check that whether user entered password has
// atleast one number, one spcial character, and one upper case.
var txtPassword = findViewById<EditText>(R.id.txtPassword)
txtPassword.validator()
     .nonEmpty()
     .atleastOneNumber()
     .atleastOneSpecialCharacters()
     .atleastOneUpperCase()
     .addErrorCallback { 
          txtPassword.error = it
          // it will contain the right message. 
          // For example, if edit text is empty, 
          // then 'it' will show "Can't be Empty" message
     }
     .check()

For more advanced usage, checkout the full documentation at GitBook page.

πŸ’° Donations

This project needs you! If you would like to support this project's further development, the creator of this project or the continuous maintenance of this project, feel free to donate. Your donation is highly appreciated (and I love food, coffee and beer). Thank you!

PayPal

  • Donate $5: Thank's for creating this project, here's a tea (or some juice) for you!
  • Donate $10: Wow, I am stunned. Let me take you to the movies!
  • Donate $15: I really appreciate your work, let's grab some lunch!
  • Donate $25: That's some awesome stuff you did right there, dinner is on me!
  • Donate $50: I really really want to support this project, great job!
  • Donate $100: You are the man! This project saved me hours (if not days) of struggle and hard work, simply awesome!
  • Donate $2799: Go buddy, buy Macbook Pro for yourself!

Of course, you can also choose what you want to donate, all donations are awesome!

πŸ‘¨ Developed By

Wajahat Karim

πŸ‘ How to Contribute

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

πŸ“ƒ License

Copyright 2018 Wajahat Karim

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

More Repositories

1

EasyFlipView

πŸ’³ A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc.
Java
1,356
star
2

EasyFlipViewPager

πŸ“– The library for creating book and card flip animations in ViewPager in Android
Java
796
star
3

MediumClap-Android

πŸ‘ The Medium's Clapping Effect developed in Android
Kotlin
501
star
4

Flippable

A Jetpack Compose library for animating a flip transition between the front and back of something, such as a card.
Kotlin
446
star
5

Imagine

An simple image gallery app utilizing Unsplash API to showcase modern Android development architecture (MVVM + Kotlin + Retrofit2 + Hilt + Coroutines + Kotlin Flow + mockK + Espresso + Junit)
Kotlin
363
star
6

Today-I-Learned

πŸ“ Today I Learned - A list of all things I learn on daily basis.
338
star
7

DinoCompose

Chrome's Dino T-Rex game developed in Jetpack Compose
Kotlin
261
star
8

RoomExplorer

πŸ”Ž A quick and easy in-app database viewer and manager library for your Room databases.
Java
223
star
9

LongImageCamera

πŸ“· A camera view to capture long image merged from small captured images as it is in Shoparoo app available on Google Play!!
Java
114
star
10

EasyMoney-Widgets

The widgets (EditText and TextView) for support of money requirements like currency, number formatting, comma formatting etc.
Java
93
star
11

hugo-on-fire

πŸ”₯ A Github Action to build a Hugo site and deploy it on Firebase Hosting.
Dockerfile
60
star
12

FeedbackAnimSample

An attempt to code feedback animation UI inspired from https://site.uplabs.com/posts/web-feedback
Java
57
star
13

Hacktoberfest2019

A repository to contribute to Hacktoberfest 2019
55
star
14

BottomNavArchDemo

The demo project for Bottom Navigation with Navigation Architecture Components article
Kotlin
53
star
15

SideMirror

An Android Studio plugin to mirror your android devices with scrcpy directly from Android Studio.
Java
52
star
16

OCR-Test

An experiment about OCR in Android
Java
47
star
17

ComposeAnimationsDemo

Demo codes for droidcon EMEA 2020 talk about Jetpack Compose and Animations
Kotlin
39
star
18

SplashScreen

A demo project showcasing different methods to create splash screen in Android and discusses the details in the companion Medium article.
Kotlin
39
star
19

ActivityResultsDemo

A demo project to experiment with new Activity Results API in Android
Kotlin
37
star
20

Hacktoberfest2020

An example repository to learn how to contribute to open source for Hacktoberfest 2020
34
star
21

Android-Github-Actions

A sample app with multiple Github Actions for Android CI/CD
Kotlin
30
star
22

ComposeCodelab

An implementation of Compose Codelab and creation of Gmail App UI in Jetpack Compose live coding at 360Andev Conference
Kotlin
26
star
23

DBFlowManager

A quick and easy database manager plugin library for your DBFlow databases.
Java
26
star
24

Petnician

A pet adaption app for #AndroidDevChallenge week 1 made in Jetpack Compose
Kotlin
23
star
25

Movies-App

Kotlin
18
star
26

LottieWorld

A Lottie animations marketplace powered by LottieFiles
Kotlin
18
star
27

User-Online-Demo-Firestore

Managing users' presence like users' online and offline status using Firestore and Cloud Functions. Read more at: https://android.jlelse.eu/fmanaging-user-presence-with-firestore-in-android-a1146bdf101d
Kotlin
18
star
28

ChessGameCPP

A chess game in C++ with multiplayer using console graphics.
C++
13
star
29

SoapRetrofitDemo

A simple demonstration of using SOAP services with Retrofit
Kotlin
12
star
30

BottomNavigationWithActivities

A example project of using BottomNavigation with Activities rather than Fragments.
Java
11
star
31

MVVM-GDG-Live

A demo app for live coding session hosted by GDG Live, Pakistan
Kotlin
11
star
32

StackLayoutManager

A RecyclerView Layout Manager to scroll items with stacking
Kotlin
10
star
33

Quizca-UI-Concept

An attempt to code Quzica UI concept inspired from https://material.uplabs.com/posts/quzica-question-answer-ui-concept
Java
10
star
34

ZocDoc-Clone

A simple UI clone of ZocDoc app
Java
10
star
35

letime

A clock timer app for #AndroidDevChallenge week 2 made in Jetpack Compose
Kotlin
8
star
36

android-ci-cd

A Covid-19 pandemic worldwide stats tracker Android app
Kotlin
8
star
37

ToDoMvvm

Kotlin
5
star
38

ComposePlayground

A playground to learn the Jetpack Compose in Android Kotlin
Kotlin
5
star
39

LinksOfHugo

A code generator app to embed links in Hugo sites in cards like in Medium
Kotlin
5
star
40

DBFlowManager-Hyperion-Plugin

The Hyperion plugin of DBFlowManager for viewing DBFlow databases in the app.
Java
5
star
41

education_flutter

An Education demo app for Flutter Study Jam
Dart
4
star
42

ComposeBooksDemo

A repository for the talk to create a UI in Jetpack Compose
Kotlin
4
star
43

MoviesApp

A simple movies app created using MVP, Kotlin, Data Binding, Dagger, Retrofit.
Kotlin
3
star
44

LottieLoading

An Android library for creating Loading dialogs/bars with Lottie animations
Kotlin
2
star
45

TipCalculator-MVVM-Example

An example created from learning the course
Kotlin
2
star
46

JCenter-Gradle-Scripts

Gradle Scripts for uploading AAR/JARs on jCenter from Android Studio
2
star
47

RoundedBottomDialog

A rounded BottomSheetDialog like as in Google Tasks and Google News app
Java
2
star
48

wajahatkarim3

2
star
49

WhatsApp-FlutterDemo

A demo app to explore flutter by creating a clone of WhatsApp android UI.
Dart
2
star
50

CircleProgressDrawable

An exprimental repository to learn about jcenter and bintray!
Java
2
star
51

CardsInMotion

A MotionLayout and motion editor example in Android
Kotlin
2
star
52

BottomNavigationArchitecture

An example to create bottom navigation with Navigation Architecture components
Kotlin
2
star
53

Snake-Game-With-AI

A snake game in C++ with multiplayer and computer AI snake using console graphics.
C++
2
star
54

GeminiVertexDemo

Gemini Pro API Demo project in Android and Jetpack Compose
Kotlin
2
star
55

netlify-url-shortener2

2
star
56

MVVM-Demo

An example app to learn MVVM with arch components
Kotlin
2
star
57

HelloGitBasics

Some basics exporing for Github
1
star
58

Coroutines-DevFestKHI

A demo project for codelab at DevFest Karachi
1
star
59

GithubActions-Hugo-Test

An experiment to test Hugo site with Github Actions
HCL
1
star
60

Hugo-On-Fire-Demo

πŸ’» A demo example site made in Hugo for the purpose of showing how Hugo-On-Fire Github Action works
HTML
1
star
61

EasyFirebase

An easy to use wrapper around Firebase APIs using Kotlin and DSL features
Kotlin
1
star
62

Huginary

An Android app to upload images on Cloudinary and add in your Hugo sites
Kotlin
1
star