Astaga! untuk pelancong - kisah satu proyek rumah

- Katakan padaku, apakah kamu suka bepergian?


Saya yakin Anda akan menjawab ya, tidak mungkin bahwa dalam kasus lain Anda akan memperhatikan artikel ini :)


- Apakah Anda tertarik dengan topik pengembangan ponsel?


Di sini saya tidak begitu yakin lagi, dan saya harap artikel ini tidak mengalahkan Anda. Bagaimanapun, akan ada sejumlah detail teknis yang mungkin sedikit berguna bagi Anda, tetapi tidak perlu.


- Bagaimana dengan pengembangan ponsel lintas platform?


Saya tahu, saya tahu, holivar, tetapi apa yang harus dilakukan - kami akan berdebat dan melahirkan kebenaran.


Dengan satu atau lain cara, dalam kisah yang memilukan ini, topik-topik ini akan terpengaruh, jadi sekarang saatnya untuk menutup artikel jika Anda mengharapkan sesuatu yang lain;) Meskipun, saya akan mencoba menulis sehingga tidak hanya ada rincian teknis.


Jadi, sedikit latar belakang


Seperti yang saya katakan, saya suka bepergian. Bagi saya, selalu merupakan dorongan dan petualangan yang Anda inginkan dan tunggu. Selain itu, beberapa tahun yang lalu saya mencoba menggambarkan perjalanan saya dalam format esai, dan saya menyukainya. Bukannya saya menjadi semacam blogger populer - tidak, dan saya tidak punya tujuan seperti itu. Tapi saya membuat lalat untuk diri saya sendiri - gromozeka07b9.livejournal.com , setidaknya untuk menunjukkan kepada teman-teman saya. Semuanya hebat, pada awalnya - saya menyukainya, setelah pulang ke rumah, saya menghabiskan beberapa hari mencoba mengatur semua petualangan saya dalam bentuk beberapa cerita menarik. Tetapi, setelah beberapa waktu, saya menyadari bahwa saya hanya punya waktu untuk melupakan beberapa peristiwa menarik pada saat saya kembali, dan saya memutuskan untuk membuat catatan tepat di perjalanan. Di berbagai buku catatan elektronik, catatan, dll. Kehidupan yang disederhanakan ini sedikit, tetapi masih tidak nyaman, akibatnya, banyak waktu masih dihabiskan untuk mengumpulkan barang-barang ini menjadi sebuah cerita. Membuat cerita dalam bentuk saluran di Telegram membuat hidup sedikit lebih mudah, meskipun dengan masalahnya sendiri.


Lahirnya sebuah ide


Awalnya itu ... pizza. Begitu kami duduk dengan tim saya di restoran pizza Dodo, berbicara seumur hidup dan secara bertahap beralih ke membahas startup kecil yang akan membantu wisatawan menemukan pemandangan, rute yang menarik, menggunakan pencarian, bahkan menghasilkan semacam monetisasi. Namun, dalam proses diskusi, saya secara bertahap mengembangkan visi produk lain - lebih tepatnya, alat untuk pelancong yang membutuhkan alat untuk blog dan pembuatan catatan yang berfokus pada penggunaan pribadi. Saya merasa sakit, dan saya melihat cara untuk menyelesaikannya :)


Sebagai hasilnya, sebuah konsep muncul - sebagai permulaan, ini adalah aplikasi seluler yang memungkinkan Anda untuk membuat rute offline, menandai poin, menambahkan deskripsi, foto, membagikannya dengan pengguna aplikasi lain, dan juga di luar - ke berbagai Livejournal, Instagram, Facebook, dll. . Seharusnya dimungkinkan untuk bekerja secara offline, karena perjalanan tidak selalu terjadi di mana ada jaringan, tetapi pada saat yang sama harus dimungkinkan untuk menyinkronkan data ke awan. Bahkan nama yang berfungsi ditemukan - QuestHelper.


