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. Continue reading

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

Continue reading

Android’e Giriş v2 – Layouts


Android’e Giriş yazımı yazmanın ardından geçen yıllar aslında Android’e başlangıç için olan gereksinimleri de değiştirdi. İngilizce çok fazla sayıda kaynak olmasına rağmen yerel dilde kaynak ihtiyacı yine de varolmaya devam etmekte. Bu sebeplerden dolayı hergün gelişen, değişen teknolojiyle entegre olunabilmesi için bu yazıyı tekrar yazıyorum.

Konuyla ilgili yazımı ilk yazdığımda geliştirme ortamı olarak Eclipse kullanıyorduk. Şu an ise Google’ın resmi olarak desteklediği ide Android Studio. Zaten artık Android Studio’dan açılan bir uygulama hazır template’lerle neredeyse app’i yazıp önümüze veriyor. Gradle entegrasyonu seçilen sdk’ya göre hemen gerekli uploadları yapıyor. Yani küçük bir app yazmak ya da birşeyler denemek için hazır bir kod sunuyor Android Studio. Sonrası biz yazılımcıların yaratılığına kalmış 🙂 Continue reading

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. Continue reading

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


Actions on Google üzerine yazdığım önceki yazılarımda Action’lar hakkında detaylı bilgi vermeye çalıştım. Bu yazıda ise API.AI kullanarak bir chatbot nasıl geliştirebiliriz. Bunun üzerinde durmaya çalışacağım. Yazının sonunda Home üzerinde çalışan basit bir Chatbot’u hep beraber geliştirmiş olacağız. Önceki yazıları okumak isterseniz; v1 ve v2 linklerinden erişebilirsiniz.

conversation-action-apiai

API.AI kullanarak ilerlediğimiz durumda chatbotumuzun geliştirmesinde 5 temel adımı izliyor olacağız. Continue reading

Actions on Google – Build for Google Assistant v2


Google Asistan’a nasıl uygulama geliştirilebileceğine dair genel bir bakış açısını paylaştım bu konuyla ilgili ilk yazımı linkten okuyabilirsiniz. Bu yazıda ise biraz daha derinlere dalacağız.

Hem ilk yazıyı biraz hatırlamak adına dedik ki iki tip action vardır. Bunlardan biri Direkt Actionlar, diğeri ise Conversational Action’lar.

screen-shot-2017-02-12-at-13-41-26

Direct actionlarda aslında asistan herşeyi yapabiliyor. Teoride bize ne isteğini veriyor ve biz de ilgili servisi çalıştırıyoruz. Ancak henüz geliştirmeye açık değil.
Bizim üzerinde çalışabileceğimiz kısım ise Conversational Actions. Yani karşısındakiyle iki yönlü iletişim kurarak, ilerleyen action tipi. Burada kullanıcı bir action için istekte bulunduğunda Google asistan bu isteği işler ve karşılığındaki eğer varsa ilgili Conversation action’a yönlendirir. Bu noktadan sonra, karşılamadan kapatma cümlelerinde kadar herşey o conversation action içinde yer alır.

Yine bir önceki yazıda da kısaca değindiğimiz Conversation API çok önemli bir görev görüyor, temel görevinin broker’lık olduğunu söylemiştik. Tabi broker görevi gören google asistan olduğu için bazı standart kalıplarla hitap etmemiz gerekmekte.

let me talk to $name
I want to talk to $name
can I talk to $name
talk to $name
at $name

$name invocation name’i ifade ediyor. Ancak mesela bir önceki örnekteki gibi de let me speak with my personal assistant about homemade cannoli dediğimizde aslında burada homemade cannoliyle action phrase’i de vermiş oluyoruz. Burada yaptığımız şey deep linking.

Invocation name‘in seçimi çok önemli. Kolay telaffuz edilebilen, eşleniği olmayan bir kelime olması faydalı olur. Bu invocation name bizim agentımızı ifade eden uniqe bir kelime olacak. Tabi neler olabilir neler olamazla gibi, naming policy için actions on google altında bir döküman var. Burada bir geliştirme yapmayı düşünüyorsanız. İncelemekte fayda var. İsme karar verdiğinizde ise Googler Developer Console’dan register olabilirsiniz.

