SDK (API)

Mustafa Dikyar
3 min readSep 19, 2020

--

SDK (Yazılım Geliştirme Kiti), Geliştiriciler tarafından kullanılan belirli platformlara uygulamalar geliştirmek için oluşturulmuş kütüphaneler, araçlar, dökümanlar, kod örnekleri ve kIlavuzlardan oluşur. Belirli bir platformda ve ya bir programlama dilinde kullanılmak üzere oluşturulurlar.

Modern bir kullanıcının etkileşime girdiği hemen hemen her uygulamanın kaynağını oluştururlar.

API (Uygulama Programlama Arayüzü), Aynı ve ya farklı dillerde oluşturulmuş bir yazılımın bir diğeri ile etkileşimini sağlayan ara birimdir.

SDK ve API kavramlarının neler olduğunu öğrendiğimize göre bir geliştirici olarak hangi durumlarda API hangi durumlarda SDK ihtiyaç duyarız bu duruma bir bakalım.

Neden API kullanmalıyım?

APIler bir SDK’nın bir ve ya birkaç özel işlevini kullanmak istediğimiz zaman tam olarak entegre bir yapı aramıyorsak faydalıdır. APIler tipik olarak SDKlardan çok daha hafiftir. Çünkü uygulamalarımıza entegre olmak için tam bir kütüphaneye ihtiyaç duymazlar.

Bu sorumuza verdiğimiz cevaptan yola çıkarak hangi durumlarda bir SDK’ya ihtiyaç duyduğumuz sorusuna da dolaylı yoldan cevap vermis olduk.

Biraz kafamız karışmış olsa da ilerleyen kısımlarda vereceğimiz örnekler ve karşılaştırmalar ile bu durumu tamamen gidermiş olacağız.

Neden API ve Neden SDK sorularını cevapladıktan sonra haydi şimdi de bu kavramları birbirleriyle kıyaslayarak SDK ve APIlerin geliştiricilere sağladığı faydalardan bahsedelim.

SDKlar uygulamalarımıza katacakları işlevselliğin yanı sıra birçok kodu tekrar tekrar sıfırdan yazmamızın da önüne geçmektedir. Örneğin uygulamamıza bir konum yakalama, veri depolama, yetkilendirme, mobil ödeme, bildirim gönderme gibi çoğaltabileceğimiz birçok standart ve işlevsel özelliği çok hızlı ve kolay bir şekilde entegre etmemize olanak sağlar.

İyi bir SDK için kullanımı kolay, iyi dökümante edilmiş, kullanılacak cihaz penceresinden baktığımız zaman CPU, pil ve veri tüketimini olumsuz etkilemeyen, diğer SDKlar ile iyi etkileşim kurması gibi noktalara değinebiliriz.

Büyük resme baktığımız zaman Amerika’yı yeniden keşfetmeye ve ya başka bir tabir ile tekerleği yeniden icat etmenin lüzümsuz olduğunu hep birlikte görmekteyiz.

Şimdi de bu iki kavramların kafamızda daha iyi yer edinebilmesi birkaç basit ve bir karmaşık örneği inceleyelim. Eminim ki örnekler neticesinde kafamızdaki birçok soru işaretini silmiş olacağız.

Mesela bir akşam patlamış mısır yemek istediğimizi varsayalım. Her defasında kendi mısırını ek, yetiştir, hasat yap, kurut, mısırı patlat ve ye OLMAZ! Söz konusu zaman ve emek gibi faktörleri göz önünde bulundurursak böyle bir yolun ne kadar mantıksız olduğunuz görmekteyiz. Bir geliştirici olarak böyle bir durum ile karşılaştığımız zaman ilgili SDK’yi projemize dahil etmek ve

-MısırEk() — MısırıYetiştir() — HasatYap() — MısırıPatlat() — Ye() gibi önceden hazırlanmış fonksiyonlara sadece çağrı yapmamız yeterli olacaktır.

Bir başka örneğe bakacak olursak; Basit bir kopyala yapıştır örneğini ele alalım.

Metni kopyalamak için bir komut vererek veriyi bir API ile belleğe depolar. Ardından aynı API ile veriyi bir uygulamadan diğerine taşırız. Farklı bir API ile de yapıştırma komutuyla veriyi ilgili yerde oluşturulmasını sağlamış oluruz.

** Web API tarafına değinecek olursak; sonuçta bir Web API diğer platformlarda kullanılan APIler gibi fakat web alanını temel alan bir dizi talimattan ibarettir.

Yazımı biraz daha detaylı bir örnek ile sonlandırmak istiyorum.

X bir sosyal medya APIsini ele alalım. Bir kullanıcının bir diğer kullanıcı ile etkileşime geçmesi, bir gönderi paylaşması, bir gönderiye yorum yapması ve bir gönderiyi silmesi gibi işlemleri içerdiği gibi üçüncü parti hizmetleri de içerisinde barındırmaktadır.

Profil, fotoğraflar, etkinlikler, arkadaş grupları gibi veriler toplanır ve derlenir. Hizmetin genişletilebilirliğini artıran anlamlı ve yararlı bağlantılar oluşturmak için kullanılır.

Bu hizmet kullanıcılar, fotoğraflar, yayınlar ve daha fazlası arasında ilişkisel verilerin izlenmesini sağlar. Böylelikle bir sosyal medya platformunun ne kadar güçlü olduğunun yanı sıra aynı zamanda uygun bir şekilde yapılandırılmış bir API tasarımının ne kadar güçlü olduğunu da gösterir.

Benzer şekilde pazarlama APIleri de mevcuttur. Bu APIler üzerinden reklam kampanyaları ve uygun kampanya tasarımlarının oluşmasına olanak tanır.

Amaç; pazarlama hedeflerine öncelik vermek ve reklamları mümkün olan en etkili ve verimli şekilde sunmak için optimize etmektir.

Dinamik ve düzgün hazırlanmış bir API teklif verme, pazardaki alt ve üst değerlerin analizi gibi birçok noktayı güçlü bir şekilde görmemize olanak tanır.

Son örneğimiz üzerinde APIler ve SDKlar üzerindeki en temel farkın yine ifade işlevlerinde olduğunu görüyoruz.

APIler uygulamalar ve kampanyalar ve ya diğer uygulamalar arasındaki etkileşim için tasarlanırken; SDKlar bu uygulamaların oluşturulması için tasarlanmışlardır.

API ve SDK kavramları her ne kadar kafa karıştırıcı gibi görünse büyük resmi görmeye başladığımızda ne kadar da basit kavramlar olduğunu görmekteyiz.

Basit manada SDKLAR UYGULAMANIN OLUŞMASINI SAĞLARKEN; APILER UYGULAMANIN TANIMLANAN BİÇİMDE ÇALIŞMASINI SAĞLARLAR.

Umarım faydalı olmuşumdur. Bir başka konuda görüşmek üzere…

--

--

Responses (1)