21 Eylül 2017 Perşembe

Android de Firebase'e Bağlanma ve Authentication

Merhaba Arkadaşlar,

Önceki yazımda genel olarak Google Firebase'den bahsetmiştim.Bugün Android'de Firebase'in uygulamamıza nasıl ekleneceğini ve Authentication işleminin nasıl yapıldığını anlatmaya çalışacağım.

Firebase Authentication ile geliştiricilere birçok kimlik doğrulama yöntemi kullanma imkanı sağlanmıştır.Bu kimlik doğrulama yöntemleri:

  • Email/Password
  • Google
  • Facebook
  • Github
  • Phone
  • Twitter
  • Anonymous
 Firebase kütüphanesini  projemizde kullanabilmek için projemize Firebase kütüphanesini eklememiz gerekmektedir.Eğer Google Firebase de hesap oluşturmadıysanız, öncelikle https://firebase.google.com adresine girerek buradan hesap oluşturmanız gerekmektedir.Bu yazımda, Firebase 'i Firebase Asistant kullanmadan  manuel olarak nasıl projenize ekleneceğini anlatacağım. 
          Manuel Olarak Firebase,Android Studio Projesine Nasıl Eklenir?

  1. Firebase sitesinden hesabımıza giriş yaptıktan sonra Go To Console 'u tıklıyoruz.Console üzerinde eğer yeni bir proje oluşturmak istiyorsak Proje Ekle,var olan google projemizi import etmek için ise "Google projesini içe aktar"ı tıklıyoruz. 



   2- Proje ekle seçeneğini tıkladığımızda  karşımıza çıkan formdan proje adını yazıp,ülkeyi           seçiyoruz.Ve Proje Oluştur Butonuna Tıklıyoruz.
Firebase'i Android Uygulamasına Eklemek
1-.Android Studio'da Firebase ekleyeceğimiz yeni bir proje oluşturuyoruz.

2-Firebase'de  sign-in olduktan sonra oluşturduğumuz projeyi açıyoruz.Ve aşağıdaki şekildeki gibi "Firebase'i Android uygulamanıza ekleyin" kısmına tıklıyoruz.




3-Yukarıda Android paket adını yazarken dikkat etmemiz gereken nokta Android Studio'da oluşturduğumuz projenin paket ismi ile aynı olmasıdır.
4-Projemizin paket ismini yukarıda yazıp,Uygulamayı Kaydet butonuna bastığımızda karşımıza aşağıdaki adım gelecektir.Aşağıdaki adımları takip edip google-services.json'ı bilgisayara indirip daha sonra Android Studio'da projemizde app modulunun altına google-services.json'ı kopyalıyoruz.
 5-Son adımda aşağıdaki ekrandaki yönlendirmeleri uygulayarak projemizdeki gradle dosyasında eklemeleri yapıp IDE'deki çubukta gözüken  sync now a basıyoruz.
Projemizde Firebase Authentication'ı kullanabilmemiz için build.gradle (Module: App)dosyasına aşağıdaki eklemeleri yapıyoruz.
compile 'com.google.firebase:firebase-database:11.0.1'

compile 'com.google.firebase:firebase-auth:11.0.1'

Ve son olarak da hangi Authentication tipini (Email/Password,Facebook,Twitter vs.)kullanmak istiyorsanız onu Firebase Consoldan aktif hale getiriyoruz. Firebase artık kullanımımıza hazır durumda.Diğer yazımda görüşmek üzere. Hoşçakalın.

6 Eylül 2017 Çarşamba

Firebase nedir?

Merhaba arkadaşlar bu yazımda,özellikle mobil yazılım geliştiriciler için büyük kolaylıklar sağlayan Firebase platformundan bahsedeceğim.Ekim 2014'te Firebase adı verilen uygulama geliştirme servisi,Google tarafından satın alındı.Böylece Google geliştiricilerin ihtiyaç duyduğu pek çok hizmeti kullanıma açtığını duyurdu. Firebase arka plan(backend) uygulama servisidir. Bulut tabanlı depolama ve verilere erişim sunmaktadır. Google Firebase tarafından farklı platformlar için kolay bir alt yapı ve tek yerden geliştirebilme imkanı sunulmaktadır.
Firebase'in geliştiricilere sunduğu hizmetlerden bazıları:

  1. Analytics:Firebase Framework'un en önemli kısmıdır.Ücretsizdir. Veri analiz ara yüzüdür.
  2. Realtime Database
  3. Cloud Storage
  4. Google Cloud Messaging
  5. Hosting
  6. Authentication
  7. Test Lab
  8. Notification
  9. AdMob
