Soru Cevap – Geliştirici lisanslarını her yıl yenilemek mi gerekiyor ?

SORU : IOS ve Android Geliştirici Lisansının ücreti nedir ? Bu lisansları her yıl yeniden almak zorunda mıyım ?

IOS İçin senelik lisans ücreti 99 Dolar’dır.

Lisansınızı yenilemediğiniz takdirde uygulamalarınız appstore’dan geçici olarak kaldırılır. Arama sonuçlarında bulunamazlar fakat daha önce yüklemiş olan kişiler uygulamayı kullanmaya devam edebilirler. Bunun yanında uygulamanızın yönetimi de engellenir. Bunlar olduktan sonra lisansınızı yenilerseniz erişiminiz tekrar açılır ve kaldığınız yerden devam edebilirsiniz.

Apple Destek Orjinal Metni :

What happens to my apps on the App Store if I do not renew my membership? If your membership expires, your apps will no longer be available for purchase and will not appear in search results on the App Store. However, if you renew your membership after it has expired, your apps will be available for purchase on the App Store within 24 hours. You do not need to resubmit your apps.


Android için lisans ücreti 25 Dolar olup bir defaya mahsus ödenir. Her yıl yeniden ödenme şartı yoktur.

Soru Cevap 3 – Emülatörde Haritalar Neden Çalışmıyor ?

SORU : Projeye Google Maps API’yi ekledim ve metod tanımlamalarını da yaptım. Projeyi başlattığımda hata vermiyor. Normal Google Maps’in açılışındaki gibi ızgaralı alan geliyor ama harita gelmiyor.

Sebebi ne olabilir?

Bunun sebebi birkaç problemden bir tanesi olabilir, aklıma gelenlerden üçünü şöyle açıklamaya çalışırsam :

1 – Maps uygulamalarını emülatörlerde kullanmak için emülatörü oluştururken seçtiğimiz target yani versiyonu Google API’s versiyonlarından seçmeliyiz. Garanti olması için yeni bir emülatör oluşturun ve emülatör oluşturma penceresinde Target seçeneğinde Google API’s ile başlayan ve uygulamanızı geliştirdiğiniz target versiyonunu içeren seçeneği seçiniz. Ayrıca bu emülatöre ek donanım özelliklerini (GPS gibi) buradan ekleyebilirsiniz.

2 – Emülatörün internet bağlantısı olup olmadığını test ediniz.

3 – API key’i kullandığınız uygulama için aldığınızdan emin olun. Başka bir uygulamadan üretilen MD5 ile alınan API bu uygulamada çalışmıyor olabilir.

4 – Genymotion gibi emülatörlerle çalışıyorsanız Google Play Services yüklemeniz gerekmektedir. Google Play Services yüklü olduğundan emin olunuz.

Android Geliştiriciliği – Soru ve Cevaplar

Merhabalar, yaklaşık 4 yıldır btsoru.com platformunda özellikle android konusunda sorulan soruları elimden geldiğince yanıtlamaya çalışıyorum. Bu süreçte şimdiye dek 82 yanıt vermişim ve % 30’luk kabul oranı elde etmişim. btsoru , stackoverflow’un Türkiye klonu. Özcan Acar tarafından yayına alınmıştır, kendisi de sıklıkla bu platformda paylaşımda bulunmaktadır. Blog ziyaretçilerimin de işine yaraması adına orada verdiğim yanıtları sorularıyla birlikte buraya da taşıyorum. 82 yanıtı tek sayfada göstermek yerine bunları yazı dizisi şeklinde farklı sayfalara böleceğim zira yanıtların birçoğu uzun ve tek sayfa için 82 yanıt biraz fazla. Yanıtları almış olduğu olumlu oylara göre azalan sırada sıralayıp ekliyorum.

Düzenleme : Her yanıtı ayrı yazı şeklinde yayınlama kararı aldım. Kısa yanıtların ise birkaçını tek yazıda toplayacağım.

Devamını Oku

Soru Cevap 1 – Android uygulamalarında cookie yönetimi nasıl olmalıdır ?

1 – Android uygulamalarında cookie (çerez) yönetimi nasıl olmalıdır ?

SORU : Merhaba Arkadaşlar bir android uygulama geliştiriyorum. Yaptığım Uygulamada Kullanıcı Adı Ve Şifre İle Giriş Yapılabilecek. Uygulamada Kredi sistemi de olacağı için Güvenli Bir Cookie yapmam gerekiyor. Kişinin Kullanıcı Adı Ve Şifresiyle Giriş Yaptıktan sonra, Uygulamayı Kapatıp açınca tekrar giriş yapmasını İstemiyorum. Bunun İçin Nasıl Bir Yol İzlemeliyim ?Teşekkürler.

