Android vs iOS: yang platform yang terbaik untuk pengembang
Makradar Teknologi / / December 19, 2019
Android vs iOS. tema abadi untuk pertempuran secara online, yang telah sopan semua podnadoest. Jangan terburu-buru untuk lulus teks artikel dan segera beralih ke curahan pendapat saja yang benar dalam komentar. Hari ini kita akan berbicara lagi tentang sistem yang lebih baik, tapi dengan cara yang berbeda.
Pengembang - orang-orang yang membuat bagian penting dari platform apapun, aplikasi yaitu. Ini adalah kualitas alat pembangunan, menyediakan platform tergantung pada hasil akhir. Jadi di bawah sistem apa yang lebih baik untuk menulis? Menjawab pertanyaan ini pengembang aplikasi berpengalaman, yang harus dinyalakan di App Store, dan Google Play.
Pilihan platform - masalah mendasar untuk setiap proyek baru. Android atau iOS? Mengingat berita terbaru bahwa Android telah berhasil menangkap 80% dari pasar, pilihan menjadi lebih sulit. Tidak peduli manajer dan tidak lain juga dikenal dengan aspek-aspek teknis dari masalah orang apa memikirkannya. Hal lain - para pengembang.
Apa pendapat mereka? Keuntungan dari ini atau bahwa platform secara langsung tergantung pada kemampuannya untuk membuat hidup mereka lebih baik.
Dan dengan "mereka" Maksudku "kami." Selain kegiatan penulis di TechCrunch, saya berkembang di HappyFunCorp. Selain itu, tidak begitu lama lalu, saya membuat sebuah duet opensorsnyh aplikasi melalui proyek-hewan peliharaan. Hal ini aplikasi ini saya gunakan untuk perbandingan.
Sebagai catatan: Saya sebelumnya telah menulis beberapa aplikasi Android dan iOS, baik untuk penggunaan pribadi dan untuk pekerjaan. Secara khusus, saya menulis Ponsel klien untuk agregator berita Anda ScanvineYang mengumpulkan biasa cerita populer dari media sosial. Source code dari aplikasi saya dapat ditemukan di Github (Android | iOS), Dan aplikasi sendiri tersedia dalam google Putar dan App Store.
Nah, biarkan pertempuran dimulai.
Rabu
Anda masih bisa menulis kode dalam editor teks, dan banyak melakukan sejauh ini, tetapi dalam hal kinerja lebih berguna untuk menggunakan IDE (Integrated Development Environment - IDE).
Dalam kasus Apple, kami memiliki Xcode, dan bekerja di lingkungan ini - kesenangan. Hal ini fleksibel, cepat, kuat dan mampu membantu, tanpa menjadi terlalu mengganggu. Dan dia semakin baik, meskipun langkah-langkah sulit dan paranoid diambil oleh Apple untuk mempertahankan kontrol penuh atas aplikasi iOS, dan perangkat. debugger berjalan lancar, dan simulasi - cepat dan responsif.
Bagaimana Android? Oh, Android. Pada saat ini, lingkungan pengembangan yang sebenarnya di bawahnya adalah Eclipse, segelintir Android disesuaikan plug-in, dan itu menjijikkan buruk. Lambat, canggung, tidak logis, sering terus terang tidak bisa dimengerti, dirancang buruk, terlalu rumit - berantakan. debugger yang begitu nyaman bahwa sebagian besar waktu yang saya habiskan di mengutak-atik log, sedangkan dengan Xcode saya miliki sebuah bug alat-pemburu nyata. Jangan lupa tentang emulator Android, yang pertama membutuhkan waktu beberapa menit untuk download, dan kemudian ia tidak bisa terhubung ke ADB.
Agar adil untuk mengatakan bahwa Google menyadari masalah ini dan mereka bekerja pada baru Android Studio IDE:
Saat ini, Android Studio tersedia sebagai preview awal. Beberapa fungsi mungkin tidak diatur, atau tidak dilaksanakan, yang mungkin menyebabkan kesalahan. Jika penggunaan produk yang belum selesai menyebabkan ketidaknyamanan Anda, maka Anda dapat men-download dan terus menggunakan ADT Bundle (Eclipse Plugin dengan ADT).
Bagus untuk melihat bahwa mereka bekerja pada masalah, tapi masih mengejutkan - setelah 4 setengah tahun setelah pembelian saya Android pertama-seperti berantakan masih batas kesempurnaan, yang mampu mencapai lingkungan pengembangan Android.
Berikut mengalahkan iOS, tanpa syarat.
Konfigurasi
Di bawah veneer dari Xcode dan Objective-C yang tersembunyi kengerian Lovecraft dari era tujuh puluhan pemrograman. Hanya bercanda, aku bercanda... tapi masih. Macro, dan file header, proyek, tujuan, skema dan perakitan konfigurasi, dan menakutkan, daftar menakutkan dari parameter perakitan. dan lebih penemuan yang luar biasa dalam gaya "Oh, kode pihak ketiga Anda tidak mendukung ARC? Cukup tambahkan bendera -fno-ObjC-arc ยป. Hanya? Tidak ada!
Di Android Anda memiliki file manifest, dan Eclipse biasanya benar-benar membangun kembali aplikasi setiap kali Anda menyimpan file. Saya ingin kejelasan lebih besar ketika Anda, misalnya, Anda menerima pesan kesalahan karena fakta bahwa benar mengkonfigurasi aturan, tapi itu cacat kecil. Konfigurasi aplikasi Android sederhana dan elegan.
Berikut mengalahkan Android.
desain antarmuka
Akan terlihat bahwa Apple pasti muncul sebagai pemenang. Dengan desainer mereka Anda dapat dengan mudah dan cepat membangun antarmuka yang sederhana dan baik mencari. Masalahnya adalah bahwa semakin lama saya bekerja dengan desainer, semakin aku menyukainya. Ini adalah waktu lain ketika Anda membuka kompleksitas konfigurasi - alat ideal untuk menciptakan hal-hal sederhana, namun dengan perkembangan hal aplikasi sederhana tiba-tiba menjadi rumit, dan saya benar-benar tidak seperti ini multiscreen Storyboard, yang Apple menambahkan sekitar setahun yang lalu.
Pada Android, teori ini disediakan alat visualisasi sebanding, tetapi dalam prakteknya Anda menulis file XMLMengandung menggambar petunjuk bahwa pada lead keberuntungan tertentu untuk tampilan yang benar dari aplikasi pada semua berbagai format layar perangkat Android. Apple bergerak dengan cara yang sama, dan mereka auto Tata Letak jelas dipertajam untuk variasi ekspansi masa depan layar pada perangkat iOS.
Pada saat yang sama, Android memberikan pengembang set ikonSedangkan pengembang iOS dipaksa untuk beralih ke layanan pihak ketigaAtau menggambar ikon sendiri.
Dalam babak ini pemenang untuk memilih lebih sulit, tapi saya akan memberikan iOS preferensi untuk dua alasan. Pertama, masih jauh lebih mudah - hanya 3 ukuran layar (termasuk iPad) dan aspek rasio 2 Format. keragaman Android dalam hal ini menambah kompleksitas. Poin kedua adalah daya tarik default elemen visual (menu pop-up, pesan, dan sebagainya). Dalam iOS semuanya terlihat jauh lebih menarik.
Berikut mengalahkan iOS.
bahasa
Aplikasi Android ditulis di Jawa, iOS - di Objective-C. Ada pengecualian seperti XamarinTetapi dalam banyak kasus divisi tersebut adalah valid.
Saya belajar untuk menulis di Jawa, dan pada awalnya tidak terlalu memikirkan Objective-C, sebagian besar karena bulkiness nya.
Sebuah string seperti:
String s2 = s1.replace ( "abc", "xyz");
Bergantian dia di:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Tetapi dalam proses menemukan bahasa yang saya benar-benar menyukai. Dia lebih baik dan lebih bersih daripada Jawa.
Dalam hal ini, juga, ada pro Java. Sebagai contoh, perangkap dan jejak sederhana kesalahan. Beberapa tahun terakhir, Android telah keuntungan yang sangat signifikan lain dalam hal pengumpulan sampah, yaitu, pemurnian otomatis memori dari benda-benda yang tidak perlu, tapi sekarang iOS tahu hal yang sama, dan sebenarnya keuntungan datang ke sia-sia. Mengingat fakta bahwa kemenangan terakhir pergi ke iOS sini.
Berikut mengalahkan iOS.
API
Di Android dan iOS memiliki perpustakaan besar perangkat lunak yang tersedia untuk pengembang, dan secara umum, mereka cukup mirip: API untuk pengoperasian fungsi telepon dan komunikasi, API untuk akses ke jaringan, gudang pemirsa, termasuk WebView kuat - hampir tiruan dari penuh browser.
Sebagian besar pekerjaan dilakukan dengan controller, dan umum iOS ViewController adalah setara Kegiatan Android.
Yang benar-benar tidak memiliki Android, karena merupakan analog Core Data kerangka kerja penuh. Secara keseluruhan, sistem ini lebih bersih dan dirancang lebih baik. Sebagai contoh, hanya membandingkan inidua kelas di iOS, yang melakukan sebagian besar pekerjaan dalam aplikasi, dengan initigasetara kelas di Android. Pada akhirnya, saya lebih memilih untuk bekerja dengan iOS CollectionViewControllerDibandingkan dengan Android ListAdapter.
metrik penting lain: jumlah baris kode. versi saya dari aplikasi untuk kedua platform yang hampir identik dalam fitur dan fungsi, tetapi dalam iOS untuk melaksanakannya Butuh waktu saya 1596 baris kode, termasuk file header, dan untuk membuat versi Android dengan fungsi yang sama diperlukan 2109 baris. Perbedaannya adalah 32%.
Berikut mengalahkan iOS.
Internet
Hari ini, sebagian besar aplikasi lebih panduan ke Internet, bukan program yang berdiri sendiri. Ini adalah hal yang sangat penting, dan harus dipertimbangkan secara terpisah. Di gudang kedua sistem memiliki sejumlah alat dan API untuk pelaksanaan kerjasama dengan Jaringan. Juga kedua platform menerapkan hampir penuh browser, yang dapat dibangun ke dalam aplikasi yang Anda suka dan dimanapun Anda pergi.
Koneksi harus berjalan di latar belakang dan tidak mengganggu aplikasi itu sendiri. Untuk menerapkan multithreading di Android digunakan AsyncTask. Ia bekerja dengan sangat baik dan memungkinkan mudah menentukanApakah pengguna di web saat ini. iOS juga menawarkan kemampuan serupa, tetapi mereka diimplementasikan pada tingkat yang relatif rendah dan tidak memenuhi kebutuhan pengembang.
Namun, ada banyak perpustakaan pihak ketiga, open source, dan mereka membuat hidup jauh lebih mudah. Saya menggunakan AFNetworking, dan bekerja sama dengan baik seperti yang dimaksud dalam iklan.
Berikut mengalahkan bawaan Android dan iOS menggunakan perpustakaan pihak ketiga.
berbagi
Seberapa mudah Anda berbagi salah satu aplikasi tertentu di Facebook, Twitter, Evernote, dan layanan lainnya? Tampaknya ini akan menjadi babak pertama di mana Android akan menang 100% KO: memiliki sistem yang kuat interaksi antara aplikasi yang disebut Niat, dan secara umum, Android jauh lebih setia kepada permintaan dan transmisi data antara aplikasi.
Secara umum, Apple telah terperangkap pesaing signifikan dalam kesempatan sharinga. Anda tidak dapat mengambil kata-kata saya, periksa kode fungsi "Berbagi cerita" di Scanvine di Android dan iOS. Satu-satunya alasan mengapa iOS kode lebih - kehadiran di dalamnya dari pelacakan yang lebih fleksibel dari Google Analytics, bukan di Android.
Kemudian menarik.
fragmentasi
Maka saya tidak perlu banyak bicara. Namun, Google sedang mencoba untuk menggunakan Strategi defragmentasi menarikSehingga dalam waktu singkat item akan kembali diperiksa.
Berikut mengalahkan iOS.
publikasi aplikasi
Publikasi aplikasi Android sangat sederhana. Alat dalam Eclipse memungkinkan Anda untuk cepat membangun aplikasi, dan di tangan Anda sudah memiliki file apk. Mengirimkannya ke email, posting online, atau download di Google Play, membuatnya tersedia di (hampir) dunia hanya dalam satu jam. Kemudian menjadi mungkin untuk memantau instalasi statistik dan kecelakaan-laporan sampai dengan baris tertentu dari kode, karena yang aplikasi crash. Jika perlu, Anda dapat memperbarui untuk menggelar langsung.
Publikasi di App Store - itu mimpi buruk. Teman saya menyarankan untuk mengalokasikan untuk pengembangan kalender setidaknya sehari pada perang dengan sertifikat dan profil distribusi. Tidak peduli berapa kali Anda pernah melakukannya, dan berapa banyak lebih mudah mereka berusaha untuk membuat proses versi berikutnya dari Xcode - Anda masih akan banyak masalah. pengujian aplikasi menjadi lebih dari masalah, kecuali jika Anda menggunakan TestFlight. Tambahkan ke ini iTunes Connect, yang tidak pergi ke salah perbandingan dengan Konsol Pengembang Google Play.
Berikut mengalahkan Android, tanpa syarat.
pemenang
Hal ini menjadi iOS, apalagi dengan marjin tertentu. Kami memiliki keuntungan dari Android, tetapi secara umum untuk menulis aplikasi yang baik untuk iOS masih jauh lebih mudah daripada di bawah Android. Menambahkan ini fakta bahwa pengguna iOS lebih dari solvabilitas, dan Anda mendapatkan jawaban untuk pertanyaan yang platform harus menjadi prioritas untuk startup. Mungkin, kesenjangan akan berkurang setelah rilis Android Studio, sehingga memungkinkan untuk memecahkan beberapa masalah... tapi tidak semua.
By the way, ponsel utama saya - Nexus 4, dan saya sangat senang.
(melalui)