Why Using Kotlin instead of Java?
Kotlin offers a unique advantage over standard Java, especially in the case of Android:
...
- Java and Kotlin can be used in the same project seamless.
- No need to wait for 3rd party libraries to be ported to Kotlin.
...
- Reified Generics
- Lambdas
- Function as first class citizens.
- Advance Collection library.
- Immutability.
...
- Google now has Kotlin specific documentation.
- Google supports Kotlin friendly android extensions.
...
Table of Contents |
---|
How to start
You need Android Studio 3.3.x, or later. You may either start with a new project or an existing project.
...
- Follow the initial setup as described the Android Integration documentation, take especially care of:
- Dependencies
- The handling of native libraries.
- Upgrading pro-guard.
Implement the GreenIDListener interface on your activity, for example:
Code Block language java theme Confluence title GreenIDActivity.kt class GreenIDActivity : AppCompatActity(), GreenIDListener { override fun onGreenIDSuccess(resultCode: Int, verificatationToken: String?, verificationStatus: String?) { // Your business logic here } override fun onGreenIDFailed(resultCode: Int, message: String?, description: String?) { // Handle all failures when (result) { ResultCode.NO_NETWORK -> noNetwork() ResultCode.BACK -> userPressedBack() else -> handleGeneralGreenIDError(resultCode,message) } } }
Note - Override is a required keyword in Kotlin.
- When overriding a function, you do not have specify the access scope:
- Public stays public,
- Protected stays protected!
Write a function to start the GreenID™ SDK:
Code Block language java title GreenActivity.kt // In GreenActivity.kt private fun startGreenID() { val configBundle = Bundle().apply { putString("accountId", "account-id-as-provided") putString("baseUrl", "https://simpleui-uat1.vixverify.com/") // Change this putString("apiCode", "api-code-as-provided") putString("countryCode", "XX") putString("mode", "onboarding") } try { GreenID.getInstance(applicationContext).start(configBundle, this) catch(e: GreenIDConfigException) { // You have to handle this! } }
Start the GreenID™, for example on a button/view click:
Code Block // onCreate: startGreenIdBtn.setOnClickListener { startGreenID() }
Why Using Kotlin instead of Java?
Kotlin offers a unique advantage over standard Java, especially in the case of Android:
- Kotlin is fully interoperable with Java.
- Java and Kotlin can be used in the same project seamless.
- No need to wait for 3rd party libraries to be ported to Kotlin.
- Kotlin offers advanced features which are fully compatible with older Android versions:
- Reified Generics
- Lambdas
- Function as first class citizens.
- Advance Collection library.
- Immutability.
- Kotlin runtime is small (latest is about 900 KB).
- Nullability builtin as a language feature – instead of a constant source of Null Pointer Exceptions.
- It is officially supported by Google, (alongside Java, and C/C++):
- Google now has Kotlin specific documentation.
- Google supports Kotlin friendly android extensions.
- The language design favours developer productivity
- The language is backed by JetBrains, which means Android Studio offers excellent tooling.
Kotlin Resource for Java/Android Developers
...