Cookie ve Güvenlik birlikte anılamayacak kadar zıtlar aslında. Özellikle kullanıcı adı ve şifre gibi bilgileri Cookie’lerde tutmak çok güvenli bir yöntem değil. Android’de bazı bilgilerin her uygulama çalıştırıldığında uygulama tarafından hatırlanmasını isterseniz iki yöntemden bahsedebilirim. Verileri SQLite veritabanında veya SharedPreferences kullanarak bir XML dosyasında saklayabilirsiniz. Fakat bunların ikisinide aşağıdaki şekliyle önermiyorum, Neden ? :

1 – SharedPreferences : Uygulama cihaza yüklendikten sonra ilk çalıştırıldığında kullanıcıdan bir defa almak istediğiniz verileri istersiniz ve bu verileri kodla oluşturduğunuz XML dosyasına kaydedersiniz. Uygulama ikinci defa açılıp login olmak istediğinde kullanıcıdan tekrar şifre istemek yerine otomatik olarak bu dosyadan okursunuz. ( Güvenli Değil )

2 – SQLite : Üsttekine benzer mantıktadır fakat verileri XML dosyasında tutmak yerine SQLite veritabanıdna tutulur ve her login işleminde uygulama verileri buradan okur. ( Güvenli değil )

Neden güvenli değil ? : Normalde Android işletim sisteminde yüklü uygulamaların dosyalarına erişmeye izin verilmez. Yani bazı verilerin tutulduğu XML dosyaları ve SQLite veritabanı dosyalarına erişemezsiniz. Fakat bilinen adıyla rootlama denilen işlemle Android işletim sisteminde root yetkisi (tam yetki) alınabilmekte ve yüklü uygulamaların tüm veri dosyalarına erişim sağlanabilmektedir. Root edilmiş cihazların başkalarının eline geçmesi veya farkında olmadığınız uygulamaların bu belirtilen dosyalara erişmesi gibi durumlarda kullanıcının şifre gibi önemli bilgileri 3.kişilerin eline geçebilir. Bu sebeple önemli veriler sabit dosyalarda tutulmazlar.

Çözüm nedir ? : Yukarıda bahsettiğim güvenli olmayan yöntemlerin güvenli olmayışının sebebi verilerin “açıkça” dosyalara yazılmasıydı. Burada verilerin şifrelenip dosyalara yazılmasıysa güvenlik sıkıntısını büyük ölçüde giderebilirsiniz.

Android uygulamalarında alınabilecek güvenlik önlemleri ile ilgili Bedirhan Urgun’un şu yazısını okuyabilirsiniz.

Guvenli Android Uygulama Geliştirme İpuçları

Güvenli Uygulama Geliştirme Android

Android Eğitimi : Ekranın Döndürülmesi Nasıl Engellenir ?

Öncelikle başlık yanıltıcı olabilir diye bir ön açıklama yapmakta fayda var. Bu yazının hedef kitlesi son kullanıcılar değil, android geliştiricileridir. Son kullanıcılar Ayarlar – Ekran – Otomatik Döndürme seçeneklerinden cihazın genel ayarını değiştirebilirler.

Geliştirme yaparken sık kullandığım fakat bazen tam hatırlayamadığım konular oluyor. Bu da bunlardan biri. Kodu tam hatırlamak için eski projelere dönmek gerekiyor, zaman kaybı. Ben de bunları bir not defterinde tutmak yerine blog yazısı olarak yazmayı çözüm olarak seçtim. Hem aradığımda elimin altında olur, hem de benzer bir konuyu arayan varsa yardımcı olur diye.

Androidde bir arayüzü sadece Portrait mod için tasarlamış iseniz ve telefon yan tutulduğunda yani landscape moda geçtiğinde görüntünün dönmesini engellemek istiyorsanız aşağıdaki yöntemi kullanabilirsiniz. Fakat baştan söylemek gerek, bu türlü kısıtlamalar kullanıcı deneyimi açısından size olumsuz dönüşler getirecektir. Fakat bunu bu yazıda değil bir başka yazıda tartışarak nasıl çözüm getirilmesi gerektiğini konuşacağız.

TLDR ; Ekranın dönmesini engellemek için “AndroidManifest.xml” dosyanızda hangi Activity’de engelleme yapmak istiyorsanız o activity’nin tanım etiketlerine aşağıdaki kodu eklemeniz gereklidir.

 android:screenOrientation="portrait"
 android:configChanges="keyboardHidden|orientation|screenSize"

Örnek olması açısından aşağıda bu özelliklerin kullanıldığı bir AndroidManifest.xml dosyası bıraktım.