Kisah bagaimana mereka mencari di SDK hackathon, tetapi mereka mengumpulkan sendiri

Di kerajaan Far Far Away ... Saya memulai kisah saya tentang hackathon di Wrike karena Hackathon seperti dongeng: para penggemar berkumpul untuk menghidupkan ide-ide mereka. Sebuah ide dirilis, seperti panah yang luar biasa, dan kemudian dapat jatuh di halaman boyar, atau dapat menghilang di rawa-rawa kehidupan sehari-hari. Dan, seperti dalam dongeng, itu selalu menyenangkan. Lagipula, tidaklah mudah untuk mengumpulkan tim dalam waktu yang sangat singkat, dan membuat produk dari sebuah ide, dan bahkan menunjukkannya sehingga orang jujur ​​terkejut.

Cyril

Tapi serius, saya ingin berbagi pengalaman berpartisipasi dalam hackathon, di mana kami mengembangkan augmented reality (AR) kami. Saya akan memberi tahu Anda tentang bagaimana kami mencoba menemukan AR SDK yang sudah jadi untuk tugas kami, tetapi tidak bisa. Akibatnya, mereka memutuskan untuk menulis AR sendiri dan ternyata.

Pepatah


Saya sangat suka hackathon: Saya berpartisipasi dalam beberapa, saya harus melakukannya sendiri, dan jika mungkin saya akan ambil bagian.

Mencari kebahagiaan

Hackathon sering dipegang oleh organisasi tertentu, dan ini berfungsi untuk merek SDM perusahaan. Sasarannya bisa berbeda: cerita tentang perusahaan atau produk, mempekerjakan berbagai tingkat agresivitas, mengorganisir komunitas tematik, mencari ide-ide segar ( terlepas dari pasukan ahli produk Anda sendiri, dapat berguna untuk mendapatkan banyak ide dari pemimpi dengan pandangan yang jelas tentang area subjek ), dll. d.

Bagi peserta, ini adalah kesempatan untuk berkenalan dengan perusahaan, karena sering kali hackathon adalah cerminannya, dan dari situ orang dapat menarik kesimpulan tentang dapur internal. Untuk memahami proses di perusahaan, Anda dapat melihat bagaimana ia mengatur hackathon: apa saja batasan untuk proyek yang berpartisipasi dalam hackathon ( ruang lingkup tugas, bidang studi, teknologi, alat, dll. ); tingkat acara; kriteria dan transparansi bagian kompetitif; wasit - komposisi dan kualitas; apa aturan dan metode untuk membentuk tim. Secara umum, perusahaan dibagi menjadi mereka yang melakukan hackathon ( internal atau publik ) dan mereka yang tidak. Saya lebih suka mereka yang menghabiskan, karena ini adalah perusahaan yang lebih terbuka.

Saya sendiri pergi ke hackathons bukan untuk kemenangan, tetapi untuk partisipasi. Saya bertanya-tanya:

  • Coba teknologi baru. Di satu "makanan" hackathon, kami mengambil Flutter , dan menulis aplikasi untuk ios dan android. Meskipun tidak ada dari kami yang pernah mencoba Flutter sebelumnya, kami tahu bagaimana cara Dart .
  • Untuk mengenal dan bekerja dengan orang-orang baru , maka setelah salah satu hackathon “kota”, saya memanggil kaki tangan proyek hackathon untuk bekerja di tim saya untuk pekerjaan utama, yang tidak pernah saya sesali. Hackathon adalah cara yang bagus untuk menguji kawan dalam aksi.
  • Untuk melakukan sesuatu yang benar-benar saya butuhkan sendiri. Pada hackathon internal, mereka melihat aplikasi, yang kemudian digunakan dalam pekerjaan.
  • Hanya dapatkan emosi positif dari penciptaan. Saya sangat suka suasana hackathon!

Oleh karena itu, saya senang berpartisipasi dalam wrac hackathons ( tahun ini adalah hackathon internal ketiga ), di mana kami membuat dan membuat wrike lebih baik: beberapa proyek hackathon sebelumnya sudah hidup dalam produk kami, dan beberapa ada di tumpukan tim. Skala ini juga mengilhami, meskipun fakta bahwa hackathon bersifat internal, sekitar 30 tim direkrut ( lebih dari 100 orang ) - semuanya dengan ide-ide keren yang segar.

