Pengembangan lintas platform iOS / Android [ditutup]

113

Saya telah bermain-main dengan mengembangkan aplikasi Android di Java untuk sementara waktu dan mulai menguasainya. Namun jika saya ingin memulai pada versi iOS saya perlu mengkodekan semuanya dari awal - yang, yah, tidak diinginkan.

Saya bertanya-tanya tentang solusi lintas platform apa yang tersedia dan seberapa baik mereka bekerja dalam praktiknya. Saya telah memikirkan tentang aplikasi web - mungkin menggunakan jQuery Mobile atau Titanium , atau Adobe Flash / Flex / Air. Saya juga belum memiliki Mac, yang mungkin harus saya investasikan.

Jadi Pertanyaan saya:

  1. Lingkungan pengembangan lintas platform apa yang ada untuk iOS / Android (dan / atau perangkat lain)?

  2. Apa pengalaman Anda dengan alat-alat ini? (inilah yang sangat ingin saya ketahui)

Alister
sumber
1
Alister, kamu jelas bukan orang pertama yang menanyakan pertanyaan seperti ini, juga bukan kamu orang pertama yang menginginkan jawaban! :) Jangan lupa PhoneGap, yang pernah saya dengar beragam ulasannya, dan Red Foundry, yang lebih mirip cookie cutter tetapi terlihat bagus - belum lintas platform.
makdad
1
Anda juga dapat menggunakan PhoneGap. Saya telah menggunakannya dan menasihati Anda untuk melakukannya. Ada ketentuan untuk menghasilkan file exe (IPA untuk iOS) menggunakan aplikasi yang dikembangkan di PhoneGap di Android.
Jayprakash Dubey
Saya ingin memberikan pembaruan untuk pertanyaan ini karena sekarang sudah berakhir tahun 2016 dan lanskap alat lintas platform telah berubah. Saya akan mengatakan itu tergantung pada bahasa pemrograman pilihan Anda dan di mana tim Anda memiliki paling banyak xp dengan: 1. JavaScript: Kinerja Phonegap buruk di seluler, sehingga menggunakan alat dengan komponen asli tetapi JS untuk logika aplikasi disarankan. Pilihannya adalah V-Play ( v-play.net/apps ) atau React ( reactnative.com ). 2. C #: Xamarin adalah temanmu. 3. C ++: Gunakan kerangka kerja C ++ seperti Qt ( qt.io ) Penafian: Saya salah satu orang di balik V-Play, yang didasarkan pada Qt.
Christian Feldbacher
Jawaban: Flutter , ini kerangka UI seluler baru Google untuk membuat antarmuka asli di iOS dan Android dalam waktu singkat.
naXa
Ada juga proyek haxe.org aktif yang menjanjikan .
Eugene Gr. Philippov

Jawaban:

104

Penafian: Saya bekerja untuk perusahaan, Kode Partikel, yang membuat kerangka kerja lintas platform. Ada banyak sekali perusahaan di bidang ini. Tampaknya yang baru bermunculan setiap minggu. Kabar baik untuk Anda: Anda memiliki banyak pilihan.

Kerangka kerja ini mengambil pendekatan yang berbeda, dan banyak di antaranya dirancang secara fundamental untuk memecahkan masalah yang berbeda. Beberapa fokus pada game, beberapa berfokus pada aplikasi. Saya akan menanyakan pertanyaan-pertanyaan berikut:

Apa yang ingin kamu tulis Aplikasi perusahaan, aplikasi produktivitas pribadi, permainan puzzle, penembak orang pertama?

Lingkungan pengembangan seperti apa yang Anda sukai? IDE atau editor teks biasa?

Apakah Anda memiliki perasaan yang kuat tentang bahasa pemrograman? Dari kerangka kerja yang saya kenal, Anda dapat memilih dari ActionScript, C ++, C #, Java, Lua, dan Ruby.

