Bağımsız ürün geliştirme serimin ikinci yazısı

Önceki yazıda, bir iOS geliştiricisinin bakış açısından ihtiyaç belirleme, bağımsız uygulama geliştirme ve yayımlama sürecinde kullanılan kaynakları anlattım. Kaynaklar kısıtlı olduğundan yalnızca Apple'ın App Store'unda sunulan yardımcı uygulamalar geliştirebiliyordum.

Bu yazı, farklı platformlarda çalışan tam özellikli bir ürünün geliştirilmesini, karşılaşılan sorunları ve çözümlerini ele alıyor. Bir WeChat resmî hesabı, mini program ve uygulamadan oluşan eksiksiz ürün ekosistemini adım adım nasıl kurduğumu paylaşacağım.

1. Ürün hedefleri

Geniş anlamda ürün hedefi, ürünün sunduğu değerdir. Bir kullanım senaryosu olsa bile, değeri olmayan, para kazanamayan ve çok az kullanıcısı bulunan bir ürünün var olmak için pek nedeni yoktur.

Ya da daha genişten, ürün vizyonundan başlayabiliriz…

Durun. Henüz bunların hepsini düşünmeyin; yoksa ürününüz sonsuz hayallerinizin ötesine hiç geçemeyebilir.

Kaynaklar, insan gücü ve yatırım sınırlıyken hedefimiz netleşir: ürün hangi sorunları çözmeli veya hangi işlevleri sunmalı?

Örneğin File Manager'ı yaparken MVP'nin net bir hedefi vardı: telefon ile bilgisayar arasında dosya aktarmak.

MVP tamamlanınca doğal olarak başka gereksinimler ortaya çıktı. Bazıları kendi ürün planlarımdan, daha fazlasıysa kullanıcı geri bildirimlerinden geldi:

  • 1.0.0 Telefon ile bilgisayar arasında dosya aktarımı
  • 1.1.0 Görsel, video ve ses dosyalarını önizleme veya oynatma
  • 1.2.0 Dosyaları gruplama, taşıma, silme, sıkıştırma ve paylaşma
  • 1.3.0 Oynatıcıyı iyileştirme
  • 1.4.0 Güvenlik doğrulaması ekleme: desen parolaları ve biyometri
  • 2.0.0 Uygulama içi satın almalar ekleme
  • 2.1.0 Belge tarama ekleme
  • …

Özgün File Manager ekran görüntüsü: dosya gezinme ve yönetim özellikleri

Özgün File Manager ekran görüntüsü: ek dosya araçları ve arayüz

Bir hedef seçin. Büyük olması gerekmez ama uygulanabilir olmalıdır. Her seferinde tek bir noktaya odaklanın ve yanlış görünse bile devam edin; bitirmeden yanlış olduğunu nasıl bilebilirsiniz ◔ ‸◔? Bitirin, sonra değerlendirin.

2. Ürün prototipleri

Önceki yazıda birçok prototipleme aracı denediğimi ve prototipi tasarlamak için geçen sürede ekranları xib ile oluşturabileceğim sonucuna vardığımı söylemiştim.

Burada kendimle çelişeyim ,,Ծ‸Ծ,,

Sonrası için bir planınız olmadan, yalnızca bitirip yayımlamayı hedeflediğiniz kişisel bir yardımcı uygulama yaparken böyle düşünmeniz anlaşılır.

Ürün geliştikçe, prototip veya plan olmadan her adımda bir sonrakini düşünmek gelecekteki geliştirmede ciddi sorunlara yol açar. Prototip tasarlamak aslında ürünün mantığını düzenleme sürecidir.

İşte birkaç prototipleme aracı. Şu anda en sık kullandığım MockingBot.

3. Proje yönetimi

Bir iOS uygulamasını bağımsız olarak geliştirip yayımladıktan sonra ciddi bir sorun fark ettim: proje yönetimi kavramına sahip değildim. Zaman bulunca veya aklıma gelince çalışıyor, üşenince hiçbir şey yapmıyordum.

Kendi tasarlayıp geliştirdiğim ürünüm olduğu için böyleydi. MVP'nin muhtemelen ödeme yapan kullanıcısı yoktu; dolayısıyla onlara karşı sorumluluk hissetmiyordum.

Bu, projeyi ciddi biçimde yavaşlatır. Uzun süre plansız çalışmak projeyi tamamen bitirebilir bile.

İş yerinde birkaç yıl sürüm yinelemelerini yönettikten sonra proje yönetimi araçlarının kişisel projelerde de işe yaradığını gördüm. Net ürün hedefleri ve mantıksal olarak tutarlı bir prototip olunca işi görevlere bölmek kendiliğinden gelir.

Proje yönetimi için coding.net kullanıyorum; kaynak kodunu da barındırabiliyor.

Özgün proje yönetimi ekran görüntüsü: işin ayrı görevlere bölünmesi

Görevleri saatlerle ölçülen parçalara bölün. Bu, yönetimi kolaylaştırır ve test senaryolarını yazmaya yardım eder. Şimdiki alışkanlığım, kodlamadan önce test senaryolarını tamamlamak. Bu gereklidir.

Prototip ürün mantığını, test senaryolarıysa uygulama ayrıntılarını düzenler. Eksiksiz test senaryoları bizi doğru iş mantığına ✅ yönlendirir ve birçok iş mantığı hatasını ❌ önler.

4. Teknoloji seçimi

Şu ana kadar yaptıklarımızın hepsi hazırlıktı; geliştirmeye başlamadık. Temel zorluk, tek geliştiricinin ben olmam ve buna rağmen WeChat resmî hesabı, mini program ve uygulamadan oluşan eksiksiz ekosistemi kurmak istemem.

