Merhaba arkadaşlar, bu eğitim serimizde instagram’a benzer bir uygulama yapacağız. Eğer uygulamayı indirip incelemediyseniz bu linkten indirebilirsiniz. Bunun için :

  • Firebase E-mail Ayarlamalarını
  • Firebase Veri tabanını
  • Firebase Bulut Depolamayı
  • Fabric Crashlytics
  • PHP ve MYSQL

kullanacağız. Benim uygulama için kullandığım paket ismim :

com.heavensteel.heavengram

Crashlytics : Fabric Tarafından geliştirilen geliştiriciler için daha kolay bir ortam sağlayan ve uygulamalar hata verdiğinde bize detaylı bir bildirim, e-posta yollayan bir eklenti.

Derleyecimizde “Settings -> Plugins  -> Fabric for Android Studio” yu bulup install’a basıyoruz

Derleyiciyi yeniden başlattıktan sonra üst kısımda şöyle bir icon çıkması lazım :

Fabric’ten normal üye girişinizi yaptıktan sonra sağ tarafta açılan panelden üye girişini yapıtıktan sonra “Proje’yi Seçin – > Organizasyonu Seçin – >  Crashlytics  – > Install – > Apply” işlemlerini sırasıyla yaptıktan sonra Crashlytics’i kullanmaya hazırız. Şimdi test olarak uygulamayı göçertelim.  Bunun için

“Crashlytics.sharedInstance().crash();”

Kodunu kullanabilirsiniz.  Uygulama başarılı bir şekilde göçtü ise sıkıntı yok. Deneme kodunu silebilirsiniz. Eğer daha android studio ile firebase’i bağlamadıysanız şu kısımdan firebase’ye bağlanabilirsiniz :

Bu kısmı yaptıktan sonra firebase’ye “Tools – > Firebase”‘e tıklayarak ulaşabilirsiniz.

Şimdi Firebase‘den uygulamamızı ekleyelim. İsterseniz “Tool – > Firebase”den bir şeyler ekleyip yapabilirsiniz bunu veya konsoldan manuel olarak ekleyebilirsiniz.

resimde gösterdiğim yere tıklayın. Çıkan bilgilerden paket ismini, uygulamanın takma ismini yazın. SHA-1 anahtarını da eklemek isterseniz :

kısmına iki kere tıklayabilirsiniz.  Daha sonra google-services.json’u indirin, inen dosyayı bizim uygulamamızın “app” klasörüne atın.

Daha düzenli bir şekilde kod yazmak için, MainActivity.class’ın olduğu klasöre sağ tıklayıp “New – > Package – > ” diyoruz. Karşımıza çıkan yere UI yazın. MainActivity.class’ı buna taşıyın. Bundan sonra arayüzlerin kodlarını bu paket isminden yazacağız.

Toolbar ve NavigationView

Toolbar için ayrı bir layout oluşturup “layout_top_tabs.xml” ismini verelim.  Kod :

<merge xmlns:android="http://schemas.android.com/apk/res/android">

<RelativeLayout
android:layout_width=”match_parent”
android:layout_height=”50dp”
android:layout_alignParentTop=”true”>

<android.support.design.widget.AppBarLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”>

<android.support.v7.widget.Toolbar
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:id=”@+id/tabs”
android:background=”@drawable/white_grey_border_bottom”>

</android.support.v7.widget.Toolbar>

</android.support.design.widget.AppBarLayout>

</RelativeLayout>

</merge>

Bu kodu oraya yapıştırabilirsiniz. Toolbar’ı isterseniz kendiniz kafanıza göre de yapabilirsiniz. LinearLayout, ImageView kullanarak fakat şimdilik bunu kullanalım. başka bir layout daha oluşturalım bu da layout_center_viewpager.xml olsun. Kod :

<merge xmlns:android="http://schemas.android.com/apk/res/android">

<RelativeLayout
android:layout_width=”match_parent”
android:layout_height=”match_parent”>

<android.support.v4.view.ViewPager
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:id=”@+id/container”>

</android.support.v4.view.ViewPager>

</RelativeLayout>

</merge>

layout_bottom_navigation_view.xml :

<merge xmlns:android="http://schemas.android.com/apk/res/android">

<RelativeLayout
android:layout_width=”match_parent”
android:layout_height=”50dp”
android:layout_alignParentBottom=”true”>

<android.support.design.widget.BottomNavigationView
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:id=”@+id/bottomNavViewBar”
android:background=”@drawable/white_grey_border_top”
>

</android.support.design.widget.BottomNavigationView>

</RelativeLayout>

</merge>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".UI.MainActivity">

<RelativeLayout
android:layout_width=”match_parent”
android:layout_height=”match_parent”>

<!– top toolbar –>
<RelativeLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:id=”@+id/relLayout1″>

<include layout=”@layout/layout_top_tabs”/>

</RelativeLayout>

<!– Middle section (body) –>
<RelativeLayout
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:id=”@+id/relLayout2″
android:layout_below=”@+id/relLayout1″>

<include layout=”@layout/layout_center_viewpager”/>

</RelativeLayout>
<!– bottom navigation –>
<include layout=”@layout/layout_bottom_navigation_view”/>

</RelativeLayout>

</android.support.design.widget.CoordinatorLayout>

Önceki yazıma buradan diğer yazılarıma ise buradan ulaşabilirsiniz.