Google Firebase kullanıcısı olan mobil geliştiriciler, bir dizi mobil analitik hizmetinden faydalanabilmektedirler.Bu hizmetleri kullanabilmek için uygulamaya birkaç satır kod eklemek yeterlidir.Bu işlemden sonra uygulamadaki kullanıcı verileri,uygulamanın içinden Firebase'e aktarılmaktadır.Eğer geliştiriciler daha detaylı bilgilere ulaşmak istedikleri takdirde ,aynı işlemi erişmek istedikleri tüm bölümlere uygulayarak daha fazla bilgiye ulaşabilmektedirler.Böylece geliştiriciler, kararlarını tahminlere göre değil,Google Analytics verilerine dayandırarak vermektedirler.Geliştiricilerin uygulamayı kullanacak olan kullanıcıların neyi sevdiğini ve nelerden hoşlanmadıklarını bulmak için davranışlarını izlemeleri gerekir. Kullanıcıların kullandıkları platform ve geliştirilen tasarıma verdikleri tepkilerin detaylıca analiz edilmesi gerekir.
Analytics yardımıyla, Firebase kullanan geliştiriciler kendi uygulamalarındaki 500 benzersiz hareketi izleyebilir. Kullanıcı davranışına, uyumluluk raporuna ve hatalara göz atabilmekte, reklam performansını ölçebilmektedirler.
Google Cloud Messaging tabanlı bildirim sistemi yeniliklerden bir tanesi. Google buradan hem IOS ve android hem de web uygulamakarı için sınırsız bildirim desteği sağlamaktadır.Bu bildirimler tamamen ücretsizdir. Google sunduğu hizmetlerin bir kısmını ücretsiz ,bir kısmını ise ücretli olarak sağlamaktadır.Bu hizmetlerden Analytics,Hata Raporlama,Uzaktan Konfigürasyon ve Dinamik Linkler'in tamamı sınırsız kullanıma açık ve ücretsiz olarak sunulmaktadır. Firebase ile kullanılabilen ücretli olanlar  ürünler ise Test Lab, Storage, Hosting ve Realtime Database'dir. Bu ücretli hizmetlerden faydalanmak isteyenler belirli kısıtları olan ücretsiz plan, startuplar için bir aylık özel tarifeyi ya da "kullandıkça öde" modelini seçip, bahsedilen ücretli hizmetleri kullanmaya başlayabilirler.
Gelecek yazıda, Android ile Firebase Authentication 'ın nasıl yapılacağından bahsedeceğim.Görüşmek üzere...

Kaynaklar:
https://firebase.google.com/docs/
http://www.sistemoptima.com/yazilim/firebase-nedir
https://www.techinside.com/google-firebase-mobil-analitik-ucretsiz/

16 Ağustos 2017 Çarşamba

Web Servis nedir?

Merhaba arkadaşlar ,
Bugün son zamanlarda popüler olan web servislerden bahsetmek istiyorum. Web servis XML ,HTTP, SOAP gibi çeşitli protokol ve standartları kullanarak diğer web uygulamalar ile veri alış verişi yapmak amacıyla etkileşim kuran web uygulamalarıdır.Var olan uygulamalarımız web servisler sayesinde birer web uygulamalara dönüşebilmektedir. Web servisler, bir kez yazılır ve farklı platformlarda ve değişik programlama dilleriyle kullanılabilirler.İşletim sisteminin linux yada windows, programlama dilinin java ,php veya herhangi başka bir dil olması web servisin çalışmasını etkilemez. Web servisler, client (istemci bilgisayar )tarafından gönderilen istekleri yorumlayarak ona yapısında bulundurduğu bilgilerden ,istemcinin isteğine göre bir cevap göndermektedir. Web servisin avantajlarını toparlayacak olursak,Web servisi platform bağımsızdır ve istenilen yerden erişilebilmektedir.
Yukarıda bahsedilen kompleks mimarilerin kullanımının artmasının bir sonucu olarak uygulamalar arası iletişimin sağlanabilmesi için çözüm ihtiyacı ortaya çıkmıştır.Her uygulama geliştirildiği programlama dili ve veri tabanı itibari ile farklı  tür veriler oluşturmaktadır.Uygulamalar arası iletişimin ne olduğunu açıklayacak olursak, bu uygulamalar arası karşılıklı  veri alışverişini anlatmaktadır.Kompleks mimarilerin birbirleri ile iletişim sağlanabilmesinin çözümü herkesin kullanabileceği,kendi ihtiyacına göre yapılandırabileceği ortak bir dil olan xml standartıdır. Web servisler ile m için xml standardı kullanılır.En çok REST ve SOAP web servisleri kullanılmaktadır.

Web servisler bir çok alanda kullanılmaktadır.Örneğin TCMB döviz kurlarını uygulamamızda kullanmamız gerekirse kurumun yayınladığı  web servisinden istediğimiz verileri çekebiliriz.Bir başka ornek, Mernisten bilgi edinmek isteyen her kurum,daha önceden belirleniş olan xml 'e göre uygulamalarını yapılandırıp istediği bilgilere yetkileri dahilinde ulaşabilmektedir.