Di hackathon 2018, saya memutuskan untuk mencoba bekerja dengan AR . Di MVP, saya ingin membuat tugas wrike ( nama, status, artis, dll. ) Ditampilkan di layar ponsel ketika Anda mengarahkan kode grafis dengan pengidentifikasi tugas yang dienkripsi di dalamnya, dan juga menambahkan kemampuan untuk mengubah status dan menetapkan / menghapus tugas dari diri Anda sendiri. Ada ide, ada hackathon, tim juga tidak terlibat. Pada hari yang ditentukan, semuanya berbalik.

Aku bertanya pada ash


Saya khususnya tidak mempersiapkan hackathon dalam hal mengatur lingkungan ( mencari SDK dan kerangka kerja; menginstal perangkat lunak; mengonfigurasi, dll. ), Menulis kode di muka, dll., Tetapi hanya mengerjakan ide, fitur, memikirkan apa yang harus dilakukan dalam urutan apa dll. Oleh karena itu, tim berkonsultasi dan memutuskan bahwa kami akan menulis di Jawa (mereka menulis secara native untuk Android ), dan ada hipotesis bahwa mungkin ada banyak perpustakaan AR siap pakai. Rencana kami: ambil SDK yang nyaman, tambahkan Wrike API ke dalamnya, dan kemudian fokus pada penulisan logika aplikasi kita. Jadi, tugas pertama kami adalah menemukan Java AR SDK yang nyaman, yang memungkinkan Anda untuk:

  • Gambar sesuatu di permukaan virtual yang diberikan.
  • Integrasikan / sudah berisi pemindai elemen grafis dinamis ( barcode, QR, dll .).
  • Bekerja dengan ambang batas rendah ( kita berada di hackathon, kita harus cepat ): ada demo, ada dokumentasi, ada versi gratis / percobaan.

Sepertinya tugas yang cukup sederhana. Dan kami mulai memilah-milah pilihan berdasarkan artikel seperti " Top Augmented Reality SDK pada tahun 2018 "

Matahari, Bulan, Angin

ARCore dari Google


Pertama, kami melihat Google. Mereka membuka " Mulai Cepat ", melakukan segalanya sesuai dengan instruksi, meluncurkannya dan, lihatlah, semuanya berfungsi: Android muncul di meja saya, yang juga dapat dipindahkan. Perasaan bahwa kami telah menemukan "dasar" untuk aplikasi kami. Tetapi kemudian kekecewaan terjadi, pengenalan gambar tidak berfungsi seperti yang kita butuhkan: hanya ada satu gambar, gambar itu harus terlihat jelas, dan itu harus dari database gambar yang diketahui sebelumnya ( dan kita harus memiliki penanda unik kita sendiri untuk setiap tugas ). Dan hal yang paling menyedihkan adalah ketidakmampuan untuk mengontrol fokus, itulah sebabnya untuk menangkap gambar yang kita butuhkan untuk pengenalan menjadi tugas yang sulit bagi pengguna. Benar, masalahnya sekarang telah diselesaikan dengan fokus, tetapi kami harus melanjutkan pencarian. Secara umum, Google ternyata bagus, tetapi tidak untuk tugas kami. Dan juga karena spesifikasi OpenGL pada OSX, kami tidak dapat menjalankan demo di emulator dan kami melakukan semuanya di telepon langsung.

Vuforia


Kami membaca dokumentasi, menonton video , itu terlihat mengesankan. Ada banyak fitur, misalnya, Target Gambar . Kami memutuskan untuk mencoba: terdaftar, diunduh, dikumpulkan, diluncurkan. Aplikasi demo dimulai, tetapi tidak berfungsi baik pada emulator atau pada live android-e. Mencoba menguji fitur apa pun yang membuat seluruh aplikasi mogok. Diputuskan untuk tidak membuang waktu mencari masalah dan memperbaikinya, dan pindah ke SDK berikutnya.

Wikitude


