What’s new in Android @IO’18: Android App Bundle


Merhaba,

IO sonrası bir dizi detaylı teknik yazılar yazacağımı söylemiştim. Geçen hafta IO’da tanıtılan Instant App’lerdeki farklıkları ve yenilikleri içeren bir yazı yazmıştım. Şimdi sıra App Bundle‘da. Bu yazı developer.android, Google Developers kanalındaki videolar ve codelablerin birleştirilmesiyle oluşturulmuş özet bir yazıdır. Daha detaylı bilgi için orjinal kaynakları inceleyebilirsiniz. App Bundle’ı detaylarda kaybolmadan bir kere daha özetlersek, uygulamanın abi, resource bazlı farklı olarak publishing formatın çeşitlenmesi, sadece ilgili kısmın download edilip download size’ın düşmesi diyebiliriz. App Bundle, bir publish format. App Bundle kullanımı sonucu IO’da söylendiğine göre %30 oranında size’da azalma olan app’ler olmuş. Temel faydası ise farklı cihazları desteklemek için bizim değil Google Play’in görevi üstlenmesi ve optimized apk’lar üretilmesi. Yine cihaza inen, apk olmuş olacak.

Bir diğer önemli nokta da App Bundle’dan Google Play’in uygulama üretmesini sağlayan teknoloji open source. Yani App Bundle’ımız ileride başka store’lar tarafından da uygulama üretmek için kullanılabilir.

Bundles tüm cihazlar için çalışmakla beraber Lolipop ve sonrası cihazlarda optimizasyon daha fazlayken, Lolipop öncesinde multi-apk style apk’i yine Google Play tarafından generate edilerek alabilecekmiş.

Continue reading

Google Play Instant


Geçtiğimiz yıl Google IO’da Instant App’ler tanıtılmıştı. Kendi adıma web ve native arasında yeni bir köprü inşa edilmesini sağladığı için çok heyecan verici bulmuştum. Geçtiğimiz yıl içerisinde de  nasıl instant app’ler yapabileceğimizle ilgili birkaç konuşma yapmıştım.

Bu seneki Google IO’da ise aynı platform tüm oyun geliştiricilere açıldı ve platformun çatı adı Google Play Instant adını almış oldu.

Google Play Instant’la nasıl başarı yakalanabileceğine dair olan linkteki konuşmadan daha detaylı olarak da inceleyebilirsiniz. Video’daki rakamlardan alıntılıyorum, kullanıcılar mobilde geçirdikleri zamanlarının %87’sini aslında app’lerde geçiriyormuş. Ancak yine videodaki rakamlara göre bu kullanıcıların yarısı bir ay içerisinde hiç yeni uygulama da kurmuyorlarmış. Bu noktada ise uygulamamızın ne kadar erişilebilir, ulaşılabilir olduğu önem kazanıyor.

Continue reading

Google I/O’18 Highlights Devam..


Merhabalar,

Eğer okumadıysanız ilk önce I/O’yla ilgili yazdığım daha çok kullanıcıları etkileyen yenilikleri içeren yazımı okumanızı tavsiye ederim. Okudunuz bitti mi güzel 😀 o zaman biz developerları ilgilendiren yeniliklerle devam edebiliriz. Burada tüm yeniliklerin madde madde üzerinden geçeceğim ancak, bir kısmıyla ilgili ayrıca daha detaylı yazılar da önümüzdeki haftalarda paylaşacağım.

  • Geçtiğimiz sene I/O’da Kotlin’in de artık Android geliştirme için official dil olduğu açıklanmıştı. Bu senenin Developer Keynote‘u Kotlin kullanım ve memnuniyet rakamlarıyla başladı. Özellikle son dönemde twitter Android Developers kanalından yapılan 31 days of Kotlin, giderek Google code sample’larının daha çok Kotlin’e dönmesi, IO’da neredeyse tüm session’lardaki snippetların Kotlin olması ve I/O devam ederken Udacity‘ye Kotlin bootcamp de eklenmesiyle gidişatı net bir şekilde görmüş olduk. Continue reading

Google I/O’18 Highlights


Merhabalar,

IO sonrası hemen, hatta IO sırasında bu yazıyı çok istemiştim ancak jetlag vs. derken anca kendime gelebilmiş bulunuyorum 😀 Umarım keyifli bir yazı olur. Hem konferansta konuşulan başlıkları hem de San Francisco gezimi bir arada paylaşmaya çalışacağım.

SF macerası bir kısmımız için artık GDG‘ler için gelenekselleşmiş olan SF turuyla başladı. İkinci bir gelenekselleşmiş etkinlikte kapanışta yapılan sevgili Yener çiftinin(Nilay & Murat) evinde yapılan GDG BBQ parti. Şimdiye kadarki gidişlerimde (3. I/O’m 🙂 ) kapanış partisini hep kaçırmıştım. Bu sefer katılabilmek tatlı olsa da I/O öncesi SF turunu kaçırmanın biraz hüznü oldu 🙂 Continue reading

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

Kadın Yazılımcı Toplulukları Neden var?


IWD’18 konferans sezonu resmi olarak açıldı. Bilmeyenler için Google’ın büyük bir desteğiyle varlıklarını sürdüren dünya üzerindeki belli sayıda Women Techmakers toplulukları her yıl 8 Mart dünya kadınlar gününe ithafen Mart ve Nisan aylarında meetuplar/konferanslar düzenliyorlar. Yine sınırlı sayıda Google ofisinde de Google’ın düzenlediği summitler oluyor ve bizler de bunlara katılıp, kendimizi geliştirebiliyoruz. İlgilenenler şu linkten bi inceleyebilir 🙂

Peki benim asıl bu yazıyı yazma amacıma gelirsek 🙂 Aslında sürekli sorulan ve benim de başlarda kendime sorduğum bir soru women techmakers toplulukları neden var? Sonuçta men techmakers yok 😀 Continue reading

Almanak 2017


Artık benim için geleneksel hale gelen almanağı yazıp yılımı değerlendirme zamanı geldi. Hatta önceki yıllara oranla bu sene biraz geç kalmışım bile diyebilirim 🙂

İlk önce 2016’yı kapatırken 2017 hedefim neymiş ona baktım, demişim ki:

Geçtiğim yıla şöyle bir baktığımda en çok yaptığım şey sanırım konferanslara katılmak, hem konuşmacı hem de katılımcı olarak. Her ne şekilde katılmış olursak olalım hem paylaşmak için, hem öğrenmek için hem de farklı farklı insanlarla  tanışmak için mükemmel bir fırsat. Geriye dönüp baktığımda bu senenin en büyük kazancı olarak bunu görüyorum ve devam ettireceğimi biliyorum.

Bir diğer taraftan yeni yıl çok heyecan verici. Herkes için dileğim, isteklerinde net olmaları, istediklerinin peşinden koşmaları ve geçekleştirmek için çabalamaları. O zaman mutlu olacaklar.

Aslında 2016 yılı public speaking konusunda 2015’e oranla biraz daha uzmanlığa doğru ilerlediğim bir yıldı diyebiliriz. Bu sene ise bunu daha da geliştirmeyi ve de biraz daha kaynak üretmeyi hedeflemiştim. Olgunlaşma yılı diyebiliriz. Bir diğer yandan 2016’nın sonunda yeni kurulan takımda yazılım geliştirme görevime ek olarak, scrum master olarak da yer almaya başlamıştım ki o sıralar ne kadar çok şey öğreneceğimden habersizdim. 🙂 Continue reading

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

Google Developers Day(GDD) Overview


Continue reading

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