Zafer Ayan - Mobile Developer @İSPER

Onur Karagünlü: Merhaba Zafer, öncelikle vakit ayırıp sorularımızı yanıtladığınız için teşekkür ederiz. Kendinizi kısaca bize tanıtabilir misiniz?



Zafer Ayan: Ben Zafer. 2014'ten beri profesyonel olarak yazılım geliştiriyorum. Son zamanlarda İSPER'de android uygulamaları ve JAX-RS web servislerini geliştiriyorum. Ayrıca web bilgim olduğu için gereken yerlerde .NET MVC ve ReactJS ile geliştirme yapıyorum. Bazen de uygulamalarda kullanılabilecek componentleri geliştiriyorum. Örneğin BootstrapOutlookMailView veya DatabaseFolderView gibi JS bileşenleri geliştirip aynı zamanda da GitHub üzerinden public'e açıyorum. Android tarafında da kredi kartı bilgilerinin verimli bir şekilde alınabilmesi için bir CreditCardView bileşeni yazdım. Deneysel olarak bazı web arayüzlerini de Android'de yazmaya çalışıyorum, TruckAnimator butonu da bunlardan biri. Bunun yanında web ve mobil uygulama arayüzlerini tasarlıyorum. Bu amaçla Inkscape ve Photoshop gibi araçlar kullanıyorum. Kısacası uygulama geliştirim sürecinde gerekli olabilecek pek çok yan alanda da uğraşıyorum diyebilirim. Boş zamanlarımda ise devnot.com'da ve medium hesabımda içerik üretip paylaşıyorum.


Pek çok farklı teknoloji kullanmışsınız. Biz daha çok mobil platformlar üzerine eğilen bir topluluk olarak mobil yazılıma başlama hikayenizi dinlemek isteriz.


Zafer: Mobil yazılım geliştirimine aslında üniversite dönemimde başladım. O zamanlarda Çanakkale Onsekiz Mart Üniversitesinde bana yol gösteren İsmail Kahraman hocam sayesinde .NET teknolojileri üzerinde geliştirim yapıyordum. Fiziksel olarak bir akıllı telefonum olmamasına rağmen Windows Phone üzerinde de kendi çapımda birkaç küçük uygulama geliştirmiştim. Bitirme projesi olarak da C# XNA'de TroiaBricks adında mobil bir oyun yapmıştım. Daha sonra profesyonel hayata geçiş yaptığımda .NET temelli olarak çalışmaya başladım. Halihazırda yazılmış bir Windows Phone uygulaması ve başka bir beacon temelli Android uygulamasının kod tarafının geliştirmelerini yaptım. Devamında ise tamamen Android geliştiricisi olarak görev almaya başladım. 



Peki mobil geliştirme yapmak için kullandığınız teknolojiler nelerdir?


Zafer: Mobil uygulama geliştirirken önceden şirket içinde Apache Cordova ile birkaç uygulama geliştirmiştim. Android uygulaması geliştirmek için ise Eclipse IDE kullanıyordum. Biraz meşakkatli ama iş görüyordu. Sonralarında Android Studio çıkınca "Tamam artık kullanmam gereken IDE bu!" dedim ve geçiş yaptım. Vektörel çizim için Inkscape kullanıyorum. PNG ve JPG dosyalarını PS ile düzenliyorum. Telefondan ekran görüntüsü alma ve sonrasında sıkıştırma işlemlerinde ffmpeg CLI'ından yararlanıyorum. Şirket dışında evde hobi amaçlı olarak React Native üzerinde çalışıyorum. VSCode ve iTerm kullanarak geliştirim yapıyorum. Bazen de React Native uygulamaları için Expo kullanıyorum.


Hem native hem Cross platformu yazdığınızı görüyoruz. İkisinin de artılarını eksilerini kıyaslayabilir misiniz? 


Öncelikle Native'de uygulama geliştirmenin cross-platform'da uygulama geliştirmeye göre daha sorunsuz ve stabil olduğunu söyleyebilirim. Geliştirime ortamı da aynı şekilde daha etkili oluyor. Fakat tek platforma uygulama çıkmak küçük ölçekli firmalar için çok da iyi bir durum değil. Cross platform uygulamaların performansı da yeterli seviyede olduğu için güzel bir alternatif oluşturuyor. 


Kendi düşüncem, kurumsal bir firmadaysanız ve büyük yazılım ekipleriniz varsa native uygulama geliştirimini izleyin. Daha küçük ölçekli firmalarda ise cross platform uygulama geliştirmeniz daha iyi olacaktır.