← Blog · Geliştirme

Tek başıma 90 uygulamayı nasıl geliştirdim?

Emre Akin tarafından · Mobil Geliştirme

"Tek başına 90 uygulama mı? Bu nasıl mümkün?" Bu soruyu en çok duyduğum sorulardan biri. Cevap, süper bir yetenekte değil; tekrar eden işleri sistemleştirmekte ve gereksiz olan her şeyi acımasızca kesmekte yatıyor. Bu yazıda kullandığım üretim sistemini olabildiğince açık anlatmaya çalışacağım.

1. Her şey tekrar kullanılabilir parçalarla başlar

Yeni bir uygulamaya sıfırdan başlamıyorum. Yıllar içinde sürekli ihtiyaç duyduğum parçaları ayrı, bağımsız modüller haline getirdim: tema ve renk sistemi, ayarlar ekranı, çok dil desteği, reklam entegrasyonu, derecelendirme isteği, veri saklama katmanı ve temel navigasyon. Yeni bir proje açtığımda bu modülleri kopyalayıp bağlıyorum; böylece "her uygulamada olması gereken" sıkıcı kısımlar bir saatten kısa sürede hazır oluyor.

Bu yaklaşımın gizli faydası tutarlılık. Bir modülde bir hata bulduğumda veya bir iyileştirme yaptığımda, bunu tüm yeni projelere taşıyabiliyorum. Zamanla bu parçalar olgunlaşıyor ve giderek daha az sorun çıkarıyor.

2. Şablon zihniyeti

Geliştirdiğim oyunların büyük kısmı belirli "iskeletler" üzerine kurulu. Örneğin kart oyunlarım (Batak, Pişti, King, 101 Okey) ortak bir oyun döngüsü, bot mantığı ve skor sistemi paylaşır. Bir kez sağlam bir kart oyunu altyapısı kurduğunuzda, ikinci ve üçüncü kart oyununu çıkarmak çok daha hızlıdır. Aynısı masa oyunları, bulmacalar ve basit arcade oyunları için de geçerli.

İlk benzer uygulamayı yapmak haftalar alır. İkincisi günler, üçüncüsü saatler alır. İşte ölçeklenme buradan gelir.

3. Acımasız sadelik

Tek kişilik bir stüdyonun en büyük düşmanı kapsam şişmesidir. Her uygulamada "şunu da eklesem güzel olur" diyebileceğim onlarca özellik vardır. Ama bunların çoğuna hayır diyorum. Çünkü her yeni özellik test edilmesi, sürdürülmesi ve kullanıcıya anlatılması gereken yeni bir yük getirir.

Bunun yerine her uygulamanın tek bir net işi olmasını sağlıyorum. TapNote sadece hızlı not alır. Zikirmatik sadece sayar. Net Kontrol sadece bağlantıyı test eder. Bu netlik hem geliştirmeyi hızlandırıyor hem de kullanıcının uygulamayı anında anlamasını sağlıyor.

4. Yayın sürecini otomatikleştirmek

Bir uygulamayı kodlamak işin yarısı; mağazaya çıkarmak diğer yarısı. İkon üretimi, ekran görüntüleri, sürüm imzalama ve mağaza listesi gibi tekrar eden adımları mümkün olduğunca standartlaştırdım. Aynı boyut şablonlarını, aynı kontrol listesini her projede kullanıyorum. Böylece "bu sefer neyi unuttum?" stresini ortadan kaldırıyorum.

5. Mükemmeli beklememek

Belki de en önemli ders bu: bir uygulamayı "mükemmel" olana kadar bekletirsem asla yayınlayamam. Bunun yerine, kullanıcıya gerçekten değer veren sağlam bir ilk sürümü çıkarıp, sonra geri bildirime göre geliştiriyorum. Gerçek kullanıcıların elinde olan ortalama bir uygulama, bilgisayarımda bekleyen kusursuz bir uygulamadan kat kat değerlidir.

Sonuç

90 uygulama bir gecede olmadı; yıllara yayılan, her projede biraz daha iyileşen bir sürecin sonucu. Eğer siz de çok sayıda küçük ürün geliştirmek istiyorsanız, tavsiyem net: tekrar eden her şeyi sistemleştirin, kapsamı küçük tutun ve yayınlamaktan korkmayın.

Geliştirdiğim uygulamaların tamamını ana sayfadaki listede görebilir, başka konularda yazdıklarımı blog sayfasından okuyabilirsiniz.