Android Studio’da API key Nasıl Gizlenir?

Tunahan Özataç
Berkut Teknoloji
Published in
2 min readJan 24, 2023

Selamlar, bu yazımda Android projelerimizde kullandığımız API anahtarlarımızı veya projemizde gizlememiz gereken değişkenleri nasıl gizliyeceğimize bakıyor olacağız. Hadi başlayalım o zaman. 🥳

Photo by Jason Blackeye on Unsplash

Öncelikle API (Application Programming Interface) nedir kısaca bundan bahsetmek istiyorum.

Geliştirilen bir uygulamanın özelliklerini dışardan farklı bir uygulama tarafından erişilip kullanılmasını sağlayan arayüzdür. Diğer bir deyişle farklı uygulamalar arasında veri paylaşımını saglayan arayüzdür.

API kullanmamızın asıl amacı geliştirilen yazılımın bir diğeriyle iletişim kurmasına izin vermektir.

Profesyonel projelerimizde sıklıkla kullandığımız api’ların güvenliği bu noktada çok önemlidir. Şimdi Android de API key nasıl gizleriz ona bakalım.

İlk olarak klasik yöntem ile yani bir Constant içerisinde tersine mühendislik ile kolayca çözülebilecek olan bir yöntem;

  • Genelde Util içerisinde Constant oluşturup içerisinde sabitlerimizi tutabiliriz. Bu yöntem kolaydır, ancak güvenlik açısından sorunlar oluşturur. Burada önem arzetmeyen sabitlerimizi tutabiliriz.

Diğer bir yöntem ise strings.xml içerisinde saklamaktır. Bu yöntem yaygın kullanılan bir yöntemdir fakat bu yöntem, verileri güvende tutmaz ve APK dosyasına tersine mühendislik uygulandıktan sonra kolayca görülebilir.

Diğer yöntemlere göre daha güvenli yönteme baktığımızda;

  • API anahtarlarını saklamanın başka bir yolu da onları Gradle dosyalarına koymaktır.
  • Android uygulamalarında tersine mühendislik ile kodlarımızı kolayca açığa çıkarılacaklarından klasik yöntemler (strings.xml) gibi kullanmak güvenlik açısından sıkıntı çıkarmaktadır.
  • Projemizi Github, Gitlab, Bitbucket gibi versiyon kontrol sistemlerinde paylaşmak istiyoruz fakat api anahtarını gizlemek istiyorsak bu yöntem ile gizleyebiliriz.

İlk olarak .gitignore içerisine local.properties’i ekliyoruz. Bu sayede .gitignore, derleme sırasında içinde listelenen her dosyayı yok sayar.

Daha sonra Android studio project görünümünde ki local.properties dosyasının içerisine API anahtarlarını ekliyoruz.

Sırada build.gradle(Module :app) içerisinde bu dosyadan (local.properties) API anahtarlarını okuyacağız.

Yukarıdaki kod blogunda kimlik bilgilerini okuyoruz, özellikler dosyası ve API_KEY adlı yeni bir buildConfigField oluşturun ve değeri özellikler dosyasından atayın.

Bu işlemide yaptıktan sonra Clean Project ve ardından Rebuild Project yapmakta fayda var.

API anahtarlarını gizleme işlemini başarı ile gerçekleştirmiş olduk şimdi nasıl kullanacağımıza bakalım.

  • Dilersek BuildConfig.API_KEY şeklinde kullanmamız gereken yerlerde kullanabiliriz.
  • Fakat bu yaklaşım sürekli kod tekrarı nedeni ile Clean Code anlayışına uymaz. Onun yerine Constants içerisinde değişkene atayıp Constants.API_KEY kullanabiliriz.

API anahtarlarını saklama işlemimiz bu kadar kodlarımızı versiyon kontrol sistemlerinde görüntülenmeyecektir.

--

--