Android Kotlin + Module Library
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.