Perusahaan saya lebih banyak di ruang permainan, jadi saya belum banyak bermain dengan kerangka JavaScript + CSS seperti Titanium, PhoneGap, dan Sencha. Tetapi saya dapat memberi tahu Anda sedikit tentang beberapa kerangka kerja berorientasi game. Game dan aplikasi internet yang kaya adalah area di mana kerangka kerja lintas platform dapat bersinar, karena aplikasi ini cenderung lebih mementingkan keunikan visual dan tidak terlalu memadukan dengan UI asli. Berikut beberapa kerangka kerja yang harus dicari:

  • Unity www.unity3d.com adalah mesin game 3D. Ini benar-benar tidak seperti lingkungan pengembangan lain yang pernah saya kerjakan. Anda membangun pemandangan dengan model 3D, dan menentukan perilaku dengan melampirkan skrip ke objek. Anda dapat membuat skrip dalam JavaScript, C #, atau Boo. Jika Anda ingin membuat game berbasis fisika 3D yang akan berjalan di iOS, Android, Windows, OS X, atau konsol, ini mungkin alat untuk Anda. Anda juga dapat menulis game 2D menggunakan aset 3D - contohnya adalah game indie Max dan Magic Marker, penggulung samping berbasis fisika 2D yang ditulis dalam Unity. Jika Anda tidak mengetahuinya, saya sarankan untuk memeriksanya (terutama jika ada anak di rumah Anda). Max tersedia untuk PC, Wii, iOS dan Windows Phone 7 (meskipun versi terakhir adalah port, karena Unity tidak mendukung WinPhone). Unity hadir dengan beberapa contoh game lengkap dengan aset dan tekstur 3D, yang benar-benar membantu meningkatkan kecepatan dengan lingkungan yang cukup rumit.

  • Corona www.anscamobile.com/corona adalah mesin permainan 2D yang menggunakan bahasa scripting Lua dan mendukung iOS dan Android. Nilai jual Corona adalah kemampuannya untuk menulis game berbasis fisika dengan sangat cepat dalam beberapa baris kode, dan banyaknya game berbasis Corona di toko aplikasi iOS merupakan bukti keberhasilannya. Lingkungannya sangat ramping, yang akan menarik bagi sebagian orang. Muncul dengan simulator dan debugger. Anda menambahkan editor teks pilihan Anda, dan Anda memiliki lingkungan pengembangan. SDK dasar tidak menyertakan komponen UI apa pun, seperti tombol atau kotak daftar, tetapi add-on CoronaUI tersedia untuk pelanggan.

  • Particle SDK www.particlecode.com adalah solusi lintas platform yang sedikit lebih umum dengan latar belakang permainan. Anda dapat menulis di Java atau ActionScript, menggunakan model aplikasi MVC. Ini termasuk IDE berbasis Eclipse dengan editor UI WYSIWYG. Saat ini kami mendukung pembuatan untuk perangkat Android, iOS, webOS, dan Windows Phone 7. Anda juga dapat mengeluarkan Flash atau HTML5 untuk web. Kerangka kerja ini awalnya dikembangkan untuk game sosial multipemain online, seperti poker dan backgammon, dan sesuai dengan game dan aplikasi 2D dengan logika yang kompleks. Kerangka ini mendukung grafik 2D dan mencakup mesin fisika 2D.

NB:

Hari ini kami mengumumkan bahwa Kode Partikel telah diakuisisi oleh Appcelerator, pembuat kerangka lintas platform Titanium.

...

Mulai 1 Januari 2012, [ Particle Code ] tidak lagi secara resmi mendukung platform [ Particle SDK ].

Sumber

  • Airplay SDK www.madewithmarmalade.com adalah kerangka kerja C ++ yang memungkinkan Anda mengembangkan Visual Studio atau Xcode. Ini mendukung grafik 2D dan 3D. Airplay menargetkan iOS, Android, Bada, Symbian, webOS, dan Windows Mobile 6. Mereka juga memiliki add-on untuk membuat aplikasi AirPlay untuk PSP. C ++ saya sangat berkarat, saya belum sering memainkannya, tapi kelihatannya keren.

