Projemizde verilerimizi internette saklayacağız. Ben bu iş için Firebase kullanmayı tercih ediyorum. Android projeye entegre etmesi daha kolay oluyor. İlk önce internet tarayıcımızdan Firebase sitesini açıyoruz. Yukarıdan konsola git seçeneğini seçiyoruz. Proje ekleye tıklayıp proje ismi giriyoruz. Uygulamamızın adı ile aynı olmak zorunda değil istediğiniz ismi verebilirisiniz. Aşağıdan kullanım koşullarını kabul etmenize gerek yok isterseniz kabul edebilirsiniz. Kabul etmediğinizde nelerden vazgeçtiğiniz ekranda yazıyor. En üstteki kutucuktaki onayı kaldırıp devam tuşuna basabilirsiniz. Açılan sayfada hangi özellikleri istediğiniz sizlere sunuluyor. Herhangi birini seçebilirsiniz veya hiçbirini de seçmeyebilirsiniz. Tamamen size kalmış. Ben hiçbirini seçmedim. Proje oluştur diyerek projemizi oluşturalım. Eğer ilk başta kullanım koşullarını kabul etti iseniz diğer sayfa sizin için açılmıyor ve proje oluştur seçeneği ile projenizi oluşturabiliyorsunuz. Karşımıza çıkan sayfanın üst tarafında Firebase projesini bir projeye bağlamamız için gerekli seçenekler gösteriliyor.

Yan tarafta Geliştirme bölümünün altında çeşitli Firebase özellikleri görülüyor. Şu an için bunlara kısaca değineceğim daha sonraki yazılarda bu özelliklere detaylı olarak değineceğim. Authentication işlemi projemizde bir login sistemi kurmanıza olanak sağlıyor. Projemizde bir login sistemine ihtiyacımız yok ama buna başka bir projede değineceğim. Database kısmı adı üstünce bir veritabanı sistemidir. Proje için gerekli verileri internette bir veritabanında saklamamıza olanak sağlar. Realtime database ve cloud firestone olarak iki tane seçeneğe sahibiz. Ben realtime database kullanarak projemizi yapacağız. Cloud firestone daha önce kullanmadım. Bazı daha iyi yönleri olduğunu biliyorum fakat bunların tam olarak ne olduğunu bilmiyorum. İlerde cloud firestone’u kullanmayı öğrenip bunu da başka bir projede anlatacağım. Storage kısmı resim, video gibi büyük dosyaları saklamamıza olanak sağlayan bir özelliktir. Programımıza bu bölüme ihtiyacımız yok ama başka bir projede bu kısmı da anlatacağım. Functions kısmı herhangi bir özellikte bir olay meydana geldiğinde başka bir olayı tetiklememize olanak sağlar. Mesela veritabanına yeni bir değer girildiği zaman uygulamayı kullanan diğer kişilere bildirim göndermemize olanak sağlar. Sistemin izin verdiği kadar istediğiniz işlemi yaptırabilirsiniz. Hosting ve ML Kit kısımlarına bu projede veya başka bir projede değinmeyeceğim. Ama kısaca bahsetmek gerekirse hosting kısmı projede kullanmanız için bir hosting özelliğidir. Mesela bir veritabanını hem Android uygulamanızda hemde internet sitenizde kullanmanızı saplar. Veritabanına gireceğiniz tek değeri her iki tarafta da kullanabilirsiniz. Bunun için 2 farklı veritabanı oluşturmanıza gerek olmaz. ML Kit kısmı ile makine öğrenmesi yardımı ile çeşitli işlemler yapabilirsiniz. Mesela resim üzerindeki yazıların tanınması ve ayrıştırılması gibi.
Kalite bölümünün altında Crashlytics, Performance ve Test Lab kısımları bulunur. Crashlytics özelliği ile uygulamanız kullanım esnasında herhangi bir hata verdiği zaman detaylı bir şekilde geri bildirim alabilirsiniz. Bu geri bildirim de hata alınan cihazı, Android sürümünü, ülkeyi, zamanı ve kod satırını öğrenebilirsiniz. Performance bölümünde cihazdaki activitelerin ne kadar sürede yüklendiğini görüntüleyebilirsiniz. Uygulamanız internetten veri çekerken ne kadar başarılı oluyor ve ne kadar sürüyor bunu görüntüleyebilirsiniz. Test Lab bölümünü ben projede kullanmadım fakat değinmek gerekirse seçeceğiniz farklı cihazlarda ve farklı Android sürümlerinde uygulamanızı denemenize olanak sağlar.
Yukarıda saydığım özelliklere ek olarak Firebase daha bir çok özelliğe sahiptir. Ben daha önce kullanmadım. Herhangi bir bilgi sahibi değilim. İnternette iyi bir araştırma ile detaylı bir şekilde öğrenebilirsiniz. Ayrıca her bir özelliğe gidip oradaki bağlantılar ile detaylı bilgiler öğrenebilirsiniz. Firebase’in çeşitli planları vardır. Bu planlarda Firebase özelliklerinin kullanım limitleri değişir. Şuan Spark planında bulunuyoruz. Ücretsiz bir plandır. Eğer uygulamanız bu planın limitlerini aşar ise başka bir plana geçebilirsiniz. Resimler benim diğer projemdendir. Nasıl olduğunu göstermek için koydum.
Firebase tanıdıktan sonra projemize devam edelim. Kenardan en yukarıdan project overview diyerek ana sayfaya dönüyoruz. Açılan sayfada ortadaki Android simgesine tıklıyoruz. Karşımızdaki sayfada bizden uygulama bilgilerini istiyorlar. Android paket adı için Android Studio’yu açıyoruz. MainActivity dosyasını açıyoruz. Dosyada en üst tarafta package com.kullanıcı.uygulumaismi şeklince paket ismimiz yazıyor. Com kısmı ile birlikte sonraki kısmı seçip kopyalıyoruz. Firebase sitesini açıp gerekli yere veriyi yapıştırıyoruz. Bizden 2 tane daha veri istiyor. Bunlar şart değil ama girerseniz iyi olur. App nickname Android Studio’daki projemize Firebase sistemince vereceğimiz takma isimdir. SHA-1 imzası uygulamamızın SHA-1 kodudur. Davetiyeler, uygulamada Google ile oturum açmak ve uygulamada telefon numarası ile işlem yapmanız için gereklidir. Bu kodu öğrenmek için Android Studio’da sağ taraftaki alanda Gradle’a tıklıyoruz. Sırayla app, Task, android, signingReport kısımlarına tıklıyoruz. Aşağıda bir terminal penceresi açılıyor. İşlemler bitince bize SHA-1 kodunu veriyor. Bu kodu da sisteme girdikten sonra sonraki diyerek ilerliyoruz.

