Saya memindahkan aplikasi dari iOS ke Android: apa yang perlu saya ketahui? [Tutup]

15

Jebakan apa yang harus saya hindari?

  • Paradigma bahasa Java apa yang dilakukan oleh para pengembang Objective-C secara konsisten salah paham? Saya belajar memprogram di Jawa, tetapi saya telah bekerja di Objective-C selama bertahun-tahun sekarang.
  • Apa perbedaan pola desain antara Android dan iOS?
  • Jika Anda telah membuat transisi sendiri, bagian Android mana yang membingungkan Anda atau perlu waktu lebih lama untuk Anda pelajari daripada yang seharusnya?
  • Apakah Eclipse IDE OS X terbaik untuk Android?

Sebagai catatan, aplikasi saya sangat terikat dengan UIKit dan Foundation, sehingga kata "porting" mungkin keliru; Saya sebenarnya akan sepenuhnya menulis ulang untuk Android. Tidak ada kode yang digunakan kembali. Saya juga melakukan ini untuk mempelajari Android, jadi saya lebih suka gagal di port dan belajar Android daripada mengambil jalan pintas.


Sebagai sedikit latar belakang, pertanyaan ini diminta oleh jenis pertanyaan yang saya lihat di Stackoverflow. Seringkali Anda dapat mengetahui latar belakang seseorang (C # atau Java) dengan kesalahan konyol apa yang mereka buat ketika mereka mencoba menulis Obj-C. Saya ingin menghindari jenis kesalahan yang membuat pengembang Java memutar mata mereka dan berkata, "Pengembang Silly Objective-C, tidak akankah mereka belajar?"

kubi
sumber
2
Is Eclipse the best OS X IDE for Android?Ya, ADT tidak berfungsi dengan baik pada netbeans terakhir yang saya coba. Eclipse adalah IDE yang direkomendasikan.
Keyo
@Keyo: Eh? Ketika saya mencobanya di Netbeans satu setengah tahun yang lalu itu bekerja dengan cukup baik. Tentunya selama waktu itu akan menjadi lebih baik?
TheLQ
Sebagai jawaban atas komentar-sebagai-jawaban-@ Nassign: Saya pasti akan mendapatkan lebih banyak jawaban jika saya telah memposting di Stackoverflow, tetapi menelusuri Programmer sepertinya ada banyak jenis pertanyaan yang sedang dimigrasi ke sini. Jika lebih cocok untuk forum itu, saya bisa bertanya di sana.
kubi
Saya pikir Anda akan mendapatkan lebih banyak jawaban jika Anda meletakkannya di stackoverflow.
Nassign
1
@kubi Ini adalah tempat yang baik untuk menanyakan hal ini dan sesuai dengan tujuan situs ini: semoga Anda mendapatkan jawaban, saya tertarik sendiri.

Jawaban:

11

Saya porting aplikasi dari iOS ke Android, ini adalah aplikasi orang lain yang bekerja sama dengan saya untuk melakukan port tetapi tidak kurang.

Pertama saya akan mengatakan bahwa basis pengguna telah diajarkan secara drastis berbagai cara berinteraksi dengan perangkat mereka. Banyak dari ini berasal dari desain aplikasi yang sebenarnya serta cara perangkat berfungsi.

Beberapa hal umum:

  • Lansekap cukup banyak diperlukan di perangkat Android
  • Aplikasi Android cenderung terus berjalan saat tidak digunakan secara aktif, jadi Anda perlu memikirkan ini untuk masalah jaringan, gps, dll ...
  • Segmentasi Perangkat, ada banyak perangkat Android dan resolusi layar, di sinilah tata letak relatif dan gambar sembilan-tambalan sangat berguna.

Yang besar yang awalnya tidak dipikirkan banyak orang Your UI can not be exactly the same on both devices, tentu bisa serupa tetapi porting UI iPhone ke Perangkat Android tidak akan bekerja dengan baik.

Beberapa alasan:

  • Menu konteks sentuhan panjang
  • Menu popup
  • Segmentasi perangkat menyebabkan resolusi dan rasio aspek yang berbeda
  • Bukan kontrol yang sama untuk bekerja

Bagian belakang sebenarnya bukan masalah besar karena sebagian besar hanya menerapkan sebagian besar dari apa yang Anda kerjakan dengan Java dan Android SDK. Masalah terbesar saya berasal dari apa yang diharapkan Pengguna dan perilaku serta perbedaan UI, terkadang lebih baik dan terkadang lebih buruk. Itu benar-benar hanya tergantung pada apa yang aplikasi Anda lakukan.

EDIT

Saya baru sadar saya tidak menjawab bagian sebenarnya dari pertanyaan Anda, jadi begini (bidikan terbaik saya setidaknya)

Saya tidak akan mengatakan ada paradigma bahasa besar yang disalahpahami oleh Obj-C, saya akan mengatakan bahwa Jawa mungkin lebih sederhana untuk mendapatkan apa yang saya inginkan dari perspektif OOP. (Saya harus mengatakan saya hanya benar-benar bekerja dengan .NET dan Java dan hanya cukup tahu Obj-C untuk bertahan).

Saya pasti akan menggunakan Eclipse, saya lelah menggunakan IntellijIdea untuk sementara waktu dan itu hanya memberi saya banyak masalah ketika mencoba membuatnya melakukan hal-hal tertentu.

msarchet
sumber
Ketika Anda mengatakan "Landscape diperlukan", maksud Anda selain potret? Aplikasi saya hanya melakukan beberapa hal di latar belakang pada iOS, apakah saya perlu secara eksplisit menyisih dari menjalankan di latar belakang jika saya tidak perlu melakukan apa pun di latar belakang?
kubi
@ Kubi ya selain potret, karena seperangkat perangkat yang baik memiliki keyboard perangkat keras yang menempatkan perangkat dalam lanskap saat digunakan. Di latar belakang fakta bahwa aplikasi terus berjalan ketika pengguna beralih aplikasi.
msarchet
+1 (atau lebih): "porting UI iPhone ke Perangkat Android tidak akan bekerja dengan baik." Itu benar: pada kenyataannya UI mungkin sangat berbeda, karena lib yang tersedia berbeda.
Dan Rosenstark
Ide IntelliJ bekerja sangat baik untuk pengembangan Android bagi saya. Suka.
Alexander Babaev
3

[jawaban ini agak mengoceh atau kata-kata kasar. Saya akan menghapusnya tetapi berpikir itu mungkin menarik: beri tahu saya melalui komentar jika saya harus menghapusnya dan saya akan].

Saya tidak bekerja di Android tetapi saya bekerja di Java dan iOS (dengan Obj-C). Satu hal yang sangat berbeda tentang pengembangan Java adalah seberapa banyak IDE dapat membantu (orang-orang akan memberitahu Anda untuk tidak menggunakan IDE, yang sama sekali berbeda untuk hal yang sama: beberapa orang menyarankan ini dengan Java, namun) . XCode secara umum bahkan tidak dapat mendeteksi dengan benar kesalahan sintaks yang paling sederhana (karena struktur bahasa, saya pikir). Di Jawa, di sisi lain, IDE dapat membuat Anda bergerak lebih cepat daripada Anda tanpanya. Anda juga dapat melakukan hal-hal yang sangat keren seperti pemrograman cient pemanggil dan MAKA menulis metode. Di Eclipse, misalnya, jika saya mengetik

blah.doIt(firstObj, secondObj);

dan firstObjdan secondObjyang Stringcontoh, IDE akan memberikan saya pilihan untuk membuat metode dengan sig "public void Doit (String firstObj, String secondObj)." Itu sangat keren, dan hanya puncak gunung es: IDE adalah teman Anda. Saya pernah mendengar bahwa IntelliJ mungkin lebih keren (meskipun dalam uji coba saya belum).

Apakah ada jebakan dalam jawaban ini? Mungkin itu: berpikir IDE memainkan peran yang sama dalam Obj-C dan Java. Di Jawa, IDE dapat melakukan hal-hal yang akan sangat sulit dilakukan sendiri. Refactoring otomatis, karena Java, 100x lebih kuat daripada XCode. Ini berarti bahwa Anda dapat menunda beberapa pertanyaan desain hingga nanti.

Dan Rosenstark
sumber
Banyak pemikiran saya tentang ini telah berubah berkat AppCode. Itu mengagumkan. Tetap saja, itu tidak dapat membedakan antara hal-hal yang bernama sama, tetapi itu pasti banyak pekerjaan untuk Anda.
Dan Rosenstark