Android Uygulama Geliştiricilerinin Google Bağımlılıkları

Muhammed Salih Karakaşlı
Huawei Developers - Türkiye
8 min readDec 20, 2019

Bir önceki yazımda Google Olmadan Android Kullanılabilir mi? sorusuna cevap aramıştık. Bu yazımda ise Android işletim sistemi için uygulama geliştiren bir yazılımcının veya bir kurumun, Google’a olan muhtemel bağımlılıklarını analiz etmeye çalışacağız.

Öncelikle şunu söylemeliyim ki; Google yıllardır geliştirdiği teknoloji ve servislerle Android işletim sistemine yaptığı katkılarla ve yatırımlarla mobil cihazların hayatımızın odak noktası haline gelmesi konusunda çok büyük bir pay sahibidir. Nokia’nın Symbian işletim sistemiyle tüm mobil sektörüne hükmettiği yıllardan Apple’ın iOS’u ve Google’ın Android’i olarak ayrılan iki ekosistemin ayakta kalabildiği günümüze kadar geldik. Apple da Google da Amerikan firmaları olduğu gibi ara yıllarda bu yarışa giren Microsoft ve Blackberry gibi firmalar da aynı onlar gibi Amerikan firmalarıydı. Anlayacağınız Nokia’nın pazarda gücünü kaybetmesi ile birlikte tüm pazar Amerikan şirketlerine kalmıştı.

Google ve Apple birbirine benzer yöntemlerle ama tamamen farklı kitleleri hedefleyerek yıllarca gizli bir iş ortaklığı yaparcasına tüm ekosistemi ele geçirirken, Nokia’yı satın alan Microsoft ve Blackberry günden güne güç kaybetmeye devam ediyordu. Hem Google hem de Apple kendi ekosistemlerini adeta ilmek ilmek işleyerek kendilerini vazgeçilemeyecek noktalara konumlandırdılar. Günümüze geldiğimizde ise Google o kadar güçlü bir konumda bulunuyor ki; hem dünya devi haline gelmiş telefon üretici firmalarını, hem de kendi çıkarlarına göre kararlar almayan ülkeleri kendi servislerine ait lisansları satmamakla (ürünün ücretini ödeyerek alınmasından bahsediyorum) tehdit edebiliyor.

Peki Google’a bu gücü veren kim hiç düşündünüz mü? Aslına bakarsanız, Google’a bu gücü veren Android Uygulama geliştiren bireysel yazılımcılar ve şirketlerden başkası değil. Google’ın şimdiye kadar ki gelmiş geçmiş en iyi servisleri sağladığını düşünelim (ki şu ana kadar gerçekten öyle), hemen ardından da hiç bir kurumun ve uygulama geliştiricisinin kendi uygulamalarını geliştirirken bu servisleri kullanmadığını düşünelim. Cevap aslında çok basit, biz yazılım geliştiriciler Google servislerini kullandığımız sürece Google bu kadar güçlü olabilir. Yani konunun başında söylediğim gibi bu gücü Google’a veren yazılım geliştiricilerin kendileridir. Tabi ki hiç bir yazılım geliştirici durduk yere bu gücü Google’a vermiyor, bakalım Google karşılığında yazılım geliştiricilere neler vaat ediyor.

Google Servisleri Developerlar İçin Neden Önemli?

Google geliştiricilere sağladığı servisleri 3 ana kategori altında topluyor. Kısa kısa bu kategorilere bakıp ne tür servisler olduğunu anlatmak gerekirse;

  1. Uygulama Geliştirme
    Geliştirilen uygulamaların yazılım süreçlerini basitleştirmek ve uygulamaları çok daha yetenekli bir hale getiren servisleri bu kategori altında topluyor. Harita ve lokasyon sistemleri, bulut depolama ve bulut fonksiyonları, uzak sunucu ve veritabanı servisleri, oyun servisleri, görüntü işleme servisleri, üyelik sistemleri vb. servisleri örnek olarak bu kategori altında sayabiliriz. İşte geliştiriciler bu servislerinden kendi uygulamalarında kullanmak istediklerini seçerek uygulamalarını çok daha çekici bir formda çok daha az bir efor sarf ederek geliştirmiş oluyorlar.
  2. Uygulama Kalitesini Arttırma
    Uygulama geliştirdikten sonra da Google geliştiricileri yalnız bırakmıyor. Hem test süreçlerinden kullanabilecekleri hem de uygulamalarını yayınlandıktan sonraki süreçlerde performans ve hataların takibini yapabilecekleri hatta kullanıcı davranışlarını analiz ederek uygulamalarında geliştirmeler yapabilecekleri servislerle geliştiricilere olan desteğini sürdürüyor. Bu servislerden faydalanan uygulama geliştiriciler uygulamalarının test süreçlerini çok daha verimli bir şekilde tamamlayıp, müşteri memnuniyeti konusunda ciddi başarılar elde edebiliyorlar.
  3. Kazanç & İş Büyütme Kanalları
    Google tüm bunlarla birlikte geliştiricilere uygulamalarını geniş kitlelere yaymak, uygulamanın kullanıcılarla olan etkileşimlerini arttırmak, hedef kullanıcı kitlelerine ulaşmak ve geliştiricilere kazanç sağlamak amacıyla birçok hizmet sunmaya devam ediyor. Bildirim Mesajlarları, uygulama içi satın alma, reklam platformu, yayılım tahminleme, market içi arama optimizasyonları, dinamik uygulama linkleme vb servisler bu kategori altında kendilerine yer buluyorlar. Bu servisleri kullanan uygulama geliştiricileri ise uygulamalarını Google Play market üzerinden çok geniş kitlelerle buluşturarak gelir elde etmeye başlayabiliyorlar.

