Gần đây tôi đã thấy câu hỏi này (và các biến thể của nó). Điều làm tôi ngạc nhiên là tần suất mọi người trả lời, nhưng có bao nhiêu câu trả lời .
Tôi có sở thích của mình (tôi thích cả hai ngăn xếp), nhưng đây là lúc hầu hết các "câu trả lời" bắt đầu sai. Nó không phải là về những gì tôi muốn (hoặc những gì người khác muốn).
Đây là cách tôi đi về việc xác định giá trị của MonoTouch - rõ ràng tôi không thể khách quan, nhưng tôi nghĩ rằng điều này khá nhiệt tình:
Đây là cho vui hay kinh doanh? Nếu bạn muốn được tư vấn trong lĩnh vực này, bạn có thể kiếm lại $ 399 rất nhanh.
Bạn có muốn tìm hiểu nền tảng từ trong ra ngoài, hoặc bạn "chỉ" muốn viết ứng dụng cho nó?
Bạn có thích .Net đủ để sử dụng ngăn xếp dev khác nhau sẽ mang lại niềm vui cho bạn không? Một lần nữa, tôi thích cả hai ngăn xếp (Apple và Mono), nhưng đối với tôi MonoTouch làm cho trải nghiệm đó thú vị hơn nhiều. Tôi đã không ngừng sử dụng các công cụ của Apple, nhưng điều đó chủ yếu là vì tôi thực sự thích cả hai ngăn xếp . Tôi yêu iPhone, và tôi yêu .Net. Trong trường hợp đó, đối với tôi, MonoTouch là một người không có trí tuệ.
Bạn có cảm thấy thoải mái khi làm việc với C không? Tôi không có nghĩa là Objective-C, nhưng C - nó quan trọng bởi vì Objective-C là C. Đây là một phiên bản OO đẹp, lạ mắt, thân thiện, nhưng nếu con trỏ cho bạn những con bò cái, MonoTouch là bạn của bạn. Và đừng lắng nghe những người không tán thành, những người nghĩ rằng bạn là một nhà phát triển nếu điều đó xảy ra rằng bạn không thích con trỏ (hoặc C, v.v.). Tôi đã từng đi bộ xung quanh với một bản sao Tài liệu tham khảo bỏ túi BIOS ROM của IBM và khi tôi đang viết lắp ráp và buộc máy tính của mình vào các chế độ video vui nhộn và viết các bit kết xuất phông chữ của riêng mình cho chúng và các hệ thống cửa sổ (phải thừa nhận là rác rưởi), tôi đã không Chúng tôi nghĩ rằng các nhà phát triển QuickBasic là những người ồn ào. Tôi đãmột dev QuickBasic (ngoài phần còn lại). Không bao giờ nhượng bộ cho mọt sách mọt sách. Nếu bạn không thích C, và nếu bạn không thích con trỏ, và nếu bạn muốn tránh xa việc quản lý bộ nhớ thủ công nhất có thể (và, công bằng mà nói, điều đó không tệ chút nào trong ObjC), sau đó. .. MonoTouch. Và đừng lấy bất kỳ guff nào cho nó.
Bạn có muốn nhắm mục tiêu người dùng hoặc doanh nghiệp? Nó không quan trọng với tôi, nhưng vẫn có những người ở đó trên Edge và thực tế là: bạn có thể tạo gói tải xuống nhỏ hơn nhiều nếu bạn sử dụng ngăn xếp của Apple. Tôi đã chơi xung quanh với MonoTouch và tôi có một ứng dụng nhỏ khá hay, sau khi được nén, xuống còn khoảng 2,7 MB (khi gửi ứng dụng của bạn để phân phối, bạn nén nó - khi các ứng dụng được tải xuống từ cửa hàng, chúng ' được nén lại - vì vậy khi tìm hiểu xem ứng dụng của bạn có xuất hiện dưới giới hạn OTA 10 MB hay không, hãy nén trình hút trước - bạn sẽ ngạc nhiên với MonoTouch). Nhưng, hạnh phúc sang một bên, nửa meg so với gần ba (ví dụ) là điều có thể quan trọng với bạn nếu bạn nhắm mục tiêu người dùng cuối. Nếu bạn đang nghĩ về công việc doanh nghiệp, một vài MB sẽ không thành vấn đề. Và, chỉ cần rõ ràng - tôi sẽ sớm gửi một ứng dụng dựa trên MT đến cửa hàng và tôi không gặp vấn đề gì với kích thước. Không làm phiền tôi chút nào. Nhưng nếu đó là điều đáng quan tâmbạn , sau đó ngăn xếp của Apple thắng cái này
Làm bất kỳ công việc XML? MonoTouch. Giai đoạn = Stage.
Thao tác chuỗi? Ngày thao túng? Hàng triệu thứ nhỏ khác mà chúng ta đã quen với các khung công việc tất cả mọi thứ-VÀ-nhà bếp-bồn rửa của .Net? MonoTouch.
Dịch vụ web? MonoTouch.
Cú pháp, cả hai đều có lợi thế của họ. Mục tiêu-C có xu hướng dài dòng hơn khi bạn phải viết nó . Bạn sẽ thấy mình viết mã bằng C # bạn sẽ không phải viết bằng ObjC, nhưng nó đi cả hai chiều. Chủ đề đặc biệt này có thể lấp đầy một cuốn sách. Tôi thích cú pháp C #, nhưng sau khi vượt qua phản ứng ban đầu này là thế giới khác với Objective-C, tôi đã học cách tận hưởng nó khá nhiều. Tôi làm cho niềm vui của nó một chút trong cuộc đàm phán (nó là lạ cho devs người đang sử dụng để C # / Java / etc.), Nhưng sự thật là tôi có một Objective-C hình tại chỗ trong trái tim tôi mà làm cho tôi hạnh phúc.
Bạn có kế hoạch sử dụng Interface Builder không? Bởi vì, ngay cả trong phiên bản đầu tiên này, tôi thấy mình làm việc ít hơn nhiều để xây dựng UI của mình với IB và sau đó sử dụng chúng trong mã. Có cảm giác như toàn bộ các bước bị thiếu trong cách thực hiện Mục tiêu-C / IB và tôi khá chắc chắn rằng vì toàn bộ các bước bị thiếu trong cách thực hiện Mục tiêu-C / IB. Cho đến nay, và tôi không nghĩ rằng mình đã thử nghiệm đầy đủ, nhưng cho đến nay , MonoTouch là người chiến thắng ở đây vì bạn phải làm ít hơn bao nhiêu công việc.
Bạn có nghĩ thật thú vị khi học các ngôn ngữ và nền tảng mới không? Nếu vậy, iPhone có rất nhiều thứ để cung cấp và ngăn xếp của Apple có thể sẽ đưa bạn ra khỏi vùng thoải mái của bạn - điều mà đối với một số nhà phát triển là thú vị (Xin chào - Tôi là một trong những nhà phát triển đó - Tôi nói đùa về nó và cho Apple đã có một thời gian khó khăn, nhưng tôi đã có rất nhiều niềm vui khi học phát triển iPhone thông qua các công cụ của Apple).
Có rất nhiều điều để xem xét. Giá trị rất trừu tượng. Nếu chúng ta đang nói về chi phí và liệu nó có xứng đáng hay không, câu trả lời sẽ thuộc về mục đầu tiên của tôi: nếu đây là cho công việc và nếu bạn có thể có được công việc, bạn sẽ kiếm lại tiền ngay.
Vì vậy, ... đó là về khách quan như tôi có thể. Đây là một danh sách ngắn về những gì bạn có thể tự hỏi mình, nhưng nó là điểm khởi đầu.
Cá nhân (hãy bỏ sự khách quan trong giây lát), tôi yêu và sử dụng cả hai. Và tôi rất vui vì tôi đã học được Apple stack đầu tiên. Tôi dễ dàng hơn để đứng dậy và chạy với MonoTouch khi tôi đã biết đường đi khắp thế giới của Apple. Như những người khác đã nói, bạn vẫn sẽ làm việc với CocoaTouch - nó sẽ ở trong một môi trường bị đóng băng .Net.
Nhưng có nhiều hơn thế. Những người chưa sử dụng MonoTouch có xu hướng dừng lại ở đó - "Đó là một gói bọc blah blah blah" - đó không phải là MonoTouch.
MonoTouch cung cấp cho bạn quyền truy cập vào những gì mà Cốc Cốc cung cấp, đồng thời cho phép bạn truy cập vào những gì (một tập hợp con) .Net phải cung cấp, một số IDE cảm thấy thoải mái hơn (Tôi là một trong số họ), tích hợp tốt hơn với Trình tạo giao diện và mặc dù bạn không thể quên hoàn toàn việc quản lý bộ nhớ, bạn sẽ có được một mức độ chậm trễ.
Nếu bạn không chắc chắn, hãy lấy ngăn xếp của Apple (miễn phí) và lấy ngăn xếp của MonoTouch (miễn phí). Cho đến khi bạn tham gia chương trình phát triển của Apple, cả hai sẽ chỉ chạy với trình giả lập, nhưng điều đó đủ để giúp bạn biết liệu bạn có thích cái này hơn cái kia hay không, và liệu MonoTouch có, với bạn, trị giá 399 đô la hay không.
Và đừng nghe những người quá khích - họ có xu hướng là những người chưa sử dụng công nghệ mà họ đang chống lại :)