Kaynaklar:
https://www.tutorialspoint.com
http://www.mshowto.org

16 Mayıs 2017 Salı

Android'de ListView Oluşturma

Merhaba Arkadaşlar ;
ListView en önemli widgetlardan birisidir. Listview, ekranda verileri alt alta listelemek istediğimizde kullanılmaktadır.İki çeşit Listview vardır.Bunlardan birincisi android'in kendi adapter larını kullanarak oluşturulmaktadır.Bunlar sadece TextView'lardan oluşmaktadır.Yeni bir özellik eklenemez.İkincisinde ise özelleştirilmiş Listview oluşturulabilmektedir. Ben bu yazımda ilk seçeneği, yani android'in kendi adapter larını  kullanarak nasıl Listview oluşturulacağını anlatacağım.
ListView örneğine geçmeden önce  Adapter'dan bahsetmekte fayda var.
Adapter :Elektrik şebekesindeki elektrik, telefonumuzun bu elektriği direk kullanmasına elverişli değildir. Burada devreye adapter girer. Adapter sayesinde elektrik şebekesindeki elektrik telefonlarda kullanabilecek hale dönüştürülür. Androiddeki ArrayAdapter da aynı şekilde verilerin kullanıcı arayüzlerinde gösterilebilecek hale dönüştürmektedir. 
Örneğimizde ekranda yiyecek listesini göstereceğiz.

  • Öncelikle tasarım kısmını yapalım. activity_main.xml dosyasına ListView ekliyoruz.Bütün ekranı kaplaması için listview'ın  layout_width ve layout_height özelliklerini match_parent olarak tanımlıyoruz.
activity_main.xml dosyasının kodları aşağıdaki gibidir:

MainActivity.java dosyası aşağıdaki gibidir:

  • Burada ilk olarak String türünde yiyecekler listesi oluşturuldu.
  • OnCreate Metodunun içinde ListView 'ı tanımladık.
  • String tipinde verileri gösterecek bir ArrayAdapter oluşturduk.Burada Android'in gösterim şekillerinden simple_list_item_1 çağırdık.Parametredeki this ile ListView 'ın gösterileceği bağlamı belirttik.Aynı sayfada gösterileceği için this deyimini kullandık.yiyecekler parametresini de gönderdik.Bu sayede ListView'ın her satırındaki textView'lar yiyecekler listesinin elemanları ile doldurulacak.
  • Listview'a Adaptörü set ederek ekranda ListView 'ın görünmesini sağladık
  • Her bir elemana tıklama özelliği kazandırmak için setOnItemClickListener methodunu ekledik.Bu methodu onCreate Method içine ve setAdapter yapılan satırdan sonra yazılması gereklidir.
  • Örnekte tıklanan yiyeceğin ismini yazan bir diyalog penceresi ekrana gelmektedir. 
         Projeyi çalıştırdığımızda yiyecekler aşağıdaki resimdeki gibi ekranda listelenecektir.

Listedeki yiyeceklerden bir tanesi tıklandığında ise aşağıdaki gibi bir görüntü oluşacaktır.



Bu yazıda basit anlamda bir ListView'n nasıl olşturulacağını görmüş olduk.Bir sonraki yazıda görüşmek üzere...

10 Mayıs 2017 Çarşamba

Git ve Github Nedir?