Kısa kısa anlattığımız gibi bir geliştiriciler uygulamalarını geliştirmeye başladığı andan gelir elde etmeye başladığı ana kadar Google’ın kendilerine sağladığı servisleri severek kullanıyor. İki taraf içinde bir kazan kazan anlaşması gibi gözüken bu iş birliği, uygulamayı Google’a bağımlı hale getirirken, Google’ında sektördeki yerini bir nebze olsun daha fazla sağlamlaştırıyor. Bu kazan kazan anlaşmalarının bir tarafında sektörde yer alan binlerce kurum ve geliştirici varken diğer tarafında sadece Google oluyor. İşte tam da bu nokta da Google parçala ve fethet stratejisinin gerekliliği olarak istediği zaman binlerce geliştiricisi içerisinden azınlık olarak gördüğü bir parçasını oyun dışı bırakabilme ile tehdit edebiliyor. Ya da benzer şekilde ancak bu sefer geliştiricileri kendisine sıkı sıkıya bağladığı için, cep telefonu üreticilerini de oyun dışında bırakmakla tehdit edebiliyor. Çünkü diğer tüm geliştiricilerin ve global mobil uygulama pazarının içinde bulunduğu bir havuzdan dışarı atılmayı kimse kolay kolay göze alamıyor. Geliştiricilerin birlik olup Google’a karşı sen ne yapıyorsun diyebilme şansı var mı sizce? Ya da birbirleriyle sıkı bir satış yarışı içinde olan üreticilerin, rakibini kollamak amacıyla Google’a karşı durabilme ihtimali var mı? Maalesef ki yok.

Google’a Bağımlılığın Potansiyel Sonuçları

Son kullanıcı gözünden baktığınızda da durum vahim, tüm geliştiriciler uygulamalarını Google’ın sağladığı servislerle yazıyor ve dolayısı ile son kullanıcı bu uygulamaları kullanmak suretiyle bu servislerin birer kullanıcısı haline geliyor. Üstelik dünyanın çok farklı noktalarından farklı şirketlerin geliştirdiği yüzlerce farklı uygulama kullanan kullanıcılar Google’ın geliştiricilere ve üreticilere yaptığı tehditlere karşı doğrudan çaresiz bırakılıyor. Son kullanıcıya ya akıllı telefon kullanmayacaksın ya da benim kurallarıma uyacaksın, benim istediğim telefonu alacaksın ve benim istediğim geliştiricilere ait uygulamaları kullanacaksın mesajı dayatılmış oluyor.

Son günlerde Türkiye ve Google arasında yaşanan gelişmelerle birlikte Google iş ortaklarına Türkiye’de satılacak telefonlar için lisans verememe tehlikesi olduğunu bildiren bir bildiri yayınladı. Google tek bir cümleyle yıllar boyunca yarattığı ekosistemi arkasına alarak, Türkiye’de pazar payı %45 ile %50 arasında olan Samsung’un, 2020 yılında Türkiye pazarında satışlarını durdurma kararı alabilme ihtimalini oluşturdu. 80 milyonluk Türkiye’de yılda yaklaşık olarak 10 milyon adet cep telefonu satılan bir ülkede tüm bu satışların %50 sine sahip olan bir firmanın ülkeden çekilme kararı almasına bile yetebilecek bir güç. İşte Google, bu gücü, biz uygulama geliştiricilerinden alıyor. Samsung biliyor ki, Google olmadan ben bu ülkede cep telefonu satamam. Çünkü Google olmadan çalışabilecek uygulama sayısı bir elin parmaklarından az. Uygulama kullanamayacak olan kullanıcılar neden yüksek ücretler ödeyip son model bir akıllı cep telefonu alsın ki?

