Um chat simples utlizando as tecnologias do Firebase, como Firebase Authentication, Firebase Realtime Database, Firebase Cloud Messaging e Firebase Functions.
Arquitetura
Um aplicativo sem uma arquitetura é apenas mais um aplicativo. Uma arquitetura não apenas deixa o projeto mais profissional, como também o torna mais legível por outros desenvolvedores e facilita a manutenção. Por isso o NeoChat dois padrões de projeto muito populares, a Arquitetura MVP (Model View Presenter) e Navigation Component Architecture.
MVP
O projeto utiliza a Arquitetura MVP (Model View Presenter) que visa uma melhor separação de responsabilidades, visualização e regra de negócio, utlizando interfaces para comunicação entre elas.
Single Activity
Seguindo as recomendações da Google, o projeto é Single Activity, possuindo apenas uma Atividade que gerencia as telas através de Fragments, usando Navigation Component Architecture e Safe Args para navegação entre elas.
Linguagens
A aplicação é 100% desenvolvida em Kotlin, enquanto o back-end do Functions usa JavaScript com Node.js 12
InicioPresenterImpl () : InicioPresenter
override fun requireLogin() {
inicioView.setVisibilityProgressBar(
View.INVISIBLE
)
val providers = arrayListOf(
AuthUI.IdpConfig.GoogleBuilder().build(),
AuthUI.IdpConfig.EmailBuilder().build(),
AuthUI.IdpConfig.PhoneBuilder().build()
)
inicioView.requireLogin(providers)
}
InicioFragment() : InicioView
override fun requireLogin(
providers: List<AuthUI.IdpConfig>
) {
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(providers)
.setLogo(R.mipmap.ic_launcher)
.build(),
requestCodeLogin
)
}
Download
Fork ou clone e contribua com o projeto em Projeto NeoChat
Baixe o projeto ou instale o apk em Releases