Ini adalah program minimum. Selain itu, ada hal lain yang saya minati. Saya tertarik pada pengembangan ponsel, dan saya benar-benar ingin mencoba membuat produk nyata di platform baru.


Sebenarnya, semua pikiran ini terlintas dalam pikiran pada suatu malam dan keesokan harinya kami mulai bekerja.


Beberapa kata tentang tim

Pengembangan ada pada saya.
Istri saya Olga bertindak sebagai manajer produk.
Desain oleh anak saya Klim.
Dan saran yang sangat berharga dari penasehat-anak perempuan Veronica :)


Untuk bisnis!


Keesokan harinya, pemikiran tentang aplikasi tidak meninggalkan saya. Layout antarmuka sudah ditarik di kepala dan fitur digergaji. Kenyataannya, tentu saja, lebih rumit. Untuk merumuskan setidaknya sesuatu, kami menghabiskan beberapa jam untuk merumuskan fungsionalitas dasar di atas kertas dan memvisualisasikan prinsip-prinsip navigasi dalam aplikasi, draft ini akhirnya ditransfer ke fluidui.com sehingga kami dapat bereksperimen dengan tata letak aplikasi. Ini adalah keputusan yang sangat benar, yang kemudian memungkinkan saya untuk menghemat banyak waktu - saya tidak begitu banyak tentang cairan, tetapi tentang fakta bahwa Anda perlu membuat prototipe antarmuka.


Tata letak memungkinkan saya untuk mengajukan tugas-tugas khusus kepada desainer kami dan tidak menjelaskan fungsi aplikasi pada jari saya, tetapi hanya menunjukkan tata letak dari mana semua ini jelas.
Sementara itu, solusi baru lahir di Visual Studio berdasarkan Xamarin.Forms - QuestHelper.


Kenapa Xamarin? Jika tertarik, lihat di bawah kucing

Jujur, untuk diriku sendiri, aku tidak melihat alternatif saat itu dan tidak melihat sekarang. Saya memiliki sedikit pengalaman dengan Javascript, dan saya tidak punya keinginan untuk mempelajari sesuatu seperti React Native. Dengan pengembangan asli, itu sama - saya adalah satu-satunya pengembang di proyek ini, untuk mempelajari Java terlebih dahulu dan kemudian Objective-C atau Swift berarti mengubur proyek, saya tidak punya cukup untuk itu.
Oleh karena itu, saya mulai melihat ke arah alat lintas platform untuk pengembangan seluler.


Saya sudah punya sedikit pengalaman dengan Xamarin. Android - Saya menulis penerjemah yang berfungsi sebagai obrolan, ternyata cukup nyaman, saya masih menggunakannya sendiri:
Ini kembali pada tahun 2016, ketika Xamarin bahkan dibayar dan itu menyebabkan masalah besar, terutama karena proyek ini awalnya hanya dikenali sebagai perkenalan, tanpa monetisasi.


Sekitar periode yang sama, Microsoft membeli Xamarin dan membuatnya gratis, setidaknya untuk skenario saya, yang membebaskan saya dari satu sakit kepala.


Seperti yang sudah saya katakan, saya awalnya berencana untuk membuat proyek baru di Xamarin. Bentuknya, setidaknya untuk berkenalan dengan teknologi dan memahami perspektif. Namun, tergoda untuk menjalankan satu kode pada banyak platform.


Jika Anda telah mendengar sedikit tentang Xamarin, situasinya seperti ini:


  • Ada pendekatan Xamarin.Classic (atau Xamarin.Native). Intinya adalah bahwa dalam pendekatan ini Anda mengembangkan logika bisnis umum dalam satu proyek (bekerja dengan database, layanan, dll.), Dan dalam masing-masing proyek UI asli yang menggunakan satu proyek dengan logika ini. Secara kasar, dalam solusi VS Anda memiliki tiga proyek:
    • BL (Logika bisnis umum untuk semua platform)
    • UI Android asli
    • UI iOs asli
  • Pendekatan Xamarin. Dalam pendekatan ini, Anda memiliki proyek bersama tidak hanya dengan logika bisnis, tetapi juga UI. Ini memaksakan batasannya pada UI, menjadi menyatu untuk platform yang berbeda, tetapi memungkinkan Anda untuk menggunakan formulir yang sama yang dijelaskan dalam XAML.