Tamamen Bağımsız bir Uygulama Mümkün mü?

Tamamen bağımsız bir uygulama yapmaya çalışmak, defalarca tekerleği baştan icat etmek anlamına geliyor. Yazılım dünyasının doğasında vardır bağımlılık, bir yazılım dili seçmek bile kendince bir bağımlılıktır örneğin. Daha yazılım süreçlerine başlamadan önce fizibilite çalışmaları, mimari çalışmaları aşamalarında bile değerlendirilir bu bağımlılıklar. Hatta ve hatta yazılım mühendisliği terimlerinden biri olan “Dependency Injection” kavramı bile bu işin doğasında bağımlılıkların var olduğunu bizlere gösteriyor.

Bu yazıda her ne kadar uygulamaların bağımlılıklarından şikayet ediyor gibi gözüksem de, esas değinmek istediğim nokta alternatifsiz bağımlılıkların getirebileceği sorunları açıklamak. Android dünyasında; telefon üreticilerinin, mobil uygulamaların, üçüncü parti servislerin, ödeme sistemlerinin, binbir çeşit kolaylıklar sağlayan kütüphanelerin, oyun motorlarının, reklam platformlarının ve diğer bir çok şeyin alternatifleri varken Google Servislerinin alternatifi yok(tu). Google’ın alternatifi olmadığı gibi diğer bütün alternetfi olan her şey de Google’a bağlı(ydı).

Sözün kısası şu ki; tamamen dış sistemlerden ve firmalardan bağımsız bir uygulama geliştirmek hem mantıksız, hem maliyetli, hem de bazı noktalarda mümkün değil. Önemli olan ve altını çizmek istediğim nokta ise sektörde tekelleşen ve rakipsiz olan firma ve servislerin alternatiflerinin de var olabilmesine ve bu tekelleşmenin bir nebze olsun önüne geçebilmesine olanak sağlamak.

Google’a Ne Kadar Bağımlıyız?

Geçenlerde Türkiye’de geliştirilen ve en çok kullanılan lokal uygulamalar listesi oluşturdum. Sizlerle şu an oluşturduğum listeyi paylaşamayacağım ancak çok değil sadece 61 uygulamaya yer verdim bu listede. Daha sonra bu uygulamalar üzerinden Google Servislerine olan bağımlılıkları analiz ettim. İşte sonuçlar;

Google Servisleri ve Kullanım Sayıları

Yukarıda paylaştığım grafik Google’ın sağladğı başlıca hizmetleri ve uygulamaların bu hizmetlere olan bağımlılıklarının dağılımını göstermektedir. 61 uygulama bulundurduğum listede Google’dan tamamen bağımsız çalışabilen sadece tek bir uygulama vardı. Diğer uygulamaların servisler bazında ki bağımlılıklarının detaylarını ise aşağıda baylaştığım tabloyu inceleyerek inceleyebilirsiniz.

Sonuçlara baktığımız da uygulamaların bağımlı olduğu Google Servislerinin başında Advertisement (Reklam) servisini görüyoruz. Bu ilk bakışta size ilginç gelebilir sizinde düşündüğünüz gibi bu listede yer alması gereken uygulamaların çoğu reklam yayınlamayan ve gelirlerini reklam üzerinden elde etmeyen uygulamalar. Ancak Advertisement servisi sadece reklam gösterimi amacıyla kullanılanılmıyor. Bu servis cihazınıza özel bir kimlik numarası (GAID: Google Advertisement ID) oluşturulmasına ve uygulamanın bu ID üzerinden takip edilmesine imkan tanıyor. Google’ın servislerini Türkiye’de kapatması demek bu uygulamaların reklam gelirlerinin duracağı ve uygulamalarını analiz ederken kullandıkları kimlik numaralarını artık alamyacakları anlamına geliyor.

Listede ikinci sırada gördüğümüz Authentication servisi de temelde Google hesabınız ile üye girişi yapmanızı kolaylaştırmak amacını gütsede reklam servisi ile benzer amaçlarla çeşitli ID ve parametrelerin toplanması için de kullanılıyor. Bu servisin durması ile birlikte eğer varsa uygulamalarda bulunan Google hesabınızla giriş yapın özellikleri çalışmaz hale gelmiş oluyor.