Sonraki adımda bize verilen google-services.json dosyasını indiriyoruz. Android Studio’yu açıyoruz. Yukarıda Android yazan yere tıklayıp Project seçiyoruz. İndirdiğimiz dosyayı app klasörüne sürükleyip bırakıyoruz. Çıkan uyarıya ok diyip geçiyoruz. Yukarıda project yazan yere tıklayıp Android seçeneğini seçiyoruz. Firebase sitesinde devam ediyoruz.

En üstteki kodu kopyalayıp projemizde yanında project yazan build.gradle dosyasını açıyoruz. Dependencies altına kodu yapıştırıyoruz. Siteye geri dönüp başında implemention** yazan kodu kopyalıyoruz. Projemizde yanında module yazan build.gradle dosyasını açıyoruz. Kodu dependencies altına yapıştırıyoruz. Siteden son kalan kodu kopyalayıp projedeki son işlem yaptığımız dosyayı açıyoruz. En aşağıya süslü parantezin altına kodu yapıştırıyoruz. Şu an Android Studio’da en yukarıda sarı bir alan var. Oradaki sync now tıklayıp projenin build edilmesini bekliyoruz. Bu işlem ile Firebase gereksinimlerini projeye eklemiş oluyoruz. Attığımız dosya ile Firebase sistemi ile projemiz bağlantı kurabilecek. Eklediğimiz kodlar firebase kütüphaneleridir. Bu kütüphaneler ile projede kodlama yaparken kullanacağımız Firebase gereksinimlerini projemize eklemiş oluyoruz.

Bazen bu aşamada resimde görüldüğü gibi bazı kütüphaneler hata verebilir. Bu kütüphanelerdeki versiyon çakışması sonucu oluşur. Aynı isme sahip kütüphanelerin bütün ek paketlerinin aynı versiyonda olması gereklidir. Mesela com.android.support adlı kütüphanenin bütün ek paketleri aynı versiyonda olmalıdır. Bu sorunu çözmek için altı kırmızı olan bölüme gelip hangi ek paketlerin sorun çıkardığına bakmamız gerekir. Paketleri bulduğumuzda en alta bu kütüphaneleri ekleyebiliriz. Normalde sorun çıkaran bu kütüphaneleri biz ekmemiş oluyoruz ama sistemde ekli gözüküyor. Bunun sebebi projenin arka planda bu kütüphaneleri ekliyor olmasıdır. Resimden nasıl yapıldığına bakabilirsiniz.

Projemizin build işlemi bitince Firebase sitesine geri dönelim. Sistemde devam edip Firebase sisteminin proje ile bağlantı kurmasını bekleyelim. Eğer bağlantı kuramazsa endişe etmeyin bende hiç bir zaman bağlantı kurduğunu görmedim. Bu adımı atla diyip sitede devam ediyoruz. İşlemler bitince projemize Firebase eklemiş oluyoruz ve proje ile Firebase arasında bağlantı kurulmuş oluyor.