3 Masalah Kinerja Aplikasi Seluler Umum dan Cara Menghindarinya

Kotak hitam

Anggaplah bahwa aplikasi adalah kotak hitam. Untuk saat ini, mari kita abaikan pertanyaan tentang kategorinya (permainan, bisnis, pendidikan, gaya hidup), karena itu tidak terlalu penting pada saat ini. Selain itu, mari kita asumsikan aplikasi kita ditulis secara asli untuk platform seluler tertentu (misalnya iOS – Swift, Objective-C, Android – Java, Kotlin) dengan penggunaan praktik perangkat lunak terbaik dan template proyek. Saya percaya bahwa jika Anda mempertimbangkan efisiensi perangkat lunak, tidak ada gunanya membahas detail solusi lintas platform seperti misalnya Xamarin atau yang hibrida menggunakan HTML5. Itu bahkan jika, dalam kasus perangkat lunak sederhana, kita dapat mengasumsikan bahwa efisiensi solusi berdasarkan Xamarin akan menjadi perbandingan dengan bahasa asli.

Saya menyadari fakta bahwa saya tidak akan dapat membahas semua aspek efisiensi aplikasi seluler dan faktor-faktor yang membentuknya. Namun, saya ingin fokus pada yang paling penting.

Perangkat

Faktor pertama dan mungkin yang paling sering dilupakan adalah perangkat itu sendiri. Bergantung pada platform dan versi perangkat lunak yang tersedia, sangat berguna untuk menyusun daftar perangkat tempat perangkat lunak akan diinstal.

Perangkat tersebut tidak hanya menentukan antarmuka pengguna, tetapi terutama bagaimana lapisan perangkat lunak tertentu akan beroperasi pada perangkat seluler yang lebih lama. Ini dapat termasuk perangkat dengan unit yang lebih buruk (prosesor lemah, lebih sedikit RAM). Anda juga harus mempertimbangkan ketersediaan perangkat, terutama yang lebih tua. Paling sering, programmer menggunakan simulator, juga satu atau dua perangkat seluler. Ini harus menjadi sinyal peringatan bagi penguji untuk memulai tes mereka dengan perangkat tertua. Kelalaian dapat menyebabkan penulisan ulang fungsionalitas yang tidak berfungsi dengan baik pada perangkat tertentu karena alasan efisiensi. Dalam hal apapun, ini tidak membenarkan programmer, yang sering menyalin template proyek yang salah karena kemalasan, dan memulai aplikasi hanya pada perangkat terbaru – yang menangani pemrosesan operasi rumit tanpa masalah. Dalam kasus seperti itu, kita biasanya belajar tentang ketidaknyamanan yang berhubungan dengan efisiensi dari pengguna akhir.

Jaringan

Titik lain terdiri dari jaringan dan, khususnya, kapan dan seberapa sering aplikasi menggunakan koneksi Internet. Kesalahan yang paling sering secara langsung memengaruhi hasil kinerja dari aplikasi yang meminta server terlalu sering melakukan data, atau struktur yang buruk dalam menyimpan data dalam cache. Di sini, solusi terbaik ternyata merencanakan menghasilkan data dengan baik, kapan saja diperlukan, dan jawaban server cache.

Operasi penghasil data harus dijalankan secara asinkron – dengan tidak memblokir utas utama, yang bertanggung jawab untuk merender antarmuka pengguna. Saat mengunduh gambar, seseorang harus mengingat dua hal: untuk menyimpannya di hard disk dan tentang kompresi yang tepat.

Selain itu, juga perlu memastikan bahwa aplikasi beroperasi dengan baik offline, kecuali itu tidak diperlukan dalam spesifikasi yang termasuk dalam dokumentasi. Dari pengalaman saya, masalah kadang-kadang terjadi karena kurangnya informasi eksplisit bahwa aplikasi tersebut untuk mengoperasikan oï ¬ ï ineine. Terkadang, mengembangkan kembali aplikasi yang sudah rumit bisa sangat berisiko, karena ini dapat menghasilkan kesalahan tambahan (yang sulit dipecahkan). Saya pikir bahwa masalah ini berkaitan dengan pengembangan lapisan komunikasi dengan server dalam bisnis lebih dari pada permainan, yang, seperti dapat diasumsikan, harus beroperasi oï ¬ ï ineine. Dengan 'offline' saya juga berarti koneksi internet yang buruk, seperti 3G atau EDGE, yang tidak selalu cukup 100%.

Kami juga harus mempertimbangkan efektivitas lapisan komunikatif server. Ini sangat penting ketika aplikasi kami menghasilkan lalu lintas tinggi pertanyaan mengenai bagian server. Masalahnya bisa lebih rumit karena misalnya streaming audio atau video. Sayangnya, dalam hal ini, kami tidak selalu memiliki dampak langsung melalui pengembangan berkelanjutan. Namun demikian, saya pikir itu baik untuk memiliki pemikiran ini juga.

Pihak ketiga

Poin ketiga melibatkan penggunaan perpustakaan perusahaan eksternal. Ini telah menjadi sangat populer baru-baru ini. Siapa pun yang berurusan dengan proyek besar yang melibatkan perpustakaan yang tidak diperbarui secara berkelanjutan (terutama yang open source!) Akan tahu apa yang saya bicarakan. Mereka memfasilitasi proses pengembangan dan mempercepatnya, terutama jika mereka kompleks. Mereka menyediakan fungsionalitas yang biasanya membutuhkan banyak waktu untuk ditulis oleh seorang programmer dari awal.

Pengembangannya sendiri dapat didukung dengan perangkat tambahan. Ini dapat memungkinkan pemantauan yang tepat – dari efisiensi aplikasi, kejadian kerusakan dan penutupan tiba-tiba aplikasi, atau penebangan tambahan dari acara aplikasi. Perangkat tersebut termasuk misalnya: Fabric, Crashlytics, Flurry, HockeyApp, AppDynamics, New Relic. Mereka harus ditambahkan dan digunakan dari awal proyek.

Ringkasan

Singkatnya, kita harus ingat bahwa semua elemen yang tercantum di sini membuat keseluruhan dan akhirnya menentukan bagaimana aplikasi dilihat oleh pengguna akhir. Efisiensi mempengaruhi antarmuka pengguna serta perasaan umum mereka terkait dengan penggunaan aplikasi. Oleh karena itu, kita seharusnya tidak membiarkan mereka merasa perlu untuk segera menghapus perangkat lunak kami yang baru dikembangkan atau, bahkan lebih buruk lagi, merasa bahwa mereka memiliki telepon lama dan mereka harus menggantinya.

Leave comment

Your email address will not be published. Required fields are marked with *.