Haftalık Bülten | 12-18 Ocak 2015

Geçen hafta sonu kız arkadaşım süper bir fikirle geldi. “Neden sen de diğer blog yazarları gibi haftalık özetler yayınlamıyorsun” dedi. Bide üzerine “Hafta içinde irili ufaklı bir çok şeyle ilgileniyorsun bence başkalarının da hoşuna gider” dedi. Bende inandım doğal olarak ve haftalık bültenler hazırlamaya karar verdim. Açıkçası nelerden bahsedeceğimi tam olarak bende bilmiyorum. Ağırlıklı olarak, hafta içinde development olarak uğraştığım şeyler, karşılaştığım sorunlar ve çözümleri, gördüğüm güzel appler ve stratup fikirleri gibi şeyler olacağını umuyorum.

Android

Geçen hafta akşamları ağırlıklı olarak Android ile uğraşmakla geçirdim. Bir java developer olarak bunun doğal olduğunu düşünebilirsiniz belki ama andorid ile çok içli dışı biri değilimdir. Kız arkadaşım, freelencer olarak çalıştığı bir projeye yardımcı olmamı rica etti. Bende kırmadım tabi.

Eclipse vs Android Studio

En son para kazandıran android projemi yazdığımda Eclipse üzeirnden yazıyorduk. Maven kullanıyorduk. Hayat bana göre daha basit ve hızlıydı. Fakat son güncellemelerde artık Android Studio ve Gradle ikilisi kullanılmaya başlanmış. Açıkçası Eclipse’ten çok daha hızlı bir IDE olmuş. Bu açıdan çok güzel. Fakat bazı şeyleri beni delirtti. Kısaca bir karşılaştırmak yapacak olursam;haftalik_bulten

  • Class-Path ile ilgili hatalarda Eclipse daha atak davranıyor. Örneğin, bir maven bağımlılığını bulamadınız mı? Eclipse size IDE’yi dar eder. Ama Android Studio daha sakin davranıyor. Sizi çok uyarmıyor.
  • Hız açısından kesinlikle Android Studio. Tek tıkla ilgili layouta gitmek gibi güzel şeyler yapabiliyorsunuz.
  • Layout editörüde güzel olmuş. Eclipse’te hiç kullanmadığım özelliği, Android Studio’da kullandım. Ama tabi bir yerden sonra doğrudan xml yazmaya geri dönüyorsunuz.

Android Studio ve Intellij (13+)

Android Studio için şöyle bir rivayet var. Adamlar kendi bloglardında da belirtmiş. Diyorlar ki Android Studio projesi Intellij (13+) içerisinde aynen çalışır. Proje yapısı aynı. Tamamen yalan. Hatta şöyle bir durum oluşuyor. Kısaca anlatayım.

Projede kız arkadaşım ve ben birlikte çalışıyoruz. O Android Studio kullanıyor ben Intellij Idea kullanıyorum. Proje onda derleniyor. Bende de derleniyor gözüküyor fakat cihaza yüklenmiyor. Açıyorum terminali, gradle üzerinden yükle diyorum yüklüyor. Delireceğim. Ide üzerinden build veriyorum build oluyor. Make diyorum hata falan vermiyor. Ama bir Fragment’ı açtığımda class bulunamadı hatası alıyorum. Resmen çıldıracağım. Gradle üzerinden senkron ol diyorum falan. Herşey yolunda gösteriyor. Sonradan anlaşıldı ki Gradle Wrapperın da yani modül değilde ana projede gözüken plugin versiyonunu Intellij ve Android Studio’da farklı kullanmak gerekiyormuş. Resmen hayal kırıklığına uğradım. Versiyonları yazayım da lazım olan varsa kullansın.

  • Android Studio: classpath ‘com.android.tools.build:gradle:1.0.0’
  • Intellij Idea: classpath ‘com.android.tools.build:gradle:0.14.4’

Yeni Kütüphaneler

Ben android için uygulama geliştirirken Volley stackini kullanırım. Bana güzel asenkron servis çağırımı için yöntemler sunarken, bir yandan da uygulama içinde kullanılacak fotoğraflar için cache mekanizması sağlar. Zaten önceki yazılarımda da bu kütüphaneden bahsetmiştim.