Kata demi kata, baris demi baris bug demi bug .


Jadi beberapa jenis aplikasi "halo dunia" lahir di Xamarin. Bentuk, yang pada awalnya tidak bisa melakukan apa-apa selain menunjukkan peta dengan poin dari basis data lokal. Secara bertahap, proyek itu semakin membuat saya terpesona - karena bukan hanya kesempatan untuk berkenalan dengan platform teknis, tetapi juga penggunaan praktik produk yang memungkinkan Anda untuk mencoba berpikir sebagai pemilik produk. Khususnya, itu adalah pengalaman yang baik ketika tim dan teman-teman saya berkumpul untuk rapat kecil dalam kerja bersama dan mencoba membuat Peta Perjalanan Pelanggan. Saya tidak akan mengatakan bahwa semuanya berjalan seperti yang saya inginkan, tetapi saya mendapat banyak pendapat dan pemikiran baru tentang topik pengembangan produk. Ternyata, orang-orang pada umumnya tidak terlihat sakit :)


Perhatian, menular!


Perlahan-lahan, antusiasme saya mulai ditransfer ke tim.


Sungguh luar biasa ketika, alih-alih menonton serial, seluruh keluarga berkumpul di dapur dan menggambar CJM, layar aplikasi, mempertimbangkan cara monetisasi, dan membentuk jaminan. Di salah satu malam ini, saya tidak ingat siapa pun, pikiran itu muncul di benak saya - nama QuestHelper agak membosankan, dan juga diarahkan pada pencarian yang kami pikirkan di awal. Beri nama baru!


Tetapi, praktik menunjukkan bahwa itu tidak sesederhana itu. Tetapi bagaimana jika Anda membuat slogan - mungkin itu juga akan membawa kita ke nama yang lebih cocok untuk konsep baru?


Akibatnya, pada keluarga Dewan komando memutuskan, untuk selanjutnya, slogan kami:


  • Saya pergi.
  • Saya berbagi.
  • Saya hidup.

Itulah mengapa GoSh dilahirkan ! (Ketika saya memiliki staf pemasar dan manajer merek, saya pasti akan memberi mereka tugas untuk muncul di mana di GoSh! Bagian dari "I live" :)


Kemudian versi logo muncul, berdasarkan gagasan ikon Bagikan:




Penggunaan praktis pertama


Pada Agustus 2018, saya tergesa-gesa Saya sedang menulis govnokod Saya mengembangkan fitur yang memungkinkan saya menggunakan GoSh! dalam kondisi nyata, dalam perjalanan ke Kamchatka. Yang paling penting yang saya butuhkan pada saat itu adalah kemampuan untuk membuat rute tanpa jaringan, menandai tempat-tempat menarik, menambahkan foto dan catatan teks ke tempat-tempat ini.


Komit terakhir sebelum keberangkatan dilakukan beberapa jam sebelum berangkat ke bandara. Itu satu drive lagi! Betapa sukacitanya dan kepuasan ketika dalam praktik saya menggunakan apa yang saya lakukan dengan tangan saya sendiri! Selama dua minggu perjalanan, saya membuat catatan di GoSh! , dan yang penting, menurut saya sangat nyaman. Tentu saja, ada beberapa tiang tembok - ada banyak kesalahan, dan pengalaman praktis pertama ditambahkan ke tumpukan produk dengan fitur-fitur baru dan banyak bug. Omong-omong, rute ini sekarang tersedia di GoSh! - Kamu bisa lihat sendiri.


Jadi apa itu GoSh! seperti itu dan bagaimana itu bisa berguna bagi Anda?


