Pendahuluan
Transformasi digital setiap tahun mencakup bidang kehidupan dan bisnis yang semakin berbeda. Jika sebuah bisnis ingin menjadi kompetitif, situs informasi reguler tidak lagi cukup, aplikasi seluler dan web diperlukan yang tidak hanya memberikan informasi kepada pengguna, tetapi juga memungkinkan Anda untuk melakukan semacam fungsi: menerima atau memesan barang dan jasa, menyediakan alat.

Jadi, misalnya, tidak cukup bagi bank modern untuk memiliki situs web dengan informasi, Anda perlu memiliki alat online untuk pelanggan Anda, akun pribadi di mana pengguna dapat mengelola akun, investasi, dan pinjaman. Bahkan usaha kecil membutuhkan alat yang mudah digunakan, seperti membuat janji dengan dokter atau penata rambut, memesan meja di restoran atau ruang bermain anak-anak untuk ulang tahun, untuk meningkatkan konversi.
Dan pemiliknya sendiri perlu menerima informasi tepat waktu dalam bentuk yang mudah sesuai dengan keadaan perusahaan mereka, misalnya, pengumpulan data statistik dan analitik untuk berbagai departemen produksi, atau produktivitas departemen. Seringkali, masing-masing departemen mengumpulkan data ini dengan caranya sendiri, dan bahkan dapat menggunakan alat yang berbeda, dan pemilik perlu menghabiskan banyak waktu pribadi untuk mencari tahu semuanya, secara tidak langsung atau langsung, itu dapat mempengaruhi efisiensi perusahaan dan akhirnya keuntungannya. Transformasi digital dan pengembangan aplikasi web atau seluler juga akan membantu di sini.
Teknologi tidak berhenti dan terus berkembang, dan apa yang mereka gunakan beberapa tahun lalu mungkin tidak relevan saat ini, atau apa yang tidak dapat mereka lakukan beberapa tahun yang lalu telah menjadi kenyataan. Ada lebih banyak alat modern yang membantu membuat aplikasi web dan seluler lebih cepat dan lebih baik. Berdasarkan pengamatan dan pengalaman pribadi, saya ingin berbagi visi tentang teknologi dan alat mana yang akan diminati dalam waktu dekat dan mengapa Anda harus memperhatikannya saat membuat aplikasi web modern.
Aplikasi satu halaman
Mari kita definisikan sedikit terminologi. Aplikasi Halaman Tunggal (SPA) adalah aplikasi web yang komponennya dimuat sekali pada satu halaman, dan konten diunggah sesuai kebutuhan. Dan ketika beralih di antara bagian-bagian aplikasi, halaman tidak memuat ulang sepenuhnya, tetapi hanya data yang dimuat dan data yang diperlukan ditampilkan.
Aplikasi satu halaman mengungguli aplikasi web klasik dalam kecepatan dan kegunaan. Dengan SPA, Anda dapat mencapai efek situs web sebagai aplikasi desktop tanpa reboot dan penundaan signifikan.
Jika beberapa tahun yang lalu aplikasi satu halaman praktis tidak mendukung optimasi mesin pencari dan digunakan terutama untuk membuat dasbor pribadi dan panel admin, hari ini jauh lebih mudah untuk membuat aplikasi satu halaman dengan dukungan penuh untuk optimasi mesin pencari (SEO). Menggunakan aplikasi satu halaman dengan rendering server, hari ini masalah ini telah sepenuhnya hilang. Dengan kata lain, ini adalah aplikasi satu halaman yang sama, tetapi pada permintaan pertama, server tidak hanya menghasilkan data, tetapi membuat halaman yang siap untuk menampilkan HTML dan mesin pencari mendapatkan halaman siap dengan semua meta-informasi dan markup semantik.
Dengan pengembangan alat untuk membuat aplikasi web sisi klien, pengembangan dan transisi ke aplikasi satu halaman di tahun ini dan selanjutnya hanya akan tumbuh. Jika Anda memiliki aplikasi lama yang sudah usang dan berjalan lambat, dan bahkan dengan memuat ulang halaman lengkap saat beralih antar bagian, maka tahun ini Anda dapat dengan aman memperbarui ke aplikasi satu halaman cepat - sekarang adalah saat yang tepat, teknologi sudah memungkinkan Anda melakukan ini dengan cepat dan efisien.
Memiliki situs web yang modern dan cepat sangat baik, tetapi saya ingin memberi tahu Anda dengan jujur: tidak semua aplikasi dapat dengan mudah dikonversi menjadi satu halaman, dan transisinya bisa mahal! Karena itu, Anda perlu memahami siapa yang membutuhkan transisi ini dan mengapa.
Untuk membantu Anda memahami, pada tabel di bawah ini saya akan memberikan beberapa contoh ketika pengembangan atau transisi ke SPA sesuai dan dibenarkan, dan ketika tidak.
Aplikasi web progresif
Aplikasi Web progresif adalah produk evolusi bersama dari aplikasi asli dan situs web. Faktanya, ini adalah aplikasi web yang terlihat dan berperilaku seperti aplikasi asli asli, dapat menerima pemberitahuan push, bekerja offline, dll. Dalam hal ini, pengguna tidak perlu mengunduh aplikasi dari AppStore atau Google Play, tetapi cukup menyimpan ke desktop.
Sebagai pendekatan teknologi atau pengembangan, PWA telah berkembang sejak 2015, dan baru-baru ini juga telah mendapatkan popularitas besar di bidang e-commerce.
Beberapa contoh kehidupan nyata:
- Tahun lalu, Best Western River North Hotel, setelah meluncurkan situs web berkemampuan PWA baru, mampu meningkatkan pendapatan hingga 300%;
- Arabic Avito OpenSooq.com setelah membuat dukungan untuk PWA di situs webnya mampu meningkat 25% dari waktu yang dibutuhkan untuk mengunjungi situs dan 260% jumlah arahan;
- layanan kencan yang terkenal Tinder mampu mengurangi kecepatan pengunduhan dari 11,91 menjadi 4,69 dengan mengembangkan PWA, apalagi, aplikasi ini memiliki berat 90% lebih rendah dari rekan Android aslinya.
Fakta bahwa salah satu mesin terbesar untuk membuat proyek e-commerce Magento pada tahun 2018 meluncurkan versi pengembangan awal dari PWA Studio juga menunjukkan bahwa perlu memperhatikan teknologi ini. Platform ini memungkinkan "out of the box" untuk membuat frontend berdasarkan React untuk solusi e-commerce dengan dukungan PWA.
Saran bagi mereka yang sudah memiliki proyek Internet atau hanya gagasan layanan baru dengan dukungan untuk perangkat seluler: jangan terburu-buru untuk menulis aplikasi asli penuh, tetapi pertama-tama melihat teknologi PWA. Mungkin ini akan menjadi solusi rasio harga / kualitas terbaik untuk produk Anda.
Sedikit latihan. Untuk membuat aplikasi berita seluler asli yang sederhana, asalkan sudah ada server REST yang sudah jadi, dibutuhkan sekitar 200-300 jam kerja untuk setiap platform. Dengan harga pasar rata-rata per jam pengembangan 1.500-2.000 rubel per jam, aplikasi dapat menelan biaya sekitar 1 juta rubel. Jika Anda mengembangkan aplikasi web dengan dukungan penuh untuk PWA: pemberitahuan push, mode offline dan barang lainnya, maka pengembangannya akan memakan waktu 200-300 jam kerja, tetapi produk akan segera tersedia di semua platform. Artinya, menghemat sekitar 2 kali, belum lagi fakta bahwa Anda tidak perlu membayar iuran untuk ditempatkan di toko aplikasi.
Tanpa server
Ini adalah pendekatan modern lain untuk pembangunan. Karena namanya, banyak orang berpikir bahwa ini adalah pengembangan tanpa server, Anda tidak perlu menulis kode back-end, dan pengembang front-end mana pun dapat membuat aplikasi web yang lengkap. Tapi ini tidak benar!
Saat membuat aplikasi Tanpa Server, server masih diperlukan, dan begitu pula databasenya. Perbedaan utama antara pendekatan ini adalah bahwa kode back-end disajikan dalam bentuk fungsi cloud (nama lain untuk serverless adalah FaaS, fungsi sebagai layanan atau Functions-as-a-Service) dan memungkinkan aplikasi untuk dengan cepat dan mudah skala. Saat membuat aplikasi seperti itu, pengembang dapat fokus pada tugas-tugas bisnis dan tidak berpikir tentang meningkatkan dan mengkonfigurasi infrastruktur, yang selanjutnya mempercepat pengembangan aplikasi dan mengurangi biayanya. Selain itu, pendekatan Serverless akan membantu menghemat sewa server, karena menggunakan persis sumber daya sebanyak yang dibutuhkan untuk menyelesaikan tugas, dan jika tidak ada beban, maka waktu server tidak digunakan sama sekali dan tidak dibayar.
Misalnya, perusahaan media besar Amerika, Bustle, mampu mengurangi biaya hosting hingga lebih dari 60% saat beralih ke Serverless. Dan Coca-cola, sambil mengembangkan sistem otomatis untuk menjual minuman melalui mesin penjual otomatis, mampu mengurangi biaya hosting dari $ 13.000 menjadi $ 4.500 per tahun dengan beralih ke Serverless.
Selama beberapa tahun terakhir, karena kebaruan dan keterbatasannya, Serverless terutama digunakan untuk proyek-proyek kecil, startup, dan MVP, tetapi hari ini, berkat evolusi perangkat lunak, keserbagunaan dan kekuatan kontainerisasi server, muncul alat-alat yang memungkinkan Anda untuk menghapus pembatasan, menyederhanakan, dan mempercepat pengembangan aplikasi cloud. .
Ini berarti bahwa skenario bisnis perusahaan di mana peningkatan awan sebelumnya dianggap tidak mungkin (misalnya, untuk perangkat periferal, data yang dikirimkan atau aplikasi stateful) sekarang menjadi kenyataan. Alat yang menjanjikan bagus adalah perusahaan kNative dan Serverless.
Tetapi dengan semua ini, Serverless bukan peluru perak untuk mengembangkan aplikasi web. Seperti teknologi lainnya, ia memiliki kelebihan dan kekurangannya sendiri, dan Anda perlu memilih alat ini dengan pengertian, dan "jangan palu paku dengan mikroskop", hanya karena lebih maju secara teknologi.
Untuk membantu Anda mengetahuinya, berikut adalah beberapa contoh ketika Anda harus memikirkan Serverless saat mengembangkan layanan web baru atau meningkatkan yang ada:
- Ketika beban di server berkala dan Anda membayar untuk kapasitas siaga. Sebagai contoh, kami memiliki klien dengan jaringan mesin kopi dan itu perlu untuk memproses permintaan dan mengumpulkan statistik hanya beberapa ratus atau ribuan kali sehari, dan pada malam hari jumlah permintaan turun menjadi beberapa puluh. Dalam hal ini, jauh lebih efisien untuk membayar hanya untuk penggunaan sumber daya yang sebenarnya, jadi kami mengusulkan dan mengimplementasikan solusi pada Serverless;
- Jika Anda tidak berencana untuk menyelami rincian teknis infrastruktur dan membayar lebih untuk konfigurasi dan dukungan server dan penyeimbang. Misalnya, ketika mengembangkan pasar, Anda tidak tahu persis apa yang akan terjadi, atau sebaliknya - Anda merencanakan banyak lalu lintas dan agar aplikasi Anda dapat menahan beban, Serverless adalah pilihan yang sangat baik.
- Jika perlu untuk melakukan beberapa acara streaming dalam pengoperasian aplikasi utama, tulis data sisi ke tabel, lakukan beberapa perhitungan. Misalnya, untuk mengumpulkan data analitik dari tindakan pengguna, memprosesnya dengan cara tertentu dan menyimpannya ke database;
- Jika Anda perlu menyederhanakan, menyatukan atau mempercepat aplikasi saat ini. Misalnya, untuk membuat layanan peningkatan kinerja untuk bekerja dengan gambar atau video ketika pengguna mengunggah video ke cloud, dan fungsi terpisah terlibat dalam transcoding, sementara server utama terus bekerja seperti biasa.
Jika Anda perlu memproses acara dari layanan pihak ketiga. Misalnya, proses tanggapan dari sistem pembayaran, atau redirect data pengguna ke CRM untuk mempercepat pemrosesan permintaan dari pelanggan potensial
Jika Anda memiliki aplikasi besar dan beberapa bagian aplikasi dapat diimplementasikan lebih optimal, menggunakan bahasa yang berbeda dari yang utama. Misalnya, Anda memiliki proyek Java dan Anda perlu menambahkan fungsionalitas baru, tetapi tidak ada tangan bebas, atau dalam bahasa ini implementasinya mungkin lebih lama dan sudah ada solusi dalam bahasa lain, maka Serverless dapat membantu dalam hal ini.
Ini bukan seluruh daftar alat dan teknologi yang patut mendapat perhatian, saya hanya membagikan apa yang kami gunakan setiap hari dalam pekerjaan kami dan tahu persis bagaimana mereka dapat membantu bisnis.