Bilgisayar programlama ve yazılım geliştirmede, yerel bir geliştirme kiti (NDK) genellikle geliştiriciye işlevleri kullanma veya doğrudan çekirdek işletim sistemi üzerinden kod yürütme yeteneği sağlayan soyut bir programlama arabirimidir (API). Bir programı çalıştırmanın bu yöntemi, yönetilen kodun çalıştırılmasından veya yorumlanmış programlardan belirgin şekilde farklıdır; burada yazılan kod, çekirdek işletim sistemi işlevleri ile kullanıcı tarafından yazılmış kod arasında bir yazılım katmanı olarak işlev gören bir sanal makine veya tercüman tarafından yürütülür. . Yerel bir geliştirme kitinin kullanılması, işletim sisteminin kullandığı donanıma ve kitaplıklara doğrudan erişim sağlayabildiğinden, mümkün olan en hızlı yürütme ve işleme sürelerini gerektiren uygulamalarda önemli olabilir. Yazılan programın türüne ve hedef işletim sistemine bağlı olarak, yerel bir geliştirme kitinin kullanılması program hızını hiç arttırmayabilir ve bakımı, okunması ve diğer sistemlere taşınması zor bir kod oluşturabilir.
Akıllı telefonlar gibi bazı aygıtlar için yazılmış veya yorumlanmış bilgisayar dillerini kullanan uygulamalar doğrudan çekirdek işletim sistemi işlemleri veya çekirdek tarafından gerçekleştirilmez. Bunun yerine, program kodu sanal makine (VM) veya tercüman olarak bilinen ayrı bir program tarafından yürütülür. Sanal makine kodu okur, komutları genişletir ve çözer ve kodu çalıştırmak için çekirdeğe arabirim oluşturur. Bu, bazı geliştiriciler için yararlı olabilir, çünkü taşınabilirlik için iyi bir soyutlama katmanı sağlar ve kaynak yönetimi ve dosya işleme gibi birçok karmaşık ayrıntıyı sanal makinenin yaratıcılarına bırakır.
Bununla birlikte, bazı durumlarda, sanal makine bazı program türlerine engel olabilir. Sanal makine yürütmeyi yavaşlatabilir veya ana bilgisayar çekirdeğindeki bazı işlevlere erişim sağlayamaz. Hedef işletim sistemi veya cihaz için yerel bir geliştirme kiti, çekirdeğin işlevlerini yazılan uygulamaya gösterir. Kitin ölçüsüne bağlı olarak, bu, bir programın donanıma doğrudan erişmesine, kendi özel kitaplıklarını çekirdeğe yüklemesine veya sisteme özel optimizasyonları kullanmasına izin verebilir.
Yerel bir geliştirme kiti genellikle bir programın yalnızca kritik zaman dilimleri için kullanılır. Bunlar grafik işleme hesaplamaları, ekrana çıktı veya dosya girişi ve çıkışı olabilir. Yerel işlevler veya rutinler kullanan tüm programlar bir hız avantajı görmeyecektir, çünkü sanal makine zaten yönetilen kodda optimizasyonlar yapabileceğinden, sonuçta kullanılan makine kodu, yerel işlevlerin kullanılmasına bakılmaksızın aynıdır. Ek olarak, yerel kod bir programı bir işletim sisteminin belirli bir uygulamasına ve bazen de cihazın belirli bir sürümüne bağlar; bu, yerel bir geliştirme kitini kullanan kodun diğer sistemlere kolayca taşınamayacağı anlamına gelir.


