2011-01-02 31 views
37

Có cách nào ưu tiên để thực hiện việc này không?chuyển ứng dụng iOS (iPhone) sang máy Mac?

Ứng dụng được đề cập không quá lớn. . . trò chơi một người chơi mà tôi đã viết trong một vài tháng.

EDIT: Tôi nên thêm rằng tôi không có kinh nghiệm về phát triển mac. . . bên ngoài những gì đến một cách tự nhiên với một nhà phát triển iOS.

EDIT: Các lớp được sử dụng nhiều trong trò chơi: các lớp con của NSObject, UIView và UIViewController. Tôi không biết nhiều về NSView, nhưng tôi khá chắc chắn rằng tất cả các công cụ UIView sẽ hoạt động trong lớp đó. Ngoài ra một số sử dụng của UITableViewController. Tôi cũng có Game Center, nhưng bây giờ tôi có thể bỏ phần đó ra. Không có cảm ứng đa điểm.

EDIT: Đồ họa của tôi là tất cả những thứ nằm trong khung công tác QuartzCore và CoreGraphics. Tôi có phân cấp chế độ xem trung bình.

EDIT: Nếu bạn đang làm một cổng như vậy, bạn cũng có thể quan tâm đến các vấn đề của memory management

+1

Bạn đã sử dụng công nghệ nào để viết trò chơi? Làm thế nào phụ thuộc vào các lớp học/đối tượng UIKit là bạn? –

+1

Chỉ cần nhớ rằng, trackpad mặc dù, chạm không còn là phương thức nhập chính. – BoltClock

Trả lời

25
  1. Không có cách nào dễ dàng. Thật đơn giản. Đáng buồn thay, bạn chỉ cần trở nên giỏi trong việc lập trình Mac.

  2. "Tôi chắc chắn tất cả nội dung của UIView sẽ hoạt động trong lớp học" - thật không may là không. Tất cả mọi thứ là khác nhau mà đủ, bạn phải làm việc chăm chỉ.

Nó không phải là một buổi biểu diễn vui vẻ. Hãy chắc chắn rằng bạn thực sự, thực sự nghĩ rằng nó có giá trị về mặt tài chính.

Ngoài bất cứ điều gì khác, hãy lưu ý đến các vấn đề "lượt xem anh chị em không làm việc trên OSX" nếu bạn xếp chồng lên nhiều lượt xem trong ứng dụng iOS của mình. Về cơ bản, bạn sẽ phải thay đổi để sử dụng các lớp (thay vì chỉ đơn giản là quan điểm) trên máy Mac nếu bạn dựa vào cấu trúc phân cấp lồng nhau ở đây và trên điện thoại!

Nhấp vào liên kết này: Is there a proper way to handle overlapping NSView siblings? để biết thông tin chi tiết về sự cố cụ thể đó!

+0

Có, đôi khi tôi quên cách tuyệt vời nó là UIKit cầu UIViews để CALayers cho bạn rất sạch sẽ. Chuyển đổi chế độ xem thành các lớp khi mọi thứ bắt đầu phá vỡ OSX không phải là điều thú vị. –

+0

"Chế độ xem anh chị em nào không hoạt động trên OSX?" Một chút googling đã không giúp tôi. –

+0

OK, tôi đoán bạn có nghĩa là vấn đề được đề cập trong [câu hỏi này] (http://stackoverflow.com/questions/466297/is-there-a-proper-way-to-handle-overlapping-nsview-siblings) –

4

Bạn có thể có nhiều việc trước mắt. Trong khi các lớp học thuật toán thuần túy sẽ chuyển đổi mà không có bất kỳ thay đổi nào, bất kỳ thứ gì chạm vào UIKit có thể sẽ cần phải được viết lại hoặc được điều chỉnh nhiều. Mẫu thiết kế lớp UI trên OSX là một mối quan hệ giữa các khung nhìn, trong đó mã của bạn chịu trách nhiệm quản lý các bộ điều khiển; trong khi trên iOS, nó là một trong những mối quan hệ giữa các bộ điều khiển chế độ xem, trong đó quản lý chế độ xem được ngụ ý.

Tất nhiên, như BoltClock đã đề cập, bạn có vấn đề tương tác. Do cảm ứng không còn hoạt động nữa, có thể bạn sẽ cần phải làm việc trên mô hình tương tác của mình trước, ngay cả trước khi bạn bắt đầu chuyển.

2

Có thư viện mã nguồn mở (BSD) UMEKit có thể giúp chuyển một vài lớp UI, nhưng bạn có thể phải viết lại số tiền hợp lý của giao diện người dùng để xử lý tốt hơn giao diện chuột/bàn phím/đa cửa sổ/menu môi trường. Các NSObject cơ bản và một số đồ họa đồ họa GL và Quartz mở, có thể chỉ hoạt động với các lần chạm nhẹ.

2

Như những người khác nói, việc chuyển có thể là công việc vặt. Mặc dù vậy, các kỹ thuật chung vẫn hoạt động. Bạn thiết kế lại giao diện trong Interface Builder (nếu có) và kiểm tra những điều khiển khác nhau được gọi là gì (CocoaTouch chỉ có một tập nhỏ các điều khiển máy tính để bàn thông thường). UI * thường trở thành NS *.Phái đoàn Tableview là tương tự, vì vậy nó có thể sẽ dễ dàng.

Tôi sẽ phải giới thiệu cuốn sách Aaron Hillegass như bình thường. Đó là một giới thiệu tuyệt vời cho sự phát triển của Mac, và biết sự phát triển iOS mang lại cho bạn một lợi thế.

Vì đây là trò chơi, bạn có thể cần xem xét cách thực hiện chế độ toàn màn hình. Trò chơi không nhất thiết chiếm toàn bộ màn hình nữa và bạn không nên ép buộc nó. Bây giờ, toàn bộ các tùy chọn mới hoàn toàn là cần thiết. Tất nhiên có một số "vui vẻ" liên quan đến việc có nhiều cách mới để xử lý danh sách độ phân giải/thay đổi bằng Snow Leopard (với những cách trước đây cho bạn những cảnh báo không dùng nữa).

Chỉ cần chấp nhận rằng sẽ có một giai đoạn chuyển tiếp có thể kéo dài cho đến khi tất cả mọi thứ "nhấp chuột" :)

Các vấn đề liên quan