- Biometric Authentication Presentation : If you want to know more about biometrics and how to use/implement it, you can learn more from this presentation which created by me.
- Following Clean Architecture.
- Modularization.
- Applying SOLID principles, each class has a single job with separation of concerns by making classes independent of each other and communicating with interfaces.
- Using Kotlin-KTS & Gradle Version Catalog to handle project dependencies.
- MaterialDesign : Use material design components in XML Design.
- ViewBinding : Allows to more easily
write code that interacts with views and replaces
findViewById
. - Dagger-Hilt : For dependency injection. Object creation and scoping is handled by Hilt.
- Biometrics : To handle Biometric Authentication.
- Preferences : For Encrypted ShredPreferences.
- Crypto : For Encryption & Decryption.
- Gson : For parsing and serializing objects.
- Sample includes some basic screens to show how to implement biometric login with encryption & decryption for user data:
- Splash Screen : Handles biometric login and decrypt user data if user logged in before with credentials.
- Login Screen : Handles user login business with credentials and encrypt his data.
- Home Screen : Displays current user info, with benefit of logout and clear user data.
- biometricAuthentication : To handle Biometric Authentication.
- crypto : To handle Encryption & Decryption.
- prefs : For managing SharedPreferences.
- Following official kotlin code style
- Here are some useful Gradle commands for executing this example:
./gradlew clean
- Deletes build directory.
- Just fork this repository and contribute back using pull requests.
- Any contributions, large or small, major features, bug fixes, are welcomed and appreciated but will be thoroughly reviewed .
- Support it by clicking the β button on the upper right of this page. βοΈ
If this project help you reduce time to develop, you can give me a cup of coffee :)
Copyright (C) 2024 MINA MIKHAIL PRIVATE LIMITED
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.