PlatformIO Nedir?
Nesnelerin interneti projelerini gerçekleştirmek göründüğü veya düşünüldüğü kadar basit değildir. Elbette bunları kolay bir biçimde tamamlamak için bazı yazılım, donanım ve platformlar vardır. Fakat en büyük ve genel sorun, platformlar arasında yazılımların çalıştırılması ve geliştirici ekipte bulunan üyelerin veri paylaşımıdır. Bunun önüne geçmek adına bazı uygulamalar da vardır. PlatformIO, bunlardan biridir. IoT projeleri geliştirmek için açık kaynaklı, yeni nesil entegre geliştirme ortamıdır. Bu sayede geliştiriciler gerek zamandan gerek iş gücünden kazanım sağlamaktadır. Dolayısıyla planlanan projeler çok daha işlevsel ve hızlı bir şekilde uygulamaya alınabilmektedir. Peki, PlatformIO nedir, özellikleri nelerdir ve ne işe yarar? Bu soruların yanıtını içeriğimizde keşfedebileceksiniz.
PlatformIO Nedir?
Oluşturulma amacı, IoT geliştirme projeleri içindir. Aynı zamanda açık kaynaklı bir ekosistem olarak da nitelendirilmektedir. PlatformIO, çalıştığı platformdan bağımsızdır. Bu sebeple de platformlar arası geçiş sağlanabilmekte ve farklı yazılım/donanımlar üzerinde kalındığı yerden devam edilebilmesine olanak tanımaktadır. PlatformIO, nesne tabanlı bir programlama dili olan Python ile yazılmıştır. Çapraz platform oluşturma özelliği sayesinde en küçük bilgisayarlardan(Raspberry Pi, BeagleBone gibi) diğer işletim sistemlerine değin çalışabilmektedir. Bununla birlikte Windows, Linux, MacOS gibi büyük çaplı işletim sistemlerinde hata giderici, yükleyici çerçeveler, derleyici ve diğer özelliklere sahiptir.
Python, PlatformIO için en temel gereksinim olduğundan, diğer ekip üyeleri ile proje paylaşımı sorunsuz bir şekilde gerçekleştirilmektedir. Keza bir örnekle de bunu daha iyi betimlemek gerek. Örneğin, Windows ortamında PlatformIO üzerinde projenizi geliştiriyorsunuz ve bu projenin %50’lik kısmını tamamladınız. Akabinde Linux işletim sistemine sahip olan diğer ekip arkadaşınızla bunu paylaştınız. Normal şartlarda işletim sistemleri farklı olduğundan hazırlanan uygulamanın görüntülenmesi veya üzerinde değişiklik yapılması pek de mümkün değildir. Fakat PlatformIO kullanıcıları için böyle bir durum söz konusu değil. Sonuç olarak Linux işletim sistemine sahip ekip üyesi, projeyi devraldığında uygulamalara kalındığı yerden devam edebilmektedir.
Ayrıca PlatformIO, 200’e yakın gömülü kart sistemini desteklemektedir. Bunun yanı sıra benzer şekilde desteklediği mikro denetleyiciler de bulunmaktadır. PlatformIO, yapısı itibari ile bir konsol uygulaması sunmaktadır. Ancak IDE entegrasyonu veyahut da metin düzenleyici ile de kullanılabilir. Bunlara örnek vermek gerekirse;
- Arduino,
- Eclipse,
- VIM,
- Sublime Text,
- Visual Studio…
Listesini gösterebiliriz. Tüm bunlarla beraber PlatformIO, bulut hizmeti üzerinde de derleme yapılmasını sağlamaktadır. Aynı zamanda kitaplık yöneticisi ile birlikte gelmektedir. Kütüphane içerisinde aranılan nitelikler yoksa bunu dış kaynaklardan bulmak için özelliklere de sahiptir. Öyle ki kategorilere, yazarlara ve anahtar kelimelere göre arama yapılmasını sağlayarak düzenleme yapılmasını da sağlar. Öte yandan PlatformIO’da bulunan kitaplık yapısının özellikleri şu şekildedir;
- Komut satırı arayüzü,
- Açık kaynak kitaplık kayıt API’si,
- Kitaplık tarayıcısı(library.json ile),
- Otomatik kitaplık güncellemesi,
- Kitaplık yönetimi…
PlatformIO Özellikleri
İşletim sistemlerinden bağımsız olması ve çapraz platformlarda çalışabildiğinden IoT teknolojileri için çok değerli bir entegre geliştirme ortamıdır. Bu yapısı ile de bünyesinde doğal olarak yüzlerce özelliği bir araya getirmektedir. PlatformIO özelliklerini listeleyecek olursak;
- Hata ayıklama,
- Uzaktan kontrol ve geliştirme,
- Gömülü sistem ve mikro denetleyicilerle uyumluluk(yüzlerce),
- Kütüphane yöneticisi,
- Seri port modülü,
- Aynı anda birden fazla projeyi yönetebilme, takip etme,
- Konfigürasyonlar için gerekli araçları indirme ve otomatik olarak kurma,
- Birçok SDK(yazılım geliştirme kiti) ile uyum…
Sayabiliriz. IoT projeleri için olmazsa olmaz diyeceğimiz yeni nesil bir entegre geliştirme ortamıdır.
PlatformIO hakkındaki düşüncelerinizi yorumlara yazabilirsiniz.