Bahsettiğim son geliştirmeleri yaparken, yeni practice’ler neler, neler gitmiş neler gelmiş, insanlar ne diyor ne kullanıyor diye bakarken, git üzeirndeki şu best practice yazısına denk geldim. Adam çok güzel şekilde best practice’ler tanımlamış. Çoğu benim de takip ettiğim şeyler ama kullandığı kütüphaneler ilgimi çekti ve araştırmaya başladım. İleride her bir kütüphane ile ilgili daha ayrıntılı şeyler yazacağım ama şimdilik özet niyetine belirteyim.

  • OkHttp: Bu doğrudan Volley yerine kullanılacak bir kütüphaneden ziyade, daha çok Apache HttpClient yerine kullanılabilecek bir kütüphane. Http/2 ve SPDY protokollerinin desteklendiği bir kütüphane. Size birden çok base url girme hakkı da sunuyor. Böylelikle bir URL hata verdiğinde diğerinden devam edebiliyorsunuz. SPDY ise test aşamasındaki bir Application Layer protokolü. Daha hızlı web mottosuyla ileleyen bir protokol.
  • Retrofit: Volley yerine kullanabileceğiniz bir kütüphane. Size REST API’larına senkron ya da asenkron bağlanmanızda kolaylıklar sağlıyor. Volleyden farkı, burada REST API’ınızı bir interface üzerinden, JAX-RS annotasyonlarının benzeri annotasyonlarla tanımlayıp servis çağırımlarınızı yapabiliyorsunuz. Ister retrofit kullanarak senkron servisler yazıp sonra bunları istediğiniz şekilde asenkron hale getirip ekranlarınızı güncelleyin, isterseniz kendi asenkron yapılarını kullanın. Tamamen size kalmış.
  • Picasso: Bu da volley’in diğer bir özelliğinin yerine kullanılan bir kütüphane. Bu kütüphane tamamen fotoğraf indirmek ve cache’lemek için kullanılıyor. Doğrudan ImageView ile kullanabiliyorsunuz. Debug modunu açtığınızda, yüklediğiniz kaynağın, yeni indirilmiş, bellekten ya da diskten olduğu bilgisini de görebiliyorsunuz.
  • Otto: Bu ise üzerinde biraz düşünmek istediğim bir kütüphane. Otto sayesinde, android uygulamanıza Bus ekleyebiliyorsunuz. Evet nasıl Java EE uygulamalarında Enterpise Bus kullanıp uygulamalarınızı haberleştiriyorsanız, android uygulamasında da Otto kullanıp activity ya da fragment’larınızı haberleştirebiliyorsunuz. Merak ettiğim ve yoğun haberleşme yapan android uygulamalarında kullanmak istediğim bir kütüphane doğrusu.

Bitbucket

Belki yuh diyeceksiniz ama, ilk defa bu hafta Bitbucket kullandım. Bu zamana kadar ya yerel ağda GitLab sunucuları ya da GitHub sunucuları kullanmıştım. Bitbucket’ta gerçekten güzel bir servismiş. Tamamen ücretsiz olarak kullanabiliyorsunuz. İster public ister privete repository oluşturabiliyorsunuz. Çok kullanışlı. Size isterseniz ticket sistemi ve bir de wiki sağlıyor. Yani hemen hemen github üzerinden alabileceğiniz tüm servisi Bitbucket üzerinden de alabiliyorsunuz. Ücretsiz git sunucusu arayanlar için biçilmiş kaftan. Tek sorunu, bir repository üzerinde maksimum 5 kişi çalışabiliyor. 5’ten daha fazla kişi çalışacaksa belirli bir ücret ödemeniz gerekiyor.

SourceTree

Konusu açılmışken buna da yer vereyim. Windows ve Mac ortamları için gördüğüm en iyi Git arayüzü. Eğer daha önce denemediyseniz mutlaka bir şans verin derim. Herşeyi tek bir IDE üzerinden yapmayı sevmeyen biri olarak, Eclipse + SourceTree şeklinde ya da Intellij + SourceTree şeklinde kullanıyorum ve çok memnunum. Mac için ayrıca Tower2’yi de çok öneriyorlar. Fakat SourceTree hemen hemen tüm ihtiyaçlarımı karşılıyor şimdlik. Hatta GitFlow akışını bile rahatlıkla uygulayabiliyorum.

 Tazeler

Şimdi yeterince development üzerine değindiğimi düşünüyorum. Biraz da öğrendiğim yeni uygulamalar, yeni servisler üzeirne değineyim. Olabildiğince ücretlerine değinmemeye çalışacağım. Eğer ilgili servis ya da ürün ilgilinizi çekerse, fiyatının değip değmeyeceğine siz karar verirsiniz.

Gibbon