Sekarang gosh! adalah aplikasi seluler untuk platform Android, bekerja dengan layanan cloud untuk sinkronisasi data. Fungsi utama aplikasi adalah:


  • Pembuatan rute
  • Tanda Titik Rute
  • Menambahkan foto, audio, deskripsi teks di titik rute
  • Mengenali teks dari rekaman audio Anda melalui Yandex SpeechKit
  • Mengimpor poin ke rute dari Google Maps, Yandex map
  • Kemampuan untuk berbagi rute dengan pengguna GoSh lainnya !
  • Otorisasi baik milik sendiri maupun melalui Google
  • Sinkronisasi penuh data Anda dengan penyimpanan cloud

Ini saja memungkinkan Anda untuk menggunakan GoSh! untuk melakukan catatan perjalanan.


Dan, ngomong-ngomong, saya perhatikan sendiri bahwa saya praktis berhenti hanya mengambil foto di smartphone - saya sekarang mengambil foto hanya melalui GoSh! Ini bukan iklan yang banyak berbicara tentang kenyamanan untuk diri saya sendiri - Saya memarkir mobil di suatu tempat, menandai titik di rute pribadi "Parkir", sekarang saya tidak akan lupa :) Atau, misalnya - ketika mengunjungi rapat atau konferensi saya membuat rute, misalnya, "Agile days" - in Saya membuang semua yang menarik minat saya di konferensi, teks, audio, foto. Sekarang mereka tidak akan hilang di tumpukan material lain, dan jika diinginkan, saya akan membaginya dengan pengguna lain.


Lebih baik melihat sekali daripada mendengar seratus kali

Layar Unduhan Aplikasi:
gambar


Layar pertama instruksi untuk digunakan:
gambar


Contoh daftar rute:
gambar


Contoh daftar titik jalan:
gambar


Visualisasi rute:
gambar


Contoh menampilkan titik jalan:
gambar


Jadi apa selanjutnya?


Saya menyelesaikan sebagian masalah saya, tetapi saya mendapat ide bahwa mungkin gagasan perjalanan semacam itu akan menarik bagi orang lain, jadi akan lebih baik untuk mencoba mencari tahu apa yang dibutuhkan orang. Seperti yang ditunjukkan oleh komunikasi, tidak banyak orang yang tertarik untuk membuat catatan atau membuat rute, pada umumnya menarik bagi unit di lingkungan saya. Dan pada dasarnya, orang-orang tertarik mengklik foto itu dan meletakkannya di instagram nyaman mereka.


Karena itu, pada dasarnya tumpukan jaminan sekarang dibangun di atas hal-hal sosial, seperti:


  • Tentu saja, tambahkan ekspor rute ke Facebook / Instagram / VK, dll.
  • Tambahkan kemampuan untuk melihat rute tidak hanya di GoSh! tetapi juga melalui galeri di situs
  • Tambahkan fitur ke GoSh! temukan dan lihat rute yang diterbitkan oleh pengguna lain
  • Tambahkan komentar dan suka
  • Lokalisasi - menambahkan antarmuka dalam bahasa Inggris
  • Mungkin fungsi perencanaan rute yang lebih nyaman

Apa yang sedang terjadi sekarang?


Yah, selain fakta bahwa saya memutuskan untuk memberi tahu Anda sedikit tentang proyek ini, saat ini desainer permanen kami (anak saya Klim) sedang mengembangkan pendaratan di Tilda sehingga orang dapat menunjukkan sesuatu tanpa menginstal aplikasi, ditambah iklan kecil tentu tidak akan merugikan.


Beginilah tampilan pendaratan sekarang: Mendarat GoSh!
Jangan menilai dengan ketat, ini adalah pengalaman pertama kami :)


Saya berencana untuk menggunakan halaman arahan yang sama untuk melihat rute, bagi mereka yang tidak ingin membuatnya, tetapi hanya menonton - akan ada kesempatan seperti itu. Juga sekarang dalam proses pemrosesan layar titik - setelah beberapa bulan penggunaan praktis, menjadi jelas bahwa itu tidak nyaman di dalamnya.


