Apa Hubungan antara SDK dan API?
Dalam pengembangan perangkat lunak, seiring dengan terus meningkatnya skala sistem, memecah sistem yang kompleks menjadi komponen-komponen yang lebih kecil menjadi sangat penting, di mana desain antarmuka pemrograman sangatlah penting. Tugas utama desain antarmuka adalah mengalokasikan tanggung jawab sistem perangkat lunak secara wajar. Desain antarmuka yang baik dapat mengurangi ketergantungan antar bagian sistem, meningkatkan kohesi modul, dan pada saat yang sama mengurangi kopling antar modul, sehingga meningkatkan pemeliharaan dan skalabilitas sistem. API sebagai salah satu bentuk antarmuka, memainkan peran penting dalam interaksi antar program, sementara SDK dan API memiliki hubungan yang erat.
01 API
(1) Konsep API
API, singkatan dari "Application Programming Interface" (Antarmuka Pemrograman Aplikasi), adalah sekumpulan fungsi yang telah ditentukan sebelumnya yang dirancang sebagai "antarmuka" untuk menghubungkan dua hal yang berbeda. Ini menyediakan cara bagi aplikasi dan pengembang untuk mengakses rutinitas perangkat lunak atau perangkat keras, tanpa harus menyentuh kode sumber atau memahami detail mekanisme kerja internalnya.
Pada dasarnya, API adalah fungsi yang telah ditulis sebelumnya oleh orang lain, yang dapat mewujudkan fungsi tertentu. Anda hanya perlu memanggil metodenya sesuai dengan antarmuka yang disediakan, meneruskan parameter yang ditentukan, dan fungsi tersebut akan membantu Anda mewujudkan fungsi-fungsi ini.

Dari konsep "antarmuka" ini, di bidang komputer, ini mengacu pada tempat interaksi antara dua entitas yang berbeda, yang dapat berupa dua sistem yang berbeda atau dua bagian program. Oleh karena itu, "I" dari antarmuka dapat dipahami seperti ini. Berdasarkan hal ini, tempat interaksi antara manusia dan program disebut UI (User Interface), termasuk semua bentuk input manusia, seperti mouse, keyboard, layar sentuh, dan input suara, dll. Interaksi antara program dan program disebut API, dan semua interaksi non-manusia dilakukan melalui API, dan interaksi yang dimaksud pada dasarnya adalah transmisi data dan pemicu fungsi.
(2) Klasifikasi API
API dibagi menjadi API tingkat sistem (seperti Windows, Linux, Unix, dll.) dan API khusus non-sistem operasi. Sebagai pola enkapsulasi kode yang efektif, model pengembangan API Microsoft Windows telah diadopsi oleh banyak perusahaan pengembangan aplikasi komersial, dan fungsi API sistem aplikasi komersial tertentu telah dirilis untuk memudahkan perluasan fungsi pihak ketiga. Misalnya, API yang dikembangkan oleh Google, Apple, dan Nokia, dll.
API juga dibagi menjadi API terbuka dan API pribadi. Seperti namanya, API terbuka adalah antarmuka yang terbuka untuk semua orang, memungkinkan siapa saja untuk memanggil dan mendapatkan data di baliknya. Terkadang perusahaan akan menjadikan API sebagai sistem terbuka publik mereka, yaitu perusahaan menetapkan standar antarmuka sistem mereka sendiri, dan ketika perlu melakukan integrasi sistem, kustomisasi, dan aplikasi program, semua anggota perusahaan dapat memanggil kode sumber melalui standar antarmuka ini, standar antarmuka ini disebut API terbuka. API pribadi adalah antarmuka yang tidak terbuka untuk umum.
02 SDK
(1) Konsep SDK
SDK, singkatan dari "Software Development Kit" (Paket Pengembangan Perangkat Lunak), biasanya merupakan kumpulan alat pengembangan yang digunakan oleh insinyur perangkat lunak untuk membangun aplikasi perangkat lunak untuk paket perangkat lunak tertentu, kerangka kerja perangkat lunak, platform perangkat keras, sistem operasi, dll. Sederhananya, SDK adalah toolkit yang disediakan oleh penyedia layanan pihak ketiga untuk mewujudkan fungsi produk perangkat lunak tertentu.
Biasanya SDK disediakan oleh perusahaan profesional sebagai kumpulan layanan profesional, seperti menyediakan alat pengembangan Android atau layanan berbasis pengembangan perangkat keras, dll. Ada juga SDK untuk fungsi perangkat lunak tertentu, seperti teknologi push, teknologi pengenalan gambar, teknologi pembayaran seluler, teknologi analisis pengenalan suara, dll. Dalam tren keterbukaan internet, beberapa SDK fungsional telah diperlakukan sebagai produk untuk dioperasikan.
Pengembang tidak perlu lagi mengembangkan setiap fungsi produk, mereka hanya perlu memilih layanan SDK yang sesuai dan stabil, dan dapat mengintegrasikan fungsi tertentu ke dalam produk hanya dengan menghabiskan sedikit waktu.
(2) Perbedaan antara SDK dan API
SDK setara dengan lingkungan alat integrasi pengembangan, dan API adalah antarmuka data. Memanggil data API di lingkungan SDK.
Pada kenyataannya, SDK berisi definisi API, API mendefinisikan kemampuan, spesifikasi antarmuka, dan SDK dapat berisi kemampuan dan spesifikasi ini. Tetapi SDK tidak hanya berisi API dan implementasinya, tetapi juga merupakan toolkit perangkat lunak yang berisi banyak fungsi tambahan lainnya.
SDK berisi materi yang diperlukan untuk menggunakan API, oleh karena itu orang juga sering menyebut cara pengembangan menulis aplikasi Windows menggunakan hanya API sebagai "SDK programming".





