MVP oleh satu pengembang

Dengan kompetisi yang sangat besar dari produk-produk digital dan kecepatan tinggi untuk meluncurkan yang baru, perlu untuk dengan cepat dan murah menguji kelayakan ide-ide produk. Pada artikel ini saya akan berbicara tentang pengalaman membuat MVP di rumah, yaitu pada kenyataannya, oleh satu pengembang iOS. Tentang bagaimana saya mencari keseimbangan saat membuat MVP, tentang alat, kesulitan, dan solusinya. Jika Anda berencana untuk mengimplementasikan proyek pertama dalam pengembangan seluler atau ingin menambahkan cabang fungsionalitas baru ke produk yang sudah ada, maka artikel ini cocok untuk Anda.

gambar

Pertama mari kita ingat apa itu MVP.

MVP ( minimum viable product) adalah produk yang memiliki fitur minimal tetapi cukup untuk memuaskan konsumen pertama.

Tugas utama MVP adalah untuk mendapatkan umpan balik untuk merumuskan hipotesis untuk pengembangan lebih lanjut dan, secara keseluruhan, mengevaluasi kemanfaatannya. Itu itu harus semurah mungkin dalam hal kegagalan dan pada saat yang sama layak dalam skenario positif. Oleh karena itu, tugas utama dapat direduksi menjadi pencarian keseimbangan yang terkenal di setiap tahap perkembangan.

Fungsionalitas aplikasi




Jadi, saya perlu membuat aplikasi seluler dengan serangkaian fungsi dasar berikut:

  • otorisasi;
  • konferensi suara;
  • panel admin dan sisi server kecil;
  • pemuatan konten oleh pengguna;
  • tampilan konten yang disinkronkan;
  • analisis dasar.

Waktu dan Sumber Daya Manusia


Sumber daya minimum untuk proyek ini adalah satu pengembang iOS dan 2 bulan untuk pengembangan dan pengujian. Lebih seperti tantangan. Tapi jangan panik! Tentu saja, saya menggunakan pengembangan yang sudah jadi. MVP jelas tidak layak untuk mengembangkan perpustakaan Anda sendiri. Jadi, kami meletakkan beberapa hari pada pemilihan solusi siap pakai dan proyek sumber terbuka yang diperlukan.

Rancangan


Salah satu hal yang kurang jelas dari set minimum untuk MVP adalah desain. Tampaknya baginya sudah cukup untuk membuat daftar nama-nama layar dan apa yang menjadi tanggung jawab mereka. Namun pada kenyataannya, antarmuka yang dirancang dengan cermat secara signifikan mempercepat proses, memungkinkan pengembang untuk menyingkirkan banyak ketidakpastian dalam pekerjaan. Pengembangan desain pada tahap awal memberikan pemahaman yang lebih jelas tentang aliran pengguna, memungkinkan Anda untuk menghapus yang tidak perlu dan berkonsentrasi pada fungsionalitas yang memadai minimal untuk implementasi pertama proyek.

Tentu saja, fokusnya tidak boleh bergeser ke animasi yang kompleks, tetapi kesan pertama hanya dapat dibuat sekali! Oleh karena itu, antarmuka yang sederhana namun menyenangkan dan tutorial intuitif adalah yang kami butuhkan.

Dalam kasus saya, desain akhir aplikasi hampir siap untuk memulai pengembangan.

Arsitektur


Mungkin mudah untuk menebak bahwa saya sedang mengerjakan klien iOS, dan ini adalah bagian yang perlu disimpan dan dikembangkan lebih lanjut dalam proyek ini. Oleh karena itu, kami meletakkan arsitektur yang solid dan memilih bagian-bagian yang sangat layak dalam modul yang akan diganti pada tahap pengembangan selanjutnya.

Berdasarkan persyaratan ini, juga jelas bahwa aplikasi tidak hanya membutuhkan klien, tetapi juga logika dasar di backend. Itu Anda perlu otorisasi, logika bergabung dan keluar dari mereka, pembentukan dan pengelolaan konten, mengirim pemberitahuan push.

Cari solusinya


Salah satu alat yang diperlukan adalah database cloud. Untuk ini, saya membandingkan beberapa opsi yang paling populer.



Dari tabel di atas, jelas bahwa Firebase adalah solusi terintegrasi yang sangat baik dari Google, yang mampu memenuhi sebagian besar kebutuhan aplikasi yang dikembangkan. 