Dalam hal kurva pembelajaran, saya akan mengatakan bahwa Unity memiliki kurva pembelajaran paling curam (bagi saya), Corona adalah yang paling sederhana, dan Partikel dan Airplay ada di antara keduanya.

Hal menarik lainnya adalah bagaimana framework menangani faktor bentuk yang berbeda. Corona mendukung penskalaan dinamis, yang akrab bagi pengembang Flash. Ini sangat mudah digunakan tetapi berarti Anda akan menghabiskan ruang layar saat beralih dari layar 4: 3 seperti iPhone ke 16: 9 seperti perangkat Android qHD baru. Editor UI Particle SDK memungkinkan Anda mendesain tata letak fleksibel berskala itu, tetapi juga memungkinkan Anda menyesuaikan tata letak untuk ukuran layar individual. Ini membutuhkan lebih banyak waktu tetapi memungkinkan Anda membuat aplikasi terlihat dibuat khusus untuk setiap layar.

Tentu saja, apa yang berhasil untuk Anda bergantung pada selera dan gaya kerja Anda sendiri serta tujuan Anda - jadi saya sarankan untuk mengunduh beberapa alat ini dan mencobanya. Semua alat ini gratis untuk dicoba.

Juga, jika saya bisa memasukkan pengumuman layanan publik - sebagian besar alat ini dalam pengembangan yang sangat aktif. Jika Anda menemukan kerangka kerja yang Anda sukai, kirimkan umpan balik dan beri tahu mereka apa yang Anda suka, apa yang tidak Anda sukai, dan fitur yang ingin Anda lihat. Anda memiliki peluang nyata untuk memengaruhi apa yang masuk ke versi berikutnya dari alat ini.

Semoga ini membantu.

DocDude
sumber
Saya memikirkan lebih banyak pengembangan perusahaan, tetapi Anda mungkin telah menginspirasi saya untuk melihat salah satu SDK ini untuk bersenang-senang.
Alister
tautan ke setiap kerangka kerja akan berguna
Petrus Theron
2
Pembaruan: Kode Partikel diakuisisi oleh Appcelerator, pembuat Titanium, jadi nasib SDK Partikel tidak pasti. Airplay mengubah namanya menjadi "Marmalade".
DocDude
15

MonoTouch dan MonoDroid tetapi apa yang akan terjadi pada bagian Attachmate sekarang adalah dugaan siapa pun. Tentu saja bahkan dengan solusi mono Anda masih membuat tampilan non lintas platform tetapi idenya adalah penggunaan kembali logika bisnis.

Awasi http://www.xamarin.com/ akan menarik untuk melihat apa yang mereka hasilkan.

Derek Beattie
sumber
12

Pengalaman saya membuat sesuatu yang sangat sederhana di PhoneGap + jQuery Mobile baik-baik saja. Saya bisa melakukannya dengan cepat untuk iOS. Namun, itu tidak berfungsi di ponsel Android saya tanpa membuat beberapa perubahan. Proyek ini adalah aplikasi yang sangat sederhana untuk mengambil gambar dan mempostingnya ke situs web. Dan pada akhirnya, ini terasa "kikuk" dibandingkan dengan aplikasi asli yang sebenarnya.

Saya tidak percaya akan ada pengembangan lintas platform yang mudah. Saya pikir browser ini sedekat yang akan Anda dapatkan. Dengan memilih sesuatu seperti PhoneGap, saya pikir Anda hanya memperdagangkan satu set poin nyeri untuk satu set poin nyeri yang berbeda.

Evan
sumber
7