Gibbon, bir şeyi örğenmek istediğinizde ya da bir konu hakkında bilgi sahibi olmak istediğinizde sizin yardımınıza koşuyor. Gibbon servisinin tek yaptığı size playlistler sunmak. Bu playlistler, blog yazılarından, videolardan ya da podcastlerden oluşabiliyor. Örneğin Sketch 3 ile ilgili bişeyler öğrenmek istediğimde doğruca ilgili https://gibbon.co/JenGlaser/sketch sayfasına gidip öğrenmeye başlabiliyorum. Biri benim için gerekli kaynakları toplamış oluyor ve ben araştırmayla daha fazla zaman kaybetmiyorum.

WhiteAlbum

WhiteAlbum, bir başka güzel uygulama ya da servis. Daha doğrusu ikisi bir arada. Heralde eski fotoğraf makinelerini hemen herkes hatırlıyordur. Hani şu belirli sayıda pozu kalan, hiç bir filtre uygulayamadığınız, beğenmediğinizde silemediğiniz hatta bastırılmadan göremediğiniz fotoğraflar çeken makineleri hatırlıyorsunuzdur. İşte bu fikir ışığında, WhiteAlbum isimli bir ios uygulaması geliştirmişler. WhiteAlbum’le eski fotoğraf makineleri gibi 20 pozluk çekimler yapıyorsunuz. Bir hafta on gün sonra, çektiğiniz fotoğraflar, beyaz bir albüm içerisinde kapınıza geliyor. Çıkan, filtre uygulamalarının hadi hesabı olmadığı bir zamanda bence çok güzel bir uygulama olmuş.

 Corbinizer

Corbinizer, bir ToDo yani iş takip aracı. Şahsen ben telefon ve bilgisayarımda, ToDoist kullanıyorum. Fakat her ne kadar iyi bir app yaparsanız yapın, benim gözümde kağıt kalemin yerini alamıyor. İşte Corbinizer da burada devreye giriyor. Tasarımcı bir arkadaş oturmuş A4 boyutunda ToDo tasarımı hazırlamış. Kolayca zamanınızı ve yaptığınız işleri takip edebiliyorsunuz. Çok mu basit geldi?

 Paddle

Profesyonel çalışma hayatım boyunca hep şirketler için uygulama geliştirdim. Ama içten içe de hep son kullanıcı için uygulama geliştirenlere özendim. Belki çoğu yazılımcı gibi bir “App” yazıp para kazanma hayaline sahip oldum. Genelde bu hayalde, benim için en büyük soru içaretleri, Key’lerin ve Lisansların nasıl üretileceği, nasıl takip edileceği, özellik bazlı kısıtlamaların nasıl yapılacağı oldu. Açıkçası bunlar hep muhsebe işi gibi geldiğinden korkutucu ve sıkıcıda geldi. İşte tam bu noktada Paddle servisi devreye giriyor. Size sağladığı SDK sayesinde, sizi lisanslardan, özellik kısıtlamalarından, Apple Store’un satış kısıtlamalarından ve daha bir çok şeyden kurtarıyor. Size düşen ise sadece oturup uygulamanızı geliştirmek. En kısa zamanda denemeyi ümit ediyorum.

MoneyWiz

MoneyWiz, kişisel finans takip uygulaması. Açıkçası pek hesap kitap yapan biri olmadığım için en azından neye ne kadar harcadığımı görmek adına bir finans uygulaması bakınıyorum. Fakat bu zamana kadar gördüğüm tüm finans uygulamaları benim birşeyler girmemi bekliyor. Bende hep “Lan ben banka bilgilerimi girsem de siz bankadan çekseniz” gibi düşüncelerle uygulamlardan uzaklaşıyordum. Veriyi ben sağladıktan sonra oturur kendim analizini yaparım zaten. İşte bu noktada MoneyWiz fark yaratıyor. Dünya üzerindeki farklı farklı bankalarla anlaşma yapmış. Şu an için türkiyede sadece 3 banka ile çalışıyor (İşBankası, VakıfBank ve Ziraat Bankası) (Detaylı Liste). Tabiki de ben bu üç banka ile de çalışmıyorum. Napalım diğer bankaların katılmasını bekleyeceğiz.

BeMyEyes

BeMyEyes, sosyal sorumluluk projesi. Görme engelli birine mobil uygulama üzeirnden yardımcı oluyorsunuz. Görme engelli kişi sizi basit bir şey sormak için arıyor. Bu dolaptaki sütün son kullanma tarihi de olabilir yol tarifide. Güzel düşünülmüş bir proje. Uygulama da nasıl olacağını ise bekleyip göreceğiz.

Son

Bu haftalık bu kadar. Umarım kız arkadaşım haklıdır ve ilginizi çeker.

End Of Line