Jadi apa yang telah kita pelajari selama setahun?


Yang pertama.


Dan yang paling penting - pasti ada seseorang yang akan "mengarahkan" proyek tersebut.


Dalam hal ini, ini aku. Ketika energi mengalir keluar dari saya, tidak ada yang bisa tinggal di rumah lagi di sudut, semua orang dipaksa untuk terlibat :) Ketika dia melepaskan saya sedikit, dia membiarkan semua orang keluar. Dan kami bekerja dengan periode naik dan turun seperti itu. Meskipun saya berterima kasih kepada keluarga saya atas bantuan mereka - sungguh, itu akan sangat sulit untuk satu. Saya juga secara berkala menderita dari kenyataan bahwa saya tidak bisa mencurahkan lebih banyak waktu untuk proyek, saya tidak punya cukup waktu, meskipun ketika saya mengerjakannya, saya hanya mendapatkan tinggi dan menikmatinya. Kadang saya bangun jam 5 pagi, sehingga sebelum jam 8 pagi (sudah waktunya untuk pekerjaan utama) melakukan sesuatu yang bermanfaat untuk dilakukan. Dan liburan 2 minggu di tempat di mana ada Internet - ini adalah kesempatan untuk merilis rilis malam :) Ketika Anda melihat hasil kerja Anda, dan tidak tertunda, tetapi sekarang Anda dapat menggunakannya - itu dikenakan biaya.


Yang kedua.


Pemahaman akan hal ini muncul secara bertahap. Pada awalnya, kami memiliki gagasan tentang level "pesawat ruang angkasa membajak bentangan Teater Bolshoi." Perlahan-lahan, mereka mulai mendarat, dan ketika sebuah produk minimal muncul sehingga Anda dapat "menyentuh" ​​- menjadi jelas betapa sulitnya mengembangkan produk tersebut. Ini benar-benar berfungsi - cari tahu kebutuhan pasar, kepedihan orang, temukan pesaing, pahami perbedaan Anda, dan jelaskan kepada hadirin ... Pada akhirnya, menarik minat orang untuk setidaknya menginstal aplikasi untuk ditonton sendiri - dan ini merupakan masalah, bahkan dalam lingkaran orang, belum lagi fakta bahwa orang asing menaruh sesuatu pada diri mereka sendiri, dan bahkan memberikan umpan balik. Tapi, bagaimanapun juga, terima kasih kepada banyak teman dan kerabat yang melakukan ini, tanpamu, aku mungkin sudah meninggalkan segalanya sejak lama.


Yang ketiga.


Saya sering mendengar - "jadi apa, Anda harus membuat MVP benar-benar minimal dan periksa di depan umum." Saya setuju. Satu "Tapi" - Anda perlu memahami dengan jelas, tetapi mengapa, apa tujuan Anda? Apakah Anda benar-benar ingin merilis produk yang populer, atau mungkin Anda menginginkan yang lain? Dan pengalaman saya menunjukkan kepada saya bahwa setidaknya satu tahun saya habiskan untuk tidak merilis produk nyata, tetapi untuk mengenal platform teknologi. Saya mencapai tujuan ini, dan sekarang ada pemahaman bahwa akan menyenangkan untuk memikirkan pengembangan, pada kenyataannya, dari suatu produk yang bermanfaat bagi orang-orang, dan bukan fitur lain yang hanya menarik bagi saya. Secara umum, saatnya untuk berpikir tidak hanya tentang diri Anda sendiri, tetapi juga tentang apa yang Anda butuhkan :)


Keempat.