Jika Anda tidak ingin menggunakan framework lengkap untuk pengembangan lintas platform, lihat C ++ sebagai opsi. iOS sepenuhnya mendukung penggunaan C ++ untuk logika aplikasi Anda melalui Objective-C ++. Saya tidak tahu seberapa baik dukungan Android untuk C ++ melalui NDK cocok untuk menjalankan logika bisnis Anda di C ++ daripada hanya beberapa cuplikan kode yang sangat penting untuk performa, tetapi jika kasus penggunaan tersebut didukung dengan baik, Anda dapat mencobanya.

Pendekatan ini tentu saja hanya masuk akal jika logika aplikasi Anda merupakan bagian terbesar dari proyek Anda, karena antarmuka pengguna harus ditulis secara individual untuk setiap platform.

Faktanya, C ++ adalah satu-satunya bahasa pemrograman yang paling banyak didukung (dengan pengecualian C), dan oleh karena itu merupakan bahasa inti dari sebagian besar aplikasi lintas platform besar.

petani kecil
sumber
3
Btw, Android tampaknya secara langsung mendukung aktivitas yang ditulis dalam C ++ saja: developer.android.com/reference/android/app/NativeActivity.html
yeoman
4
Dengan satu peringatan - tidak ada akses Java (jadi tidak ada integrasi pustaka pihak ketiga atau akses SDK) dari NativeActivity. Menjadikannya tidak cocok untuk berbagai tujuan.
rbgrn
6

Meskipun saya baru saja mulai melihat area pengembangan ini, saya pikir itu tergantung pada perbedaan mendasar ini: beberapa alat mempertahankan kode asli, dan beberapa port ke asli ...

misalnya, PhoneGap hanya menyimpan kode HTML / CSS / JS yang Anda tulis, dan membungkusnya dengan kode iOS yang memadai untuk memenuhi syarat sebagai aplikasi, sedangkan Appcelerator memberi Anda proyek XCode ... jadi jika Anda tidak terbiasa dengan iOS, maka itu tidak akan benar-benar memberikan manfaat apa pun kepada Anda melalui PhoneGap, tetapi jika Anda TIDAK tahu sedikit, itu mungkin memberi Anda sedikit lebih banyak kemampuan untuk mengubah versi asli setelah upaya pengkodean Anda yang lebih besar.

Saya sendiri belum pernah menggunakan appcelerator, tetapi mengerjakan proyek beberapa minggu lalu di mana salah satu anggota tim kami membuat seluruh aplikasi iPad dalam waktu sekitar 24 jam menggunakannya.

Dan ya, untuk benar-benar tunduk pada apple, Anda harus mendapatkan mac, tetapi jika itu bukan platform kerja utama Anda, Anda bisa menjadi murah.

Robot Woods
sumber
3

Cappuccino atau PhoneGap .

Terkadang meskipun mencoba mencari jalan pintas tidak menghemat waktu Anda atau memberi Anda produk akhir yang sebanding.

SK9
sumber
3

Jika Anda pernah menggunakan LUA, Anda mungkin mencoba Corona SDK dapat membuat aplikasi yang berjalan di iOS dan Android

https://coronalabs.com/

Saya telah mengunduhnya dan mengotak-atik beberapa, saya menemukan LUA bahasa scripting yang sangat mudah dipelajari tanpa gangguan / batasan bahasa scripting yang biasa ....

Jeff
sumber
2

Ada juga BatteryTech yang telah kami gunakan selama 18 bulan terakhir dan telah merilis beberapa game darinya. http://www.batterypoweredgames.com/batterytech

Semua dukungan C ++, Android dan iOS, semua pengguna mendapatkan sumber lengkap. V2 baru menyertakan binding lua.

rampok
sumber
3
Mulai 30/5/12: $ 200 untuk lisensi bagi 5 pengembang atau kurang. $ 800 untuk lebih dari 5. Tidak dapat digunakan untuk proyek sumber terbuka.
Roger Dahl