SDK ve API İlişkisi Nedir?
Yazılım geliştirmede, sistemlerin ölçeğinin sürekli artmasıyla birlikte karmaşık sistemleri daha küçük bileşenlere ayırmak kritik önem taşır; bu süreçte programlama arayüzlerinin tasarımı özellikle önemlidir. Arayüz tasarımının öncelikli görevi, yazılım sisteminin sorumluluklarını mantıklı bir şekilde dağıtmaktır. İyi bir arayüz tasarımı, sistemin farklı bölümleri arasındaki bağımlılığı azaltır, modüllerin tutarlılığını artırır ve modüller arasındaki bağlantıyı azaltarak sistemin bakımını ve genişletilebilirliğini artırır. API, bir arayüz biçimi olarak, programlar arası etkileşimde önemli bir rol oynar ve SDK ile API arasında yakın bir ilişki vardır.
01 API
(1) API Kavramı
API, tam adı "Uygulama Programlama Arayüzü" olan, iki farklı şeyi "arayüz" olarak bağlamak için tasarlanmış önceden tanımlanmış fonksiyonlardan oluşan bir settir. Uygulamaların ve geliştiricilerin, bir yazılımın veya donanımın rutinlerine, kaynak koduna erişmeden veya dahili çalışma mekanizmalarının ayrıntılarını anlamadan erişebilmesi için bir yol sağlar.
Aslında, API, belirli işlevleri gerçekleştirebilen başkaları tarafından önceden yazılmış fonksiyonlardır. Sadece sağlanan arayüzü çağırarak, belirtilen parametreleri ileterek, fonksiyon bu işlevleri sizin için gerçekleştirir.

"Arayüz" kavramından yola çıkarak, bilgisayar alanında, iki farklı varlık arasındaki etkileşim yerini ifade eder; bu, iki tamamen farklı sistem veya iki program parçası olabilir. Bu nedenle, arayüzün "I"'sı şu şekilde anlaşılabilir. Bu temelde, insan ve program arasındaki etkileşim UI (Kullanıcı Arayüzü) olarak adlandırılır ve herkesin giriş biçimlerini, örneğin fare, klavye, dokunmatik ekran ve ses girişi gibi içerir. Programlar arasındaki etkileşim ise API olarak adlandırılır ve insan dışı tüm etkileşimler API aracılığıyla gerçekleşir; söz konusu etkileşim özünde veri aktarımı ve fonksiyon tetiklemektir.
(2) API'nin Sınıflandırılması
API'ler, sistem seviyesi API'ler (örneğin Windows, Linux, Unix vb.) ve işletim sistemi dışı seviyedeki özel API'ler olarak ayrılır. Etkili bir kod kapsülleme modeli olan Microsoft Windows'un API geliştirme modeli, birçok ticari uygulama geliştirme şirketi tarafından benimsenmiş ve üçüncü tarafların işlevleri genişletmesini kolaylaştırmak için bazı ticari uygulama sistemlerinin API fonksiyonları yayınlanmıştır. Örneğin, Google, Apple ve Nokia gibi mobil cihaz geliştiricilerinin API'leri vb.
API'ler ayrıca açık API'ler ve özel API'ler olarak da ayrılır. Adından da anlaşılacağı gibi, açık API, herkesin erişebildiği bir arayüzdür ve herkesin çağrı yapmasına ve arkasındaki verilere erişmesine izin verir. Bazen şirketler API'yi kamuya açık bir sistem olarak kullanır; yani şirket kendi sistem arayüzü standartlarını belirler ve sistem entegrasyonu, özelleştirme ve program uygulaması gibi işlemler gerektiğinde, şirketin tüm üyeleri bu arayüz standardı aracılığıyla kaynak kodunu çağırabilir; bu arayüz standardı açık API olarak adlandırılır. Özel API ise kamuya açık olmayan bir arayüzdür.
02 SDK
(1) SDK Kavramı
SDK, tam adı "Yazılım Geliştirme Kiti" olan, yazılım mühendisleri tarafından belirli bir paket, yazılım çerçevesi, donanım platformu, işletim sistemi vb. için uygulama yazılımı oluşturmak için kullanılan bir dizi geliştirme aracının koleksiyonudur. Basitçe söylemek gerekirse, SDK, üçüncü taraf bir sağlayıcı tarafından sunulan bir yazılım ürününün belirli bir işlevini gerçekleştirmek için kullanılan bir araç setidir.
SDK genellikle profesyonel şirketler tarafından sunulan profesyonel hizmetlerin bir koleksiyonudur; örneğin, Android geliştirme araçları veya donanıma dayalı geliştirme hizmetleri vb. Ayrıca, belirli bir yazılım işlevi için bir SDK de vardır; örneğin, push teknolojisi, görüntü tanıma teknolojisi, mobil ödeme teknolojisi, ses tanıma analiz teknolojisi vb. İnternetin açık olma eğiliminde olduğu günümüzde, bazı işlevsel SDK'lar bir ürün olarak işletilmektedir.
Geliştiricilerin ürünün her işlevini geliştirmesine gerek kalmaz, sadece uygun ve kararlı bir SDK hizmeti seçerek ve az miktarda zaman harcayarak ürüne bir işlev entegre edebilirler.
(2) SDK ve API Arasındaki Fark
SDK, bir geliştirme entegrasyon aracı ortamına karşılık gelirken, API bir veri arayüzüdür. API verileri SDK ortamında çağrılır.
Aslında, SDK, API tanımlarını içerir, API bir yeteneği, bir arayüz spesifikasyonunu tanımlar ve SDK bu yeteneği, bu spesifikasyonu içerebilir. Ancak SDK sadece API ve uygulamasını içermekle kalmaz, aynı zamanda birçok başka yardımcı işlev de içeren bir yazılım araç setidir.
SDK, API'yi kullanmak için gerekli materyalleri içerir, bu nedenle API'yi kullanarak Windows uygulamaları yazma geliştirme yöntemine genellikle "SDK programlama" denir.