Mini program, iOS ve Android geliştirme becerileri gerekir. Bir programlama dili öğrenmek o kadar zor değildir ama aynı iş mantığını üç kez uygulamak üç kat emek demektir. Bu açıkça gerçekçi değil.

Normalde birden fazla platforma hizmet vermek için webi kullanabilir, hatta uygulamadan vazgeçip resmî hesap ile mini programa odaklanabiliriz. Ürün ihtiyaçlarının hızla doğrulanması gereken erken aşamada bu oldukça makul bir yaklaşımdır.

Kısa bir arama, birçok platformlar arası teknoloji olduğunu gösterir. Uygulama ve mini programı üç platformda tek kod tabanıyla oluşturmak için Uni-App kullanabiliriz. Ön yüzde Vue.js çatısını kullanır; iOS ve Android desteğini Weex sağlar.

Kişisel ürünler veya küçük ticari ürünler için yeterlidir.

5. Veri yönetimi

Mini program ve uygulama yaklaşımı netleşince bir başka kritik soru kalır: veriler nerede tutulmalı?

Bir yardımcı araç için verileri uygulamada yerel olarak saklamak yeterlidir. Peki hedef, eksiksiz bir kullanıcı sistemi olan bilgi platformu, hatta kullanıcıların içerik ürettiği daha karmaşık bir topluluksa?

Uni-App kendi uniCloud hizmetini sunar. Sunucu geliştirmesi JavaScript ile yapılabilir; mini programlar ve uygulamalar bir alan adı olmadan sunucuyu kullanabilir.

Ben farklı bir yaklaşım seçtim: verileri sunucusuz platform LeanCloud'da barındırmak. Mini program ve uygulama, LeanCloud'un JavaScript SDK'sıyla barındırılan veritabanına erişir.

Geliştirme planı günde 30.000 ücretsiz API isteğini destekler ve SMS hizmetleri de sunar. Bu, kullanıcı sistemi kurmak, kullanıcı verilerini yüklemek ve platform verilerini almak için yeterlidir.

İstekler geliştirme kotasını aştığında, ürününüz belli ölçekte bir kullanıcı kitlesine ulaşmış demektir. O noktada trafikten gelen gelirin ticari kullandıkça öde planını karşılayacağını düşünüyorum.

Veri bulmanın kurnazca bir yolu

Hava durumu veya bilgi uygulaması yapmak istiyorsanız ama hava durumu ya da haber verileriniz yoksa ne yaparsınız?

Çin'de birçok API pazarı var, örneğin:

Alibaba Cloud API Pazarı

Tencent Cloud API Pazarı

Baidu Cloud API Pazarı

Juhe Data

EastApi

ve diğerleri.

Bu pazarlar hem ücretli hem ücretsiz API'ler sunar.

  • Ürününüzün trafikten gelir elde etmek için iyi bir yolu varsa ücretli API'leri değerlendirin.

  • Yoksa ücretsiz kotaları kullanmayı düşünebilirsiniz. Ama 100 istekli deneme hakkı test sırasında tükenebilir. O zaman ne olacak?

LeanCloud sunucusuz veritabanını bir API pazarıyla birleştirebilirsiniz. Örneğin günlük hava durumu için önce veritabanını sorgulayın. Veri yoksa pazardan isteyin, sonra veritabanına kaydedin.

Peki 100 istek yine de tüm şehirlere yetmezse? Ücretsiz fırsatlardan yararlanma ruhunu koruyup birkaç platforma başvurun.

6. Yayımlama ve işletme

Bu noktada mini program, uygulama ve sunucunun geliştirmesini bitirdik. Nasıl yayımlayacağız?

Mini programlar nispeten kolaydır: WeChat Resmî Hesaplar Platformu'ndaki yönergeleri izleyip mini program için başvurun.

iOS'ta yayımlamak ücretli bir geliştirici hesabı gerektirir. Bu bir engeldir ama uzun vadeli işletme için Apple'ın geliştirici sitesinden başvurmanızı öneririm. Başvuru artık kolay: iPhone'a Developer uygulamasını indirip oradan ödeme yapın.

Android dağıtımı için yazılım telif hakkı tescili gerekir. Normal bir başvuru 1-2 ay sürebilir; isterseniz işlemi yürütmesi için üçüncü taraf bir aracıya ödeme yapabilirsiniz.

Ücretsiz fırsatlar konusuna devam edelim: uygulama ve mini programdaki tanıtım alanlarının görsel, ses ve videolarını nerede saklayabiliriz?

Resmî hesabın medya kütüphanesi bu sorunu çözebilir. Görsel, ses ve videoları orada saklayıp özgün URL'lerini alın; uygulama ve mini program bunlara erişebilir.

7. Gelir elde etmek

Trafikten gelir elde etmenin basit bir yolu reklamdır.

Ancak platformların yayıncılar için uygunluk koşulları sürekli yükseliyor; bu da bağımsız geliştiriciler için reklam entegrasyonunu zorlaştırıyor.

  • Uni-App tek tıkla entegrasyon sunar; belgelere bakın.

  • Resmî hesap bir kitle oluşturduktan sonra yazıların içindeki reklam alanlarını etkinleştirebilir.

  • Bir mini program 1.000 tekil ziyaretçiye ulaştığında yayıncı olarak gelir elde etme özelliğini açabilir.

8. Son düşünceler

Başta anlattığımız WeChat resmî hesabı, mini program ve uygulama ekosistemini artık tamamladık.

Bu adımları izleyerek üç ürün için bu süreci tamamladım. Denemek için kodları tarayın:

Tarihsel ürünlerin özgün QR kodları; kullanılabilirlik değişmiş olabilir