2010-01-14 28 views
5

Làm thế nào để bạn chuyển ứng dụng Cocoa/Mac sang Windows? Tôi có nghĩa là làm thế nào bạn sẽ đi về nó? Giả sử ứng dụng được viết bằng Objective-C và Cocoa, không có gì lạ mắt đang diễn ra, không có "động cơ" có thể được tính toán, v.v.Làm thế nào để bạn chuyển một ứng dụng Cocoa/Mac sang Windows?

Viết lại từ đầu? Tôi không nghĩ rằng sẽ có sự chồng chéo rất lớn giữa Mac và Windows codebases, phải không?

+0

Cảm ơn sự giúp đỡ của bạn, mọi người! Tôi đánh giá cao các ứng dụng có cảm giác giống như Mac, có giao diện giống như chúng thuộc về Mac. Vì vậy, Cocoa gốc là nó. Tôi nghĩ người dùng Windows sẽ đánh giá cao tương tự như một ứng dụng Windows gốc. Có vẻ như cách duy nhất để đến đó là viết lại. – Ron

Trả lời

2

Vấn đề với Mục tiêu C là hỗ trợ rất kém của nó trên bất kỳ nền tảng nào không phải là OS X. Bạn có thể cố gắng sử dụng Cocotron, nhưng tôi sẽ không xem xét việc sản xuất đã sẵn sàng chưa.

Đối với tính di động, viết lại theo thứ tự. Với việc sử dụng chuẩn C hoặc C++ chuẩn cho "lõi" của ứng dụng, bạn vẫn có thể triển khai mã GUI cụ thể cho nền tảng. Nếu bạn không thích duy trì hai GUI, bạn cũng có thể thử một bộ công cụ như Qt

+0

Cảm ơn sự giúp đỡ của bạn – Ron

+0

liên kết đến [qt.nokia.com] (http://qt.nokia.com) đã thay đổi thành [qt.io] (http://qt.io) – armanke13

1

Bạn có biết về Cocotron không? Có vẻ như dự án có thể đã cũ, nhưng dù sao thì đó cũng là một điểm khởi đầu tốt. Đó là một dự án để chuyển các API lõi.

Nếu đơn đăng ký của bạn không được phân tách rõ ràng (ví dụ: a la MVC) thì giải pháp duy nhất là viết lại, tôi nghĩ vậy.

+0

Cocotron trông đẹp nhưng cũ.:-( Và ứng dụng sẽ là MVC sạch nhưng mọi phần được viết trong Mục tiêu-C. Sẽ dựa vào CoreData Cảm ơn sự giúp đỡ của bạn! – Ron

+0

Cocotron không cũ. Xem http://code.google.com/p/cocotron/updates/list – Ken

+0

Ồ, rất vui được biết! – Ron

2

Tùy thuộc vào đối tượng và khung bạn đang sử dụng cho ứng dụng ca cao của mình, bạn có thể thoát khỏi bằng cách sử dụng gnustep, mặc dù kết quả cuối cùng có thể sẽ trông rất lạ đối với người dùng windows và môi trường phát triển có thể hơi khó thiết lập lúc đầu.

+0

Cảm ơn sự giúp đỡ của bạn. – Ron

4

Tôi có nghi ngờ về cocotron. Nó không rõ ràng từ trang web cocotron rằng cocotron thực sự là sản xuất đã sẵn sàng chưa. Id nghi ngờ rằng nó sẽ có thể bắt đầu phát triển ứng dụng mới và sử dụng cocotron liên tục để duy trì và kiểm tra các cửa sổ xây dựng trên đường đi. Nhưng để trang bị thêm nó vào một dự án hiện tại có thể là một nhiệm vụ lớn hơn nhiều. Cũng không có lựa chọn thay thế cho cocotron - khác hơn là có lẽ gnustep.

Cách tiếp cận thực tế để phát triển nền tảng chéo liên quan đến việc phát triển các thành phần không gui của ứng dụng của bạn, một lần, trong C hoặc C++. Và sau đó sử dụng một thư viện GUI nền tảng chéo như QT - đó là RẤT tốt tại tạo và sử dụng giao diện người dùng bản địa, nơi có thể hoặc giả mạo nó, nơi không. Vui lòng truy cập qt.nokia.com và tải xuống phiên bản QTCreator mới nhất cho các cửa sổ và máy Mac - Xem cách ứng dụng QT giống như thế và cảm thấy rất thuyết phục có nguồn gốc trên cả hai nền tảng.

Nếu QT không cung cấp giải pháp đủ nguồn gốc, thì bạn cần phát triển GUI hai lần: - một lần trong Cocoa và một lần trong Win32. GUI cacao sẽ ở mục tiêu C tất nhiên, giao diện Win32 trong C/C++.

Mã ứng dụng không gui của bạn sẽ được viết bằng C++ - không thể trực tiếp gọi Objective-C, nhưng không khó để viết các lớp shim, được triển khai trong tệp .mm - cung cấp giao diện C++ và truy cập gói một đối tượng c hoặc lớp đối tượng.

Bạn cũng sẽ phải tìm ra giải pháp thay thế cho CoreData trên cửa sổ - có lẽ là sqlite? Cho rằng XCode đã hỗ trợ tích hợp cho khung công tác sqlite, và thử nghiệm nhiều đường dẫn mã, tốt hơn, nhiều công việc hơn - có lẽ việc giảm CoreData có lợi cho một lớp chung là một cách tiếp cận tốt hơn?

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