Push Notification listenin 3. sırasında olmasına rağmen %80 gibi çok büyük bir yüzdeyle kullanılıyor. Uygulamalardan gelen bildirimlerin telefonlarımızda gözükmesini sağlayan servise Push Notification ismini veriyoruz. Bu servis genelde diğer önemli servislerden biri olan Analatik servisi ile birlikte çalışarak uygulamalar üzerinde ki davranışlarınıza göre sizi belirli kullanıcı gruplarına atayarak doğru an ve zamanda sizi uygulamaya çekmek için bildirim gönderilmesine olanak tanır. Google Firabase Cloud Messaging adı altında sunduğu bu serviste doğrudan GMS’e bağımlı. Sanırım bu servisin kullanılamayacak olması son kullanıcıyı çok da rahatsız etmeyecektir. Ama geliştiriciler için durum tam tersi :)

Analytics az önce de bahsettiğim gibi uygulamalardaki kullanıcı davranışlarının incelenmesine olanak tanıyan ve ciddi uygulamaların olmazsa olmazları arasında yer alan bir servis. Bazı metriklerin toplanması açısından Google Servislerine doğrudan bağlı olduğu için listede kendine yer buluyor. Bu servisin yokluğu veya eksikliği son kullanıcıyı doğrudan etkilemese de geliştiricler için ciddi bir sorun.

Location & Map birbirine çok benzese de tamamen iki ayrı servis, Location servisinin kullanım oranı %70'ler civarındayken, Map %37 civarında uygulama tarafından kullanılıyor. Kullanıcıların bulunduğu koordinatları Location Servisini kullanarak öğrenebiliyoruz. Map ise uygulama üzerinde haritanın gözüktüğü uygulamalarda kullanılıyor. Sadece harita göstermekle kalmayıp bu haritalar üzerinde yaptığımız bütün işlemler Map servisleri sayesinde yönetiliyor. Google servisleri durduğu anda bu uygulamalarda haritalar gözükse dahi lokasyonların çekilmesi ve haritanın işlevsel kullanımları mümkün olmayacak.

GTM (Google Tag Manager) analatik kitine ek olarak kullanılabilecek servislerden biri uygulama içi satın almalar ve reklam dönüşlerinin takibi gibi süreçlerde geliştiricilerin daha detaylı ve özel analizler yapmalarına olanak tanıyan bir servis. Bu servisin yokluğu son kullanıcıyı doğrudan etkilemeyektir ancak geliştiriciler için bu bir sorun.

Mobile Vision servisi ile birlikte QR code okuma, yüz yanıma, yazı tanıma vb. özellikler Google tarafından geliştiricilere sunuluyor. Bu servisleri kullanarak geliştiriciler uygulamalarına gelişmiş özellikler kazandırabiliyorlar. Bu servislerin kullanım oranı %30 seviyelerine çok yakın.

IAP (In-App Purchase) ve bildiğimiz adıyla Uygulama İçi Satın almalar, geliştiricilerin uygulamalarının içerisinde satışlar yapmalarına ücretli abonelikler oluşturmalarına olanak tanıyan bir servis. Bu servis hem kullanıcılar hemde geliştiricler için Google tarafından yönetilen güvenli bir ödeme kanalı oluşturduğu gibi bu süreçleri her iki taraf için oldukça kolaylaştırarak işlem hacimlerinin yükselmesine fırsat veriyor. IAP servislerinin durması demek, bir çok oyun firmasını iflasın eşiğine kadar getirebilir. Kullanım oranı %20'lere çok yakın.

Diğer servisleri detaylı anlatmayacağım ancak diğer kitlerde de benzer durumlar söz konusu.

Özet olarak bugün bir karar alındığını ve Google Mobil Servislerinin ülkemizde durdurulduğunu düşünürsek, günlük hayatta kullandığımız uygulamaların çok büyük bir kısmı ana fonksiyonlarını dahi yerine getiremez bir şekilde karşımıza çıkacak. Bir çoğu daha açılamadan kapanacak, banka uygulamaları, kamusal uygulamalar, alışveriş uygulamaları, oyunlar… Tüm bu servislerin alternatiflerinin bulunup geliştirilmesi için ciddi bir zamana ihtiyaç duyulacak, özellikle önceden bu konu ile ilgili bir çalışma yapılmamışsa. Bu konuda bilinçlenmek ve geliştiriciler olarak çalıştığımız firmalarda veya kendi firmalarımızda bu bilinci yaymak önemli.

Bu yazının şimdilik sonuna geldik, bir sonraki yazım alternatif servisler ve çözüm yolları ile ilgili olmasını planlıyorum. Yazıyı yayınladığımda buradan da yeni yazının linkini sizlerle paylaşmış olacağım. Eğer link yoksa henüz yazıyı tamamlamamışım demektir. :)

--

--