Tim Orang yang berpikiran sama dibutuhkan dari siapa Anda bisa belajar, mungkin Anda bisa mengajar seseorang sendiri. Pada akhirnya, jika tim yang baik - Anda akan saling memotivasi untuk melakukan sesuatu. Dan dari sudut pandang praktis - misalnya, saya sering malu untuk melihat kode saya :) Awalnya ada tes, dan kode mencoba menulis lebih atau kurang akurat, tetapi, karena waktu sangat dekat, tes terbang terlebih dahulu, dan pada kualitas kode mulai palu. Jika ada lebih banyak pengembang dalam tim, otmazas ini tidak akan bekerja :) Dan tentu saja - tim, ini adalah ide-ide baru, pandangan baru tentang solusi.


Rincian teknis


Tidak ada filosofi, semua tentang kasus ini

Jadi, C #, Visual Studio 2017, Formulir Xamarin.


Pengembangan pada PC (di rumah) dan Macbook (saat bepergian), di studio poppy.
Saat ini, hanya perakitan untuk Android yang tersedia untuk umum di google play. Untuk iPhone, saya memang berkumpul di awal, tapi sekarang saya membuang ide ini - tidak ada waktu untuk membagi perhatian antara dua platform, karena bagaimanapun, Anda masih harus menyesuaikan UI, ditambah Anda menggunakan kontrol asli dalam beberapa kasus - misalnya, , bekerja dengan kartu, dan sebenarnya hal yang sama harus dilakukan untuk iPhone.


Saya menggunakan proyek Realm sebagai penyimpanan lokal (saya menggunakan SqlLite di Translate Helper, saya tidak bisa mengatakan sesuatu yang buruk - Realm muncul karena penasaran daripada kebutuhan praktis).


Adapun server. Server menyimpan semua rute dan file media yang digunakan pengguna saat bekerja di GoSh! , ini diperlukan, setidaknya untuk, pada prinsipnya, dapat berbagi rute. Server ditulis dalam .Net Core, awalnya dihosting di Azure, sementara saya berlangganan BizSpark, tetapi, beberapa bulan yang lalu, berlangganan berakhir, dan saya pindah ke hosting linux di reg.ru, karena praktis tidak ada yang perlu ditulis ulang. Dari pro - sangat meningkatkan kecepatan akses ke data, dan dari minus - kehilangan kemampuan untuk menggunakan Insigths Aplikasi. Database di server adalah MySQL.


Dan berapa banyak rute yang disinkronkan sinkronisasi ... sekarang versi ketiga sudah berfungsi, dan saya percaya akan ada yang keempat, sudah ada pemikiran tentang optimasi dan fitur baru.


Statistik kinerja aplikasi semuanya masuk ke appcenter.ms, karena gratis untuk level saya. Sangat nyaman untuk melihat kesalahan dan statistik tindakan pengguna dalam waktu yang hampir bersamaan.


Mungkin ini semua dalam teknologi, jika ada sesuatu yang menarik - tanyakan di komentar, saya akan memberitahu.


Apa yang ingin saya sampaikan pada Anda pada akhirnya.


Saya yakin cerita ini belum selesai.


Saya suka apa yang saya lakukan, saya harap Anda juga menyukainya! Meskipun saya mengerti betul, banyak dari Anda yang menginstal aplikasi akan mengalami kesalahan, ketidakkonsistenan, dan ketidaknyamanan di suatu tempat di antarmuka - ya, sayangnya, semua ini ada, proyek, pada kenyataannya, belum merangkak keluar dari MVP.


Teman-teman, saya akan senang mendengar pendapat Anda, mungkin bahkan cerita tentang masalah perjalanan Anda, yang, mungkin, cepat atau lambat saya akan menemukan solusinya :)
Dan jika Anda juga menambahkan pendapat Anda di Google Play - ya saya akan memeluk Anda! :)


, , — , , Xamarin. , , , , — , - !


: Facebook


!?

gambar


UPDATE ( ):
, !
, , , , ! ! , , , , . , . , , , — , , . , , , , : -. ? "" — . "" — . — , . , — . :)

Source: https://habr.com/ru/post/id458272/


All Articles