İçeriğe geç
Tüm yazılar

Bir Uygulama, Bir İş: Neden Süper Uygulama Yapmıyorum

Büyüyen her uygulama, özellik ekleyip tek bir platformda birleşme baskısı hisseder. İşte MFKAPPS'in altı küçük, tek işlevli uygulama olarak kalmasının nedeni.

MFKAPPS 3 dk okuma

Birkaç ayda bir bu önerinin bir versiyonunu alıyorum: “Bütçeyi, su takibini ve hatırlatıcıları tek bir uygulamada toplasan — kurulum başına daha fazla değer, tek giriş, daha fazla ekran süresi.” Soyut olarak kötü bir fikir değil. Sadece benim yaptığım bir şey değil, ve nedenleri yazmaya değer, çünkü listedeki her uygulama hakkında verdiğim kararların aynısı bunlar.

Birleşme baskısı gerçek, ve kullanıcıyla ilgili değil

Süper uygulamalar, biri oturup su tüketiminizi ve market listenizi aynı yerde takip etmenin en iyi deneyimini tasarladığı için ortaya çıkmaz. Telefonu elinde tutan kişi için değil, iş için iyi oldukları için ortaya çıkarlar. Altı kurulum yerine bir kurulum. Etrafında bir profil kurabileceğiniz tek bir giriş. Ana ekranda bir yer için yarışan altı uygulama simgesi yerine bir tane. Büyümeyle ilgili her metrik, her şey tek bir çatı altında yaşadığında iyileşir.

Bunların hiçbiri kötü niyetli değil. Sadece “bu, görevi bitirip telefonu bırakmana yardım ediyor mu” sorusundan farklı bir şeyi optimize ediyor. Bir finans uygulamasının üç sekme derinliğine gömülü bir market takip ekranı, bütçenizle aynı girişi paylaştığı için daha kullanışlı olmuyor — sadece bulması daha zor oluyor.

Birleştirilmiş bir uygulamanın kullanıcıya gerçek maliyeti

Gerçek bir süper uygulama açtığınızda işaret hep aynı: hiç dokunmadığınız özellikler için simgelerle dolu bir ana ekran, açtığınız şeyle ilgisi olmayan izin istekleri, ve navigasyon bir harita olarak çalışmayı bıraktığı için bir arama çubuğu. Uygulama sizi hatırlıyor, ama siz artık onu hatırlayamıyorsunuz — ne için olduğunu, şeylerin nerede yaşadığını, sıradaki isteğinin ne olacağını.

Daha ince bir maliyet de var. Alanları karıştırmak veriyi karıştırır. Bütçe takibi de yapan bir hatırlatıcı uygulaması, iki ilgisiz iş arasında bir “bildirimin” ne anlama geldiğine karar vermek zorunda kalır, ve cevap genelde kimsenin okumadığı kırk anahtarlı bir ayarlar ekranıdır. Kullanmadığınız her özellik hâlâ orada, hâlâ yüklü, hâlâ uygulamanın istediği ve sizin tam olarak kastetmeden verdiğiniz bir izin.

Yapana gerçek maliyeti

Süper uygulamalar dışarıdan değerlendirilirken bu kısım genelde atlanır, ama benim gerçekten içinde yaşadığım yarı bu. Ben tek kişiyim. Granyn’in harcamalarınızı takip etmesiyle Hydrame’in su içmeniz için hatırlatması birbiriyle hiç ilgili değil — farklı veri modelleri, farklı bildirim sıklığı, farklı uç durumlar, günün farklı saatlerinde farklı nedenlerle onları kullanan farklı insanlar. Bunları tek bir kod tabanına cıvatalamak eforu azaltmaz; çoğaltır. Su içme hatırlatıcısı için bir sürüm artık bütçe ekranına karşı da test edilmek zorunda, çünkü aynı ikili dosyayı paylaşıyorlar. Bir özellikteki çökme, mağazanın çökme raporlarında tüm uygulamayı çökertiyor gibi görünüyor, ve bu ikisi için de sinyali bulanıklaştırıyor. Kayıt akışı, tek bir şey için gelen birine ilgisiz iki şeyi anlatmak zorunda kalıyor.

Küçük, ayrı uygulamalar demek, birindeki bir hatanın tam olarak bir uygulamalık bir etki alanı olması demek. Pişman olduğum bir tasarım kararı bana altı ilgisiz özellik setinin ortak bir kabuğa cıvatalanmasından değil, tek bir yeniden yazımdan mal oluyor. Ve en önemlisi: Granyn için bir özellik isteğine, “uygulamaya” ait olup olmadığı tartışması olmadan hayır diyebiliyorum, çünkü Granyn’in tek olduğu bir şey var.

Gerçekten kullandığım test

Bir şey eklemeden önce basit bir soru soruyorum: bir yabancı, bir kez kullandıktan sonra, sadece simgesinden ve adından bu uygulamanın ne yaptığını anlatabilir mi? Cevap “aslında bir de—” diye başlıyorsa, o özellik başka bir uygulamaya ait demektir, ya da hiçbir yere ait değildir. OldSchool’un sadece ilaç hatırlatıcısı yapmasının, Stocky’nin sadece mutfağınızda ne olduğunu takip etmesinin, Mintly’nin sadece bir odaklanma zamanlayıcısı olmasının ve başka bir şey olmamasının nedeni bu. Başka ne yapabileceklerine dair fikrim olmadığından değil, her “bir de” uygulamanın gerçekten iyi olduğu tek şeye küçük bir vergi olduğu için.

Paylaşımın gerçekten mantıklı olduğu yer

Bunların hiçbiri uygulamaların birbirinden yalıtılmış inşa edildiği anlamına gelmiyor. Aynı tasarım dilini paylaşıyorlar, böylece aralarında geçiş yapmak yazılımı yeniden öğrenmek gibi hissettirmiyor. Aynı yerel-öncelikli, hesapsız mimariyi paylaşıyorlar, böylece gizlilik hikayesi her yerde aynı. Bildirim zamanlama ve yedekleme/dışa aktarma gibi şeyler için dahili kütüphaneleri paylaşıyorlar, çünkü bu bir tesisat, kullanıcının aralarında seçim yaptığı bir özellik değil. Paylaşmadıkları şey ise tek bir veritabanı, tek bir kayıt akışı, ya da uygulamayı açmak için tek bir neden. Bu çizgi — paylaşılan altyapı, ayrı amaç — stratejinin tamamı.

Bir süper uygulama, kolaylığın netliği yeneceğine dair bir bahis. Ben tersine bahis oynuyorum: beş saniyede tam olarak anladığınız bir uygulama, bir kez kullanacağınız beş şey daha yapan bir uygulamadan daha değerlidir.