Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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 as 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.

How to start

You need Android Studio 3.3.x, or later. You may either start with a new project or an existing project.  

To start with an existing 

  1. Goto Tools|Kotlin|Configure Kotin in Project

  2. You will present with a dialog with two options. Choose "Android with Gradle":
     
  3. Choose the "app" to enable Kotlin integration (choose the latest version corresponding to the plugin on your IDE):

This will add Kotlin Gradle plugin to your project and apply the following plugins to your app project:

build.gradle (app)
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-android'

// omitted... 

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

New Project

  1. Start with the new project wizard on Android studio.
  2. Choose "Kotlin" language:

Typical Integration Steps

  1. Implement the GreenIDListener interface on your activity, for example:

    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)
    		}
    	}
    }
    
    • 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!
  2. Write a function to start the GreenID™ SDK:

    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")         
    	}
    
        GreenID.getInstance(applicationContext).start(configBundle, this)	
    }
  3. Start the GreenID™, for example on a button/view click:

    // onCreate: 
    
    startGreenIdBtn.setOnClickListener { startGreenID() }

Kotlin Resource for Java/Android Developers

ResourceURL
Web console to try out Kotlin within your browser.https://play.kotlinlang.org
Official Kotlin Referencehttps://kotlinlang.org/docs/reference/
Official Android Kotlin Documentation https://developer.android.com/kotlin/
Cheat Sheethttps://blog.kotlin-academy.com/kotlin-cheat-sheet-1137588c75a




  • No labels