Dilerseniz GitHub’ta yer alan başarılı ve popüler yerli repo’ları incelediğimiz yazı dizimizin (Yerli GitHub) tamamına göz atabilirsiniz.
Apple tarafından geçtiğimiz yıl bu dönemlerde lanse edilen Swift üzerinde yazılan JSONHelper, yazılım geliştiricilerin JSON verisini kolayca kullanabilmelerini amaçlıyor. Teknik bir örnek ile açıklamak gerekirse; JSONHelper ile { "person": { "birthday": "10-06-1990" } } şeklinde olan bir JSON verisini, 'birthday' isimli 'NSDate' 'property'si olan bir 'Person' 'class'ına veya 'struct' 'instance'ına kolayca dönüştürebiliyorsunuz.
Barış Şencan tarafından WWDC 2014 döneminde geliştirilmeye başlanan JSONHelper, şu an GitHub üzerinde 600'ün üzerinde yıldız toplamış, 44 kere de 'fork' edilmiş durumda. Kütüphanenin hikayesi ise Şencan'ın Swift kullanarak geliştirdiği bir uygulamada duyduğu ihtiyaca dayanıyor.
JSONHelper'ı Şencan'ın kendi anlatmıyla tanımlamak gerekirse: "JSONHelper'ı iOS veya OS X projenizde import ettiğinizde <— operatörünü ve 'deserializable' protokolünü kullanabilir oluyorsunuz. İlk önce operatörden bahsedeyim; bu operatör x <— y şeklinde kullanılabiliyor ve zincirlenebiliyor da x <— y <— z şeklinde. Yaptığı şey ise sağındaki değeri alıp solundaki değişkenin türüne bakıp değerin türü çok farklı olsa bile onu çevirip soldaki değişkene atamaya çalışmak.
Yukarıdaki doğumgünü örneğinden gidersek; diyelim ki x diye bir Person türünden değişken tanımlamışsak, x <— "{ \"person\": { \”birthday\": \"10-06-1990\" } }" yazarak bir stringi Person instance’ına kolayca çevirebiliyoruz."
MovieLaLa bünyesinde çalışanı Barış Şencan tarafından geliştirilmeye başlanan JSONHelper kütüphanesi şu an MovieLaLa iOS uygulaması ve TypetalkKit isimli bir başka kütüphanede kullanılıyor. Bunun dışında günde ortalama 100'ün üzerinde ziyaret alan JSONHelper, yine ortalama 10 kere de 'klonlanıyor'. Şu an Swift dilinin gelişimine uygun olarak ayrı bir branch üzerinde tekrar yazılan JSONHelper, planlanana göre yeni versiyon sonrasında 'serialization' desteğine de kavuşacak.
'Sadece GitHub için değil, hayatta başarılı olmak için en önemli olan şey değişimi benimsemek'
Kütüphanenin yaratıcı Şencan'a GitHub üzerinde popüler olmanın püf noktalarını sorduğumuzda kendisi genel bir yorumda bulunmayı tercih etti ve şöyle konuştu: "Bence sadece GitHub’da değil hayatta başarılı olmak için en önemli olan şey değişimi benimsemek, yakından takip etmek, ve içinde bulunmak. Ayrıca kendimden yola çıkarsam; bu yazıyı okuyan tüm geliştiricilere GitHub’daki trending repo'ları, ProductHunt’ı, feedly ile bir sürü teknoloji haber sitesini, ve Facebook gibi şirketlerin engineering bloglarını her gün takip etmelerini öneriyorum."
Şencan'ın teknik anlamdaki tavsiyeleri ise şu şekilde: "Bana kalırsa kodun tamamına dokümantasyon yazmak, yazılan her şeyin testlerinin olması, kod stiline ve okunurluğuna dikkat etmek ve mümkün olduğunca self-documenting kod yazmak önem seviyesi olarak en üst yerlerde tutulması gereken şeyler. Ayrıca git’i ve GitHub’ın issue, pr, vb sistemlerini doğru kullanmak da çok önemli, çünkü tüm bu özellikler proje yönetimini oldukça kolaylştırıyor."
İlham alacağınızı umduğumuz ve 'yerli' geliştirilerin elinden çıkan açık kaynak yazılımlar ve bu yazılımların yaratıcıylarıyla sizleri buluşturmaya devam edeceğiz.