Android Kotlin + Module Library

Diego Salviano de Souza
3 min readAug 11, 2020

--

Opa galera hoje vamos seguir como criar uma module library com android, além de criar vamos chamar essa lib e sua view para demonstrar a utilização bora lá ?

Primeiro de tudo vamos criar a nossa library chamada auth, é apenas uma sugestão, você pode criar com qualquer nome blz?

Vamos em File -> New -> New Module e vamos escolher a opção Android Library.

E aqui colocamos o nome de nossa library e finish.

Como podemos perceber ele já terminou o build e adicionou nossa lib ao projeto.

Vamos agora importar nossa lib ao build.gradle de nosso app, em dependencies adicione a linha com o nome do seu module no meu caso foi auth o nome escolhido.

implementation project(":auth")dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.3.1'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

// Navigation
implementation "android.arch.navigation:navigation-fragment:$navigation_version"
implementation "android.arch.navigation:navigation-ui:$navigation_version"
implementation "android.arch.navigation:navigation-fragment-ktx:$navigation_version"
implementation "android.arch.navigation:navigation-ui-ktx:$navigation_version"
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'

implementation project(":auth")

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

}

Como estou usando o projeto do post anterior ai já temos algumas dependências do navigation então eu já adicionei ai a nossa dependência do nosso modulo auth.

Caso queira dá uma olhada no post anterior aqui segue o link.

Bom feito isso já temos um module criado e importado para o nosso app poder utilizar, vamos agora criar uma activity para nosso modulo de login apenas para demonstrar que ao chamar ele vamos conseguir mudar o modulo.

Depois de ter criado a nossa activity ela já vai poder ser vista em nosso app e podemos chamar com o Intent.

Agora vamos em nossa app e vamos criar um SplashActivity que vai ser responsável por chamar o nosso modulo de auth.

Nossa SplashActivity.kt ficou assim.

import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.auth.MainActivity
import kotlin.concurrent.thread

class SplashActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash)

changeActivity()
}

private fun changeActivity() {
thread {
Thread.sleep(2000)
val intent = Intent(this, MainActivity::class.java).apply {
}
startActivity(intent)
}
}
}

Adicionei uma Thread.sleep(2000) para simular um tempo de espera para exibir o loading e depois efetuar a mudança da nossa app para o modulo auth.

Com isso conseguimos concluir o nosso objetivo final de poder utilizar um module library e chamar ele em nosso app.

Agora temos o nosso projeto desacoplado do auth, nos próximos post vou seguir com esse projeto implementando o nosso module com o retrofit efetuando uma autenticação de verdade, caso autenticação seja sucesso podemos liberar o acesso e mandar o usuário de volta para nossa app.

Valeu galera espero que tenha gostado e espero ter ajudado até o próximo.

--

--