Kami mengunduh SDK, membaca tutorial , meluncurkan demo. Ada banyak jenis kemungkinan, demo langsung mengesankan, banyak contoh mini, kami bermain cukup ( misalnya, ada pengenalan wajah ), dan, lihatlah, demo sudah memiliki pengenalan QR. Tetapi masalahnya adalah kita mendapatkan apa yang dienkripsi dalam kode, tetapi kita tidak tahu di mana ia berada. Mereka mulai memahami bagaimana pengaturan pemindai QR. Ternyata itu dibuat sebagai add-on lebih dari ZBar dalam bentuk plug-in positif untuk SDK. Awalnya saya punya ide gila untuk mengungkap gcc dan menyelesaikan plugin sehingga juga akan memberikan koordinat, tetapi kami berhenti tepat waktu.

Dan mereka bertarung 3 hari 3 malam


Menyadari bahwa seperempat dari waktu yang disediakan untuk hari itu sudah lewat, dan kami masih mencari SDK kami (ada sampel solusi lain, tidak hanya dijelaskan di atas, tetapi juga kegagalan di sana ), kami memutuskan untuk tidak mencari "peluru perak" lagi, tetapi mengambil segalanya untuk tanganmu. Sebuah rencana baru telah matang: sebagai penanda tugas, kami mengambil kode QR, sesederhana dan umum; untuk pengakuannya kita mengambil ZXing , yang dapat mengenali beberapa kode pada saat yang bersamaan, dan selain nilainya, perpustakaan juga memberikan koordinat 3 titik "pencarian" dari kode QR. Dan di atas pembaca kode kita akan mengimplementasikan AR kita. Menyingsingkan lengan baju kita dan pergi, kita memiliki 3 poin, yang berarti dengan bantuan transformasi affine kita bisa mendapatkan semua yang kita butuhkan.

Putri katak

Mereka tidak mulai mencari perpustakaan untuk matematika, karena tugas kita tidak sulit. Hal pertama yang kami lakukan adalah membuat kelas sendiri untuk koordinat yang perlu kami hitung ulang. Algoritma terakhir untuk bekerja dengan kode QR ternyata agak primitif:

  • Gambar dari kamera ditransfer ke ZXing, kami mendapatkan array dengan koordinat titik dan nilai-nilai kode QR.
  • Dari 3 koordinat, kita menghitung sudut ke-4 kuadrat, menambah kuadrat satu setengah kali untuk tumpang tindih kode QR asli, dan mendapatkan dasar untuk kartu.
  • Kami membuat permintaan di Wrike API untuk mengumpulkan data tentang tugas tersebut.
  • Kami menggambar kartu, berkat transformasi affine, kami menyimpan semua distorsi ( sudut pandang, rotasi, skala ).

Kami mencuci algoritma, itu bekerja, kami menguji, kami menangani kebocoran memori, kami menambahkan efek visual, kami menikmati hackathon.

Dan saya ada di sana, minum bir madu


Di hackathon, selain produk Anda sendiri, cara Anda menyajikannya sangat penting. Semua orang mengerti bahwa Anda memiliki tenggat waktu yang sangat ketat dan tidak mengharapkan solusi yang indah secara teknis dari Anda, jadi Anda harus menunjukkan keindahan ide Anda. Saya selalu menyukai pendekatan mendongeng, di mana penonton memahami untuk siapa produk itu dibuat, dalam kondisi apa itu diterapkan dan masalah apa yang dipecahkannya.

Salahkan hackathon

Oleh karena itu, dalam presentasi kami, selain menunjukkan fungsionalitas yang diperoleh, kami meminta kekuatan imajinasi dan menggambarkan situasi di mana augmented reality tersebut ( kacamata AR akan segera menjadi hal yang biasa ) dapat meningkatkan kehidupan mereka yang bekerja di luar komputer, tetapi yang karyanya terhubung dengan wrike. Misalnya, untuk interaksi antara desainer-arsitek yang terlibat dalam perbaikan rumah dan tim yang langsung mengimplementasikan proyek di rumah itu sendiri.

Saya pikir kami menunjukkan MVP kami dengan terhormat, dan menangkap sinar cinta kami. Musim panas berakhir dan musim piknik dan liburan hampir berakhir, dan kami sedang mempertimbangkan untuk mencurahkan malam musim gugur untuk pengembangan AR Wrike kami.

Terima kasih untuk ilustrasinya, Sai Kin !

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


All Articles