MVC, MVP, MVVM


Daha önce Android architecture component hakkında genel bir bilgi toplamaya çalışmıştım. Aslında belki de öncesinde bugünlere nasıl gelindiğiyle ilgili biraz düşünmekte, konuşmakta fayda var.

Android’in tarihi çok eski olmamakla beraber aslında ilk yazmaya başladığımız, henüz herhangi bir library vs kullanmadığımız dönemde her birimiz kendi çözümlerimizi geliştiriyorduk ve paylaşıyorduk. Çoğumuz MVC(Model View Controller) kullanarak başladık. Bu yüzden de MVC’nin nasıl bir pattern olduğunu anlatarak başlamak istiyorum 🙂

MVC‘de; Model data’nın, state’in ve business logic’in tutulduğu yerdir. Controller ve View’e bağlı değildir, böylece tekrar tekrar kullanılabilir. View, ui’ın render edildiği parçadır. Herhangi bir akla sahip değildir. Controller ise view ve model arasında bağlantıyı kuran parçacıktır. Örneğin bir butona tıklandığında ne aksiyon alınacağı bilgisi Controller’dadır. Burada tıklandıldığı bilgisi veren View, yapılacak işi içeren kısım ise Model’dir. Android’de ise Activity ve Fragment’ler Controller’a denk gelir. Okumaya devam et

Mastering in Fragments


Ne kadar çok fragment kullandığınız ya da kaç yıldır Android developer olarak çalıştığınızdan bağımsız olarak, her Fragment kullandığınızda Fragmentle ilgili şaşırtıcı şeyler öğrenebilirsiniz. En azından benim için öyle 🙂 Bazılarınız yazıyı tamamladığınız yaa bunları bilmiyor muydun diyeceksiniz, bazıları ben de çektim evet diyecek ama benim amacım bir gün bunu yaşarsanız yol gösterici olması.

Bugünün konusu ise setUserVisibilityHint methodu. Aslında bakıldığında çok faydalı görünüyor. Fragment’in bize ne zaman visible olduğu/olmadığı bilgisini veriyor. Buna göre sayfanın çizilmesinde aksiyon alabiliriz, bir task başlatıp örneğin data çekeceksek burada yapabiliriz. Böylece optimizasyon sağlayabiliriz. Ama tutorial’da da belirtmiş ki lifecycle’a bağlı olarak Fragment yaratıldıktan sonra çağrılmayabilir. Fragment göründüğü an çağrılacak ancak, önce setUserVisibilityHint methodu sonra onCreate çağrılabilir. Okumaya devam et

Android Instant Apps’e Genel Bakış


Native Android apps that run instantly without installation

Android Instant App’leri ilk duyduğumda tam beklenen şey gelmiş, çok iyi fikir diye düşünmüştüm. Biraz daha derinine inip araştırmamı, merak eden diğer Android Developer’larla da paylamanın zamanı geldi geçiyordu. Yukarıda gördüğünüz gif early adopter’lerden biri olan vimeo’nun Android Instant App’i nasıl kullandığını gösteriyor. Nasıl bir süreç yaşadıklarını detaylı olarak anlatan medium’daki yazılarından aldım. Okumaya devam et

Android Lifecycle-Aware components


Google I/O’da tanıtılan ve aslında biz Android geliştiricileri oldukça heyecanlandıran en önemli gelişmelerden biri de Lifecyle-Aware Component’lerdi. Ben de yeni hakkında detaylı bir yazma fırsatı bulabiliyorum. 22 Temmuz’da Google Dome’da GDG Istanbul olarak gerçekleştireceğimiz codelab’in konularından biri de bu componentler. Merak edenlerle hep beraber inceleyebiliriz.

Componentlerin detaylarını konuşmaya başlamadan Android Activity Lifecycle’ı bir hatırlamakta fayda var. Aşağıdaki imaj aslında bize tüm akışı özetlemiş oluyor. Activity launch edildiğinde sırasıyla onCreate(Activity’nin yaratıldığı state), onStart(Activity’nin kullanıcıya visible olduğu state), onResume methodları trigger ediliyor ve Activity run edilmiş oluyor. Eğer üzerinde başka bir activity açılırsa, başka bir app’e giderse vs onPause methodu çağrılıyor. Activity sistem tarafından sonlanıyorsa ise onPause ardından, onStop(Activity tamamen görünmez olur) ve onDestroy methodları da tetikleniyor. Okumaya devam et

Google I/O’17 Developer Festival & 1 week with GDGs at SF :)


Uzun ve eğlenceli geçen bir haftanın ardından biraz dinlenip, festival notlarını paylaşmanın zamanı geldi. Ama biraz daha öne gidip, konferans öncesinde Türkiye’deki tüm GDG’ler olarak bir haftayı nasıl geçirdiğimizi de paylaşıyorum (plus) 🙂 Benim için bu yazının en zor yanı, anlatacak fotoğrafları seçmek oldu.

Herkesin bildiği gibi Google I/O 17-18-19 Mayıs tarihlerindeydi. Ama biz GDG’ler için program biraz daha doluydu 🙂

  • 15 Mayıs Pazartesi Akşamı: GDG Dinner Party
  • 16 Mayıs: GDG Summit + WTM Dinner Party
  • 17 Mayıs: I/O 1.gün + I/O Party
  • 18 Mayıs: I/O 2. gün + I/O Konser
  • 19 Mayıs: I/O 3. gün

Okumaya devam et

Actions on Google – Building a ChatBot using API.AI for Google Assistant v2


Actions on Google üzerine yazdığım ilk 2 yazı genel olarak bilgi verme amaçlıydı. 3. yazıda ise beraber basitçe bir chatbot yarattık. Ancak chatbotumuz kullanıcıya cevap olarak biz ne istersek onu verdi. Arkada herhangi bir çalışma yapılmadı, herhangi bir servise gidilip data çekilmedi. Bu yazıda ise botumuzu biraz daha akıllandıracağız.

apiai-overview

Webhook kullanabilmek için soldaki menüde yer alan fullfilment’e tıklayıp onu aktif etmemiz gerekmektedir. Gideceğimiz webservis url’ini de burada veriyor olacağız. Okumaya devam et