Tamam isme de karar verdiğimize göre nasıl geliştireceğimize geri dönebiliriz. Şu an elimizde action’ınımızı nasıl trigger edeceğimiz bilgisi var.

Conversation action’ınımızı iki farklı şekilde geliştirebiliriz. Bunlar; Actions SDK ve API.AI kullanımı.

Actions SDK kullanarak ilerlediğimiz durumda, SDK bize aslında iki temek component verir. Bunlar Action Package ve Node.js web servisidir. Node.js client kütüphanesi, kullanıcıdan gelen inputu işlememize ve ilgili isteğe gerekli çıktıyı üretebilmek için yapacağımız geliştirmemize yardımcı olur. Yani aslında Fullfillment stepini sorunsuz bir şekilde geliştirmemize yardımcı olur. Action package’ları ise, action’ların nasıl tetikleneceği, hangi fulfillment endpoint’in çağrılacağı gibi bilgilerin tutulduğu JSON manifest’leridir. Bunlar dışında actionları test ve deploy edebilmek için CLI ve Google Home simulatoru olarak bir Web simülatörü sağlanmış olur.

API.AI alternatifiyle ilerlenmesi, geliştirme ve deploy etmeyi bizler için biraz daha kolaylaştırır yönde. Bir arayüz yardımıyla, actionları build edebilir ve ek özellikleri basitçe ekleyebiliriz. API.AI’ın verdikleri ise; ilk olarak NLU. API.AI’a bağlı doğal dil anlama vardır ve kullanıcıdan gelen isteğin içinde de kullanılır. Tabi ilk söylediğimiz özelliği bir GUI arayüzü sunuyor olması da action’ların tanımlanması ve konfigürasyonu için çok büyük bir kolaylık. Son olarak da API.AI bize bazı ileri seviye özellikler sunar – Conversation building features. Bunlar da mesela gömülü bir simülatör, makine öğrenmesi algoritmaları ve kullanıcının isteklerini  bağlamsallaştırmamız ve bu sayede bakımını daha kolay yapmamızı sağlayan bağlamlar sunması gibi.

References:

 

WTM Istanbul 2017 IWD


Women Techmakers İstanbul’17 Konferansı 19 Mart’ta Yeniden Bahçeşehir Üniversitesi’nde!

Women Techmakers (WTM) daha fazla kadının bilim, teknoloji, mühendislik ve benzeri sektörlerde yer almasını teşvik etmek amacıyla etkinlikler düzenleyen ve Google tarafından desteklenen uluslararası bir topluluktur. 50’den fazla ülkede faaliyet gösteren WTM ekipleri, yıl boyunca bu amaçlar doğrultusunda toplantılar düzenleyerek bir araya gelir. Buna ek olarak, her yıl Dünya Kadınlar Günü’ne yakın tarihlerde IWD(International Women’s Day) isimli büyük bir etkinlik de düzenlenmektedir.

Diğer WTM grupları gibi, WTM Istanbul da 2014 yılına kadar Google Developer Group bünyesinde etkinlikler düzenlemiş olup 2014 yılında GDG Istanbul tarafından kurulmuştur.

Geçtiğimiz seneler Devfest Women, WTM 2015 ve 2016  konferanslarında 100’den fazla kadın konuşmacıyı ağırlayan WTM, bu sene yine dopdolu bir program ile katılımcıları ağırlamaya hazırlanıyor.

Katılımın ücretsiz olduğu etkinlik bu sene ‘Telling Our Story’ teması ile topluluk önünde konuşma semineri, mobil teknolojiler, web teknolojileri, back-end ve front-end teknolojileri, cloud, tensorflow, liderlik, oyun girişimciliği, UX ve sanal gerçeklik ile ilgili birçok önemli içeriğe sahip.

Katılımcılar, tüm bunların yanı sıra fuaye alanında en yeni teknolojilerle tanışma fırsatı bulacak ve eğlenmeye her an devam edecek!

Bütün bunlar ve daha fazlası için etkinliğe web sitesi üzerinden kayıt olmayı unutmayın!

Etkinlik tarihi : 19 Mart 2017

Etkinlik yeri : Bahçeşehir Üniversitesi

Etkinlik websitesi : http://2017.wtmistanbul.com/

Konferans Kayıt: gdg.ist/wtm-iwd17  

http://www.wtmistanbul.com/2017/01/wtm-istanbul-2017-iwd.html