Merhaba Arkadaşlar;
Bugün, yazılımcıların sıkça kullandıkları Git ve Github'dan bahsedeceğim.
Öncelikle ,yaygın düşüncenin aksine Git ve GitHub aynı şey değildir. Git bir versiyon kontrol sistemidir(VCS). GitHub ise içerisinde Repository'ler oluşturulan bir uzak depolama alanıdır.
Git dağıtık bir yapıya sahiptir:Yani her kullanıcı kendi bilgisayarında projenin bir kopyasını bulundurabilmektedir. İnternet bağlantısı olmadan kendi bilgisayarında proje üstünde çalışabilmektedir.
Git Versiyon Kontrol Sistemi ile ,
  • Projenin versiyon numaralarını, hangi kullanıcının ne zaman değişiklik yaptığı gibi bilgileri saklanmaktadır.
  • Projedeki takım arkadaşlarının yaptıkları değişikler görülebilmektedir.
  • Git bizim için projede yaptığımız çalışmaların yedeğini almaktadır. Bu sayede projenin güncel versiyonunda bir sorunla karşılaşıldığında eski versiyonlarda ne yaptığımızı görüp, kontrol edebilmekteyiz.Git çalışmalarımızın yedeğini kendisi alarak, bizi hem çalışmalarımızın yedeğini almak zahmetinden ve zamanından kurtarmakta, hem de yer tasarrufu sağlamaktadır. 
  • Yazılım şirketlerinde projelerde birden fazla kişi çalıştığı düşünüldüğünde,takım halinde çalışmayı kolaylaştırabilmek adına bir versiyon kontrol sistemi kullanmak kaçınılmazdır.Ayrıca müşteriler yazılan kodları görmek istediğinde, müşterinin sistemine kodları yüklemeden göstermeyi sağlamaktadır. 
  • Tek olarak gerçekleştirilen projelerde ise GitHub kullanmak projede yapılan kodda yapılan değişiklikleri görebilmek  ve kullanıcıların projelere katkıda bulunarak kendilerini geliştirebilmesi adına önemlidir.
  • GitHub, projeleri Public(projeyi herkes görebilir ve katkıda bulunabilir.)seçeneği ve private (Sadece belirlenen kişiler proje üzerinde çalışabilmektedir)seçeneği olmak üzere iki tane depolama  seçeneği sunmaktadır. 
  • Public seçeneği ücretsiz iken projeyi private olarak depolamak ise ücretlidir. 
  • Geliştiriciler herkesin görebileceği şekilde projelerini GitHub'a yüklediklerinde GitHub'daki herhangi bir kullanıcı projedeki kodları görebilmekte ve katkıda bulunabilmektedir. Ayrıca projeniz hakkına yorumlar yapabilmektedir. Yazılımcılar ,GitHub'daki projelere katkıda bulunarak deneyim kazanabilmektedir.   

25 Nisan 2017 Salı

Android Splash Screen Yapımı

Merhaba Arkadaşlar ,
Bu yazımda, Splash Screen ekranlarından bahsedeceğim. Instagram,twitter gibi hemen hemen herkesin bildiği ve kullandığı android uygulamaları ilk açıldıklarında logolarının göründüğü bir ekran karşımıza gelir. Splash ekranın Türkçe karşılığı açılış ekranı olarak geçmektedir.Açılış ekranları ekranda 2-3 saniye kaldıktan sonra oturum açma ekranına ya da ana ekrana (Yani Activity)ye geçiş yaparlar.Açılış ekranının ekranda kalış süresini istediğiniz gibi ayarlayabilirsiniz.Fakat açılış ekranının çok uzun süre ekranda kalması kullanıcıyı uygulamadan soğutabilir.Ya da diğer durumda ,kullanıcının ekranı göreceği yeterli süre ayarlanmazsa da kullanışsız olabilir.Ben açılış ekranlarının  uygulamada gösterilme süresini genelde 3 saniye olarak ayarlamayı tercih etmekteyim. 
Şimdi Splash Screen'in nasıl oluşturulduğunu görelim:
Öncelikle yeni bir proje oluşturalım.Yeni proje oluşturduğumuzda MainActivity.java ve activity_mail.xml oluşturulmuş oldu. Şimdi Splash ekranımızı oluşturacağımız yeni bir Aktivite oluşturmamız gerekmektedir.Bunun için aşağıdaki şekildeki adımları izleyelim ve Empty Activity oluşturalım ben bu aktivitenin ismini SplashScreenActivity olarak verdim.


Splash ekranda kullanacağımız resmi aşağıdaki şekildeki gibi drawable klasörüne yükleyeceğiz.Ama burada önemli bir nokta var. Android telefonların ve tabletlerin ekranları değişik boyutta olduğu için,resmin her cihazda aynı  şekilde gözükmesi konusunda sıkıntı yaşayabiliriz. Bunun  için bir adet XHDPI şeklinde resmi drawable  klasörüne atmamız yeterlidir.
XHDPI :
  •        Portrait:720px1280px
  •        Landscape :1280x720px



Splash Screen ekranımızın tasarım kısmını yaptığımız activity_splash_screen.xml dosyasının kodları aşağıdaki  gibi olacaktır.

 activity_splash_screen.xml 

activity_main.xml de  ise MainActivty'de ise bir textView ekledik.
activity_main.xml
Tasarım kısmını tamamladıktan sonra java dosyalarımıza geçelim.
SplashScreenActivity.java kodları aşağıdaki gibi olacaktır:
MainActivity.java 'da herhangi bir değişiklik yapmadık.
Şimdi önemli bir noktaya geldik AndroidManifest.xml dosyasında değişiklik yapmamız gerekiyor.Çünkü Splash ekranımız ilk açılan ekran olmalıdır.Şu anki AndroidManifest.xml dosyamıza göre uygulama çalıştığında ilk olarak MainActivity çalışacaktır.
AndroidManifest.xml 'de  aşağıdaki değişiklikler yapılmalıdır.

Bu yaptıklarımızdan sonra açılış ekranımız(Splash Screen) hazır durumdadır.
Diğer yazımda görüşmek üzere...