Tôi đang chuyển ứng dụng của mình từ iOS sang Android: tôi cần biết gì? [đóng cửa]


15

Những cạm bẫy nào tôi nên tránh?

  • Những mô hình ngôn ngữ Java nào khiến các nhà phát triển Objective-C luôn hiểu sai? Tôi đã học lập trình bằng Java, nhưng tôi đã không làm việc gì ngoài Objective-C trong nhiều năm nay.
  • Các mẫu thiết kế khác nhau như thế nào giữa Android và iOS?
  • Nếu bạn đã tự thực hiện quá trình chuyển đổi, phần nào của Android làm bạn bối rối hoặc mất nhiều thời gian hơn để học?
  • Eclipse có phải là OS X IDE tốt nhất cho Android không?

Đối với hồ sơ, ứng dụng của tôi được liên kết chặt chẽ với UIKit và Foundation, vì vậy từ "porting" có thể là một cách viết sai; Tôi thực sự sẽ hoàn toàn viết lại nó cho Android. Không sử dụng lại mã. Ngoài ra, tôi đang làm điều này để học Android, vì vậy tôi thà thất bại ở cổng và học Android hơn là đi đường tắt.


Một chút về nền tảng, câu hỏi này đã được nhắc nhở bởi các loại câu hỏi tôi thấy trên Stackoverflow. Thường thì bạn có thể biết nền tảng của ai đó là gì (C # hoặc Java) bằng những lỗi ngớ ngẩn mà họ mắc phải khi họ cố gắng viết Obj-C. Tôi muốn tránh các loại sai lầm khiến các nhà phát triển Java đảo mắt và nói, "Các nhà phát triển Mục tiêu ngớ ngẩn, họ sẽ không bao giờ học?"


2
Is Eclipse the best OS X IDE for Android?Có, ADT không hoạt động tốt trên netbeans tôi đã thử. Eclipse là IDE được đề xuất.
Keyo

@Keyo: Ơ? Khi tôi dùng thử trên Netbeans một năm rưỡi trước, nó hoạt động khá tốt. Chắc chắn qua thời gian đó nó sẽ trở nên tốt hơn?
TheLQ

Trả lời câu trả lời nhận xét của @ Nassign: Tôi chắc chắn sẽ nhận được nhiều câu trả lời hơn nếu tôi đăng trên Stackoverflow, nhưng duyệt Trình lập trình có vẻ như có rất nhiều loại câu hỏi đang được di chuyển ở đây. Nếu nó phù hợp hơn với diễn đàn đó, tôi có thể hỏi nó ở đó.
kubi

Tôi nghĩ bạn sẽ nhận được nhiều câu trả lời hơn nếu bạn đặt nó trong stackoverflow.
Nassign

1
@kubi Đây là một nơi tốt để hỏi điều này và phù hợp với mục đích của trang web này: hy vọng bạn nhận được một số câu trả lời, bản thân tôi quan tâm.

Câu trả lời:


11

Tôi đang chuyển một ứng dụng từ iOS sang Android, đó là ứng dụng của người khác mà tôi đang làm việc để thực hiện cổng nhưng không phải là ít.

Trước hết tôi sẽ nói rằng các cơ sở người dùng đã được dạy rất nhiều cách khác nhau để tương tác với các thiết bị của họ. Rất nhiều thứ này đến từ thiết kế thực tế của các ứng dụng cũng như cách thức hoạt động của các thiết bị.

Một số điều chung:

  • Phong cảnh được yêu cầu khá nhiều trên các thiết bị Android
  • Các ứng dụng Android có xu hướng tiếp tục chạy khi chúng không được sử dụng tích cực, vì vậy bạn cần suy nghĩ về vấn đề này đối với các sự cố mạng, gps, v.v ...
  • Phân đoạn thiết bị, có hàng tấn thiết bị Android và độ phân giải màn hình, đây là nơi bố trí tương đối và hình ảnh chín miếng rất tiện dụng.

Một điều lớn mà nhiều người ban đầu không nghĩ tới Your UI can not be exactly the same on both devices, chắc chắn nó có thể tương tự nhưng việc chuyển giao giao diện người dùng iPhone sang thiết bị Android sẽ không hoạt động tốt.

Một số lý do:

  • Menu ngữ cảnh dài
  • Menu bật lên
  • Phân đoạn thiết bị gây ra độ phân giải và tỷ lệ khung hình khác nhau
  • Không phải cùng điều khiển để làm việc với

Phần cuối thực sự không phải là vấn đề lớn vì hầu hết chỉ thực hiện phần lớn những gì bạn đang làm việc với Java và SDK Android. Các vấn đề lớn nhất của tôi xuất phát từ những gì Người dùng mong đợi và hành vi và sự khác biệt của UI, đôi khi nó tốt hơn và đôi khi còn tệ hơn. Nó thực sự chỉ phụ thuộc vào những gì ứng dụng của bạn đang làm.

BIÊN TẬP

Tôi chỉ nhận ra rằng tôi đã không trả lời các phần thực tế của câu hỏi của bạn, vì vậy hãy đi (ít nhất là bức ảnh đẹp nhất của tôi)

Tôi sẽ không nói rằng có bất kỳ mô hình ngôn ngữ lớn nào mà các nhà phát triển Obj-C hiểu lầm, tôi sẽ nói rằng Java có lẽ đơn giản hơn để có được những gì tôi muốn nó làm từ góc độ OOP. (Tôi nên nói rằng tôi chỉ thực sự làm việc với .NET và Java và chỉ biết đủ Obj-C để có được).

Tôi chắc chắn sẽ sử dụng Eclipse, tôi đã mệt mỏi khi sử dụng IntellijIdea trong một thời gian và nó chỉ khiến tôi gặp nhiều vấn đề khi cố gắng làm cho nó làm một số việc nhất định.


Khi bạn nói "Phong cảnh là bắt buộc", ý bạn là ngoài chân dung? Ứng dụng của tôi chỉ thực hiện một số điều trong nền trên iOS, tôi có cần từ chối rõ ràng không chạy trong nền nếu tôi không cần phải làm bất cứ điều gì trong nền không?
kubi

@kubi yea ngoài chân dung, bởi vì một bộ thiết bị tốt có bàn phím phần cứng đặt thiết bị ở chế độ nằm ngang khi sử dụng. Trên nền tảng, thực tế là ứng dụng tiếp tục chạy khi người dùng chuyển đổi ứng dụng.
msarchet

+1 (hoặc hơn): "chuyển giao diện người dùng iPhone sang thiết bị Android sẽ không hoạt động tốt." Đó là sự thật: trên thực tế UI có thể khá khác biệt, vì lib có sẵn là khác nhau.
Dan Rosenstark

IntelliJ Idea hoạt động tuyệt vời để phát triển Android cho tôi. Yêu nó.
Alexander Babaev

3

[câu trả lời này là một loại lan man hoặc rant. Tôi sẽ xóa nó nhưng nghĩ nó có thể thú vị: hãy cho tôi biết qua nhận xét nếu tôi nên xóa nó và tôi sẽ].

Tôi không làm việc trên Android nhưng tôi làm việc trong Java và iOS (với Obj-C). Một điều thực sự khác biệt về phát triển Java là một IDE có thể giúp được bao nhiêu (mọi người sẽ bảo bạn không sử dụng IDE, một điều hoàn toàn khác với cùng một điều: tuy nhiên, rất ít người khuyên điều này với Java) . XCode thường không thể phát hiện ngay cả các lỗi cú pháp đơn giản nhất (do cấu trúc của ngôn ngữ, tôi nghĩ vậy). Mặt khác, trong Java, IDE có thể giúp bạn di chuyển nhanh hơn nhiều so với khi không có nó. Bạn cũng có thể làm những thứ thực sự tuyệt vời như lập trình cho cient gọi và THEN viết phương thức. Ví dụ, trong Eclipse, nếu tôi gõ

blah.doIt(firstObj, secondObj);

firstObjsecondObjStringtrường hợp, IDE sẽ cho tôi lựa chọn để thực hiện một phương pháp với sig "public void DoIT (String firstObj, String secondObj)." Điều đó thực sự tuyệt vời, và chỉ là phần nổi của tảng băng trôi: IDE là bạn của bạn. Tôi đã nghe nói rằng IntelliJ có thể còn tuyệt hơn nữa (mặc dù trong các thử nghiệm của tôi, nó đã không được như vậy).

Có một cạm bẫy trong câu trả lời này? Có lẽ đó là: nghĩ rằng IDE đóng vai trò tương tự trong Obj-C và Java. Trong Java, IDE có thể tự làm những việc khó thực hiện. Việc tái cấu trúc tự động, do cách thức của Java, nó mạnh hơn 100 lần so với XCode. Điều này có nghĩa là bạn có thể hoãn một số câu hỏi thiết kế cho đến sau này.


Rất nhiều suy nghĩ của tôi về điều này đã thay đổi nhờ vào AppCode. Thật tuyệt vời. Tuy nhiên, nó không thể phân biệt giữa những thứ cùng tên, nhưng nó chắc chắn sẽ làm rất nhiều việc cho bạn.
Dan Rosenstark
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.