Solusi semacam itu memungkinkan Anda menyimpan semua kontrol di satu tempat: akun pengguna, daftar kamar dan pengaturannya, analitik, dan informasi tentang kerusakan. Dan dalam hal ini, Anda juga dapat mengelola kamar dan kontennya melalui panel admin Firebase - sangat nyaman. Pada titik tertentu, Anda bahkan mungkin berpikir bahwa ini adalah iklan, tetapi saya sangat menyukainya dan, yang paling penting, seperangkat alat ini membantu.

Selain itu, layanan ini gratis (tunduk pada batasan), dan untuk MVP mereka harus cukup dengan margin. Dokumentasi yang bagus, sudah ada banyak artikel dan tutorial di semua layanan, hingga tutorial video Anda sendiri di YouTube - mereka tidak meninggalkan peluang untuk tidak disortir.

Sebagai hasilnya, dari Firebase saya mengambil:

  • otorisasi 'Firebase / Auth';
  • Basis data cloud 'Firebase / Firestore';
  • backend 'Firebase / Fungsi';
  • Penyimpanan 'Firebase / Penyimpanan'
  • analytics 'Firebase / Analytics';
  • Laporan Kecelakaan Crashlytics.

Ini adalah apa yang tampak seperti otorisasi:



Untuk tugas yang diberikan, otorisasi anonim agak disederhanakan, ketika pengguna hanya diberikan ID unik.

Ini adalah bagaimana pengaturan pemberitahuan-push pada klien terlihat:



Ini akan mengambil hanya beberapa baris. Anda perlu berlangganan ke Topik tertentu, yang, pada gilirannya, mengirimkan pushback dari belakang.

Beginilah cara mengirim ke TypeScript (JavaScript) melalui Firebase SDK seperti:



Yang tersisa hanyalah menemukan solusi murah untuk konferensi suara, tetapi di sini tidak terlalu jelas. Firebase, sayangnya, tidak dapat mencakup fungsi ini. 

Persyaratan utama adalah cross-platform dan integrasi yang mudah. Berikut ini adalah beberapa pilihan alat serupa.

Perhatian menarik Jitsi- Ini adalah proyek sumber terbuka dengan dukungan untuk iOS / Android, obrolan audio dan video di WebRTC. Untuk memulai, hosting gratis mereka sudah cukup, dan di masa depan Anda dapat pindah. Juga, konferensi itu sendiri dapat diuji secara langsung dalam versi web, yang sangat menyederhanakan debugging panggilan.



Jitsi memiliki integrasi yang sangat sederhana dan peluncuran konferensi itu sendiri. Tetapi setelah dimulainya panggilan, konferensi dikelola langsung melalui Webview, Anda hanya dapat mengakhiri percakapan secara terprogram. Pada tahap memilih alat ini, tidak ada pemikiran bahwa menggunakan metode yang tersedia dari kode, misalnya, tidak mungkin membuat mute / unmute. Oleh karena itu, saya harus memperbaiki dan menambahkan metode ini ke perpustakaan, serta mengkonfigurasi interaksi dengan kontrol. Saya juga harus mengubah beberapa parameter untuk diri saya sendiri. Tentu saja, butuh waktu sedikit lebih lama - butuh satu minggu ekstra, tetapi masih beberapa kali lebih sedikit daripada yang dibutuhkan untuk menulis keputusan Anda. 

Ringkasan


Setelah satu setengah bulan, aplikasi sudah siap, kami menambahkan analitik yang diperlukan untuk mengukur indikator produk yang menarik. Diperlukan dua minggu untuk pengujian dan perbaikan selanjutnya. Dengan demikian, pengembangannya memakan waktu 2 bulan, sesuai rencana. Saya perhatikan bahwa walaupun pada proyek kecil tampaknya Anda masih dapat memperbaiki sesuatu, cobalah untuk menemukan solusi yang lebih baik. Keinginan ini menjauhkan dari tugas utama MVP.

Sayangnya, perusahaan tidak menerima metrik yang diperlukan, dan ini berarti penutupan proyek. Tapi ini adalah salah satu hasilnya: kami menguji hipotesis, dan yang paling penting - cepat dan murah.

Dan sekali lagi, saya akan mengingatkan Anda tentang poin utama yang perlu diingat ketika mengembangkan aplikasi MVP untuk iOS:

  • menghemat segalanya, tetapi tidak pada kualitas;
  • desain yang sudah jadi akan sangat mempercepat prosesnya;
  • MVP ;
  • .

All Articles