Skip to content

mendess12/book-archive

Repository files navigation

book-archive

Konu

Firebase Authentication ve Firestore database'lerini kullanıp 
kullanıcıların uygulamaya kayıt olarak kitaplığındaki kitapları kayıt etme işlemleri

Hedef

1- Navigation component ile fragment kullanımı
2- Login,register,forgot password ve change password işlemleri için firebase authentication kullanımı
3- Kitap ekleme ve eklenen kitapları listeleme işlemleri için firebase firestore kullanımı
4- Kitap listesindeki item'lara tıklanınca o kitapın detay özelliklerini göstermek için detay ekranına gitme işlemi
5- Kitap listesinde kitabın ismine göre arama yapma işlemi
6- Firebase'de bulunan en çok okunan kitapların listesini kullanıcılara önerme işlemi


Teknolojiler

  • Kullanıcı işlemleri için Firebase Authentication,
  • Database işlemleri için Firebase Firestore,
  • Tasrım widget'larına erişmek için ViewBinding,
  • Veri akışını yönetmek için LiveData, arayüz durumunun yönetimi için UIState,
  • Fragmentlar arası geçiş ve veri göndermek için Jetpack Navigation component,
  • Model olarak MVVM,
  • Repository ve ViewModel bağlantısı için Use Cases,
  • Asenkron işlemler için Coroutine
  • Bağımlılık yönetimi için Dagger - Hilt
  • Veri aktarımı için serializable kullandım.

Dependencies

- Plugin 
  id 'com.google.gms.google-services'
  id 'androidx.navigation.safeargs.kotlin'
  id 'dagger.hilt.android.plugin'
  id 'kotlin-kapt'
 
- build.gradle(:app)
  //firebase bom
  implementation platform('com.google.firebase:firebase-bom:32.0.0')

  //firebase analytics
  implementation 'com.google.firebase:firebase-analytics-ktx'

  //firebase auth
  implementation 'com.google.firebase:firebase-auth-ktx'

  //firebase firestore
  implementation 'com.google.firebase:firebase-firestore-ktx'

  //recyclerview
  implementation("androidx.recyclerview:recyclerview:1.3.0")

  //mvvm
  implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
  implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.1"

  //navigation component
  implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
  implementation("androidx.navigation:navigation-ui-ktx:$nav_version")

  //dagger - hilt
  implementation "com.google.dagger:hilt-android:2.44"
  kapt "com.google.dagger:hilt-compiler:2.44"

  //coroutines
  implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4'

- build.gradle(:project)
  def nav_version = "2.5.3"
  classpath("androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
  classpath 'com.google.gms:google-services:4.3.15'
  classpath 'com.google.dagger:hilt-android-gradle-plugin:2.44'

Kaynaklar


UI Tasarımları

Auth

login register forgot-password change-password

Home

home add-book book-detail search

Suggestion

suggestion