2010-04-16 28 views
11

Tôi đang tham gia phát triển thiết bị di động. Tôi đã làm việc chủ yếu trong .NET kể từ khi 1.0 ra mắt trong phiên bản beta. Trước đó, tôi chủ yếu là một anh chàng C++ và Delphi và vẫn còn vọc trong C++ theo thời gian. Tôi làm ứng dụng web khá một chút vì vậy tôi khá thành thạo với Javascript, JQuery và CSS. Tôi cũng đã thực hiện một vài ứng dụng Java. Tôi bắt đầu lập trình web với CGI và sống chủ yếu trong thế giới ASP.NET MVC những ngày này.Gợi ý để tham gia phát triển di động - iPhone SDK thuần túy, SDK Android, Mono Touch hoặc Titanium?

Tôi đang cố gắng quyết định chọn nền tảng/HĐH và công cụ nào. Tôi quan tâm đến quy mô của thị trường có sẵn cho các ứng dụng của tôi cũng như khả năng tiếp thị của các kỹ năng tôi sẽ nhận.

Các ứng dụng tôi có trong tâm trí sẽ hoạt động trên cả điện thoại và miếng đệm. Một số khía cạnh của những gì tôi có trong tâm trí sẽ chơi tốt hơn trên màn hình lớn hơn mà sẽ có sẵn trên miếng đệm.

Dưới đây là các tùy chọn tôi đang xem xét:

  1. Apple iPhone/iPad sử dụng tinh khiết của Apple SDK (Objective-C)
  2. Apple iPhone/iPad sử dụng Mono Touch (C#)
  3. Android sử dụng tinh khiết Android SDK (Java)
  4. Nhiều nền tảng sử dụng thứ gì đó như Titanium để tạo ứng dụng gốc từ các công nghệ web (HTML, CSS và Javascript)
  5. Nhiều nền tảng sử dụng các ứng dụng web HTML5 chạy trong b rowser (HTML, CSS và Javascript).

Bạn sẽ chọn tùy chọn nào? Bạn có đề xuất khác không? Những ưu và khuyết điểm là gì?

Trả lời

9

Tôi nghĩ rằng bạn có trang bìa hầu hết các tùy chọn, hãy để tôi chia sẻ quan điểm của tôi trên mỗi.

  1. Điều đáng để bắt đầu với ưu tiên cao nhất là Buzz của nó hiện nay là một ngày.
  2. Theo thỏa thuận nhà phát triển iPhone OS 4 phần 3.3.1, táo sẽ chỉ cho phép các ứng dụng được phát triển trong C/C++ và tập lệnh JAVA. Tôi sẽ không đề nghị bạn đặt nỗ lực của bạn trong C#.
  3. Giá trị của nó và nếu bạn nắm bắt tốt hơn JAVA cốt lõi thì bạn có thể làm việc hiệu quả trong vài ngày. Ở giai đoạn này, Android có thể không có nhiều thị phần nhưng ý kiến ​​cá nhân của tôi là ANDROID IS FUTURE.
  4. Điểm số 2 của tôi có hiệu lực Titanium cũng như theo tweet mới nhất của họ, họ đã được sự chấp thuận của Apple. Tôi không nhận thức được với thực tại trên mặt đất.
  5. Tương tự như số điểm 2

Nó là tốt, nếu bạn bắt đầu tập trung vào khuôn khổ chương trình iPhone và Android có nguồn gốc ở giai đoạn này. Vẫn còn nếu bạn có thời gian bạn có thể đầu tư vào Blackberry RIM là tốt, như bạn có nền JAVA.

Chào mừng bạn đến với nhà phát triển điện thoại thông minh.:)

Cảm ơn,

Rajnikant

+0

Tôi lo lắng về rủi ro thỏa thuận cấp phép của Apple với cả phương pháp tiếp cận Mono và Titanium. Tôi mạnh mẽ hướng tới các công cụ bản địa như một kết quả. Tôi chuyển qua lại trên Android. Đó là cửa hàng ứng dụng hiện là một thứ hai xa và họ vẫn còn phía sau Windows Mobile trong thâm nhập điện thoại. Tôi có một Droid và tôi thích nó. Tôi cũng thích cách tiếp cận mở của Google. Tuy nhiên, tôi sẽ không đặt cược vào Steve Jobs khi nói đến thiết bị tiếp thị người tiêu dùng mà chỉ đơn giản là mát mẻ. Vì vậy, tôi thích đề xuất của bạn để làm iPhone/iPad cho buzz và Android cho tương lai. –

+0

Phát triển HTML5 vẫn được cho phép nhiều trong thỏa thuận, miễn là bạn không triển khai trình thông dịch JavaScript của riêng mình. Để phát triển đa nền tảng thực sự, đó có thể là lựa chọn dễ dàng nhất (mặc dù bạn mất tất cả lợi ích của mỗi nền tảng). – shosti

+0

HTML5 có thể đúng trong trường hợp ứng dụng web, nhưng để sử dụng các khả năng của thiết bị riêng lẻ phải phụ thuộc vào thư viện gốc. Tôi đồng ý rằng các công nghệ nền tảng chéo là tham vọng và họ đang cố gắng loại bỏ phân mảnh, nhưng theo tôi chiến tranh độc quyền của nó có lẽ và họ không thích loại bỏ phân mảnh đó. – Rajnikant

1

khuôn khổ nền tảng chéo, bạn nên xem xét:

PhoneGap QuickConnet

4

Nếu bạn đang nhắm mục tiêu iPhone/iPad, thay đổi đối với thỏa thuận iPhone SDK đang được mở ra với iPhone OS 4.0 và trạng thái SDK mới mà bạn chỉ được phép gửi ứng dụng tới App Store đã được viết bằng C/C++/Objective-C hoặc Javascript nếu ứng dụng web của nó.

Bạn cần xem xét điều này, vì các lớp tương thích, trình biên dịch chéo, trình dịch nguồn tất cả trông giống như chúng bị cấm theo thỏa thuận mới, bao gồm những thứ như MonoTouch, Flash CS5 của Adobe, Phonegap, v.v.

+0

Hiện tại chúng tôi chưa có đầy đủ câu chuyện. Ví dụ: PhoneGap được cho phép rõ ràng: http://blogs.nitobi.com/jesse/2009/11/20/phonegapp-store-approval/ Có một câu chuyện tương tự cho Appcellerator. –

+0

Chúng có thể được cho phép trong khoảng thời gian này. Và đó cũng là suy nghĩ của các công cụ phát triển nền tảng khác cho iPhone. Ai có thể nói rằng Apple sẽ không cấm các công cụ này trong OS 4.1 hoặc 5.0. Bạn không bao giờ có thể chắc chắn. Nhưng những gì bạn có thể chắc chắn là SDK chính thức và mã được viết bằng C/C++/ObjC sẽ được cho phép. Nó là duy nhất được biết đến, trong một biển của những ẩn số. – Jasarien

+0

Bạn thậm chí không thể chắc chắn về điều đó. Quy trình phê duyệt của App Store-- – synic

1

Bạn có thể tốt nhất nên gắn bó với các ứng dụng web nếu bạn đang tìm cách biến chúng thành nhiều nền tảng; hệ điều hành iPhone, Android và WebOS, với hệ điều hành Blackberry được đồn đại là tiếp theo - tất cả đều sử dụng trình kết xuất Webkit và bạn sẽ dễ dàng tạo ra những thứ không cảm thấy xa lạ với từng nền tảng hơn đang sử dụng một trong các khung công tác để viết mã đa nền tảng có vẻ bề ngoài. Đây là trường hợp đặc biệt khi bạn tính đến những thay đổi gần đây của Apple đối với thỏa thuận cấp phép SDK của họ: các công cụ như MonoTouch và PhoneGap có thể không còn có thể sử dụng được để đưa mọi thứ vào App Store của họ nữa.

+0

Nhà phát triển trong tôi vẫn nói cho tôi biết chính xác những gì bạn đề xuất - thực hiện một ứng dụng web. Bạn có thể làm cho nó hoạt động trên tất cả các điện thoại thông minh và miếng đệm với một cơ sở mã và một vài điều kiện. Thêm vào đó, HTML5 cung cấp cho bạn các công cụ khách hàng đủ để làm cho nó hoạt động tốt. Thật không may, các doanh nhân trong tôi tiếp tục ghi hình. "Các cửa hàng ứng dụng có buzz", nó nói. "Sẽ có rất nhiều sự cạnh tranh nhưng ít nhất ứng dụng của bạn sẽ có cơ hội nhận được sự chú ý tốt hơn". –

1

Có rất nhiều điều cần xem xét. Trước tiên, bạn phải tự hỏi mình hai câu hỏi:

  1. Nền tảng nào và loại người dùng nào bạn muốn bao gồm.
  2. Bạn có cần liên lạc với điện thoại (GPS, SMS, v.v ...) hay chỉ cần một số thao tác và chế độ xem dữ liệu cơ bản.

Nếu bạn cần truy cập vào các tính năng của điện thoại thì bạn phải phát triển một ứng dụng thực tế chạy trên điện thoại. Đặt cược an toàn nhất ở đây là JAVA vì nó chạy trên hầu hết các điện thoại. Nhưng ngay cả JAVA cũng là công cụ nền tảng thống nhất tính đến cuối năm. Apple đặt hạn chế trên iPhone và iPad và MS cũng không rõ ràng với tôi với Windows Phone mới nhất 7.

Bây giờ nếu bạn chỉ cần hiển thị và thao tác dữ liệu, HTML có thể là một cách tiếp cận hợp lệ. Nó có lợi ích là nền tảng chéo và tất cả các điện thoại mới hơn sẽ không có vấn đề hiển thị HTML cơ bản. Javascript hoặc các hình thức phức tạp hơn vẫn còn nghi ngờ mặc dù. Tuy nhiên với tôi đó là tương lai cho các ứng dụng định hướng dữ liệu vì sự hỗ trợ web chỉ là để có được tốt hơn, bao gồm javascipt. Đối với HTML5 tôi nói quên nó đi. Nó sẽ mất thời gian để được trải rộng trên máy tính để bàn và trên điện thoại, nó sẽ mất nhiều năm để đạt được điều đó cho chắc chắn.

Để phát triển các ứng dụng gốc cho nhiều loại điện thoại khác nhau, đây là một sự thay đổi lớn và tốn nhiều công sức và có thể là một nhóm lớn. Vì vậy, một lần nữa nó phụ thuộc vào nhiệm vụ bạn phải làm. Ngoài ra nếu bạn đang làm các ứng dụng bussines cao cấp, thì bạn chỉ có thể nhắm mục tiêu Blacberry, Windows Mobile và một thứ khác. Tôi không biết làm thế nào phổ biến rộng rãi iPhone và Android trong thế giới bussines. Tôi không quá nhiều.

Đây sẽ là các nguyên tắc của tôi. Rõ ràng nếu bạn có thể, dính vào các ứng dụng web.

0

Độc lập với sự đồng ý của nhà phát triển mới, các hiệu ứng vẫn chưa được biết (ví dụ mọi người cho rằng PhoneGap và Appcellerator đã chết là not the case); bạn vẫn còn tốt hơn trong tâm trí của tôi nhắm mục tiêu-C trên nền tảng hệ điều hành iPhone.

Vấn đề là có rất nhiều khung công tác rất mạnh mẽ trong Cocoa.Bằng cách sử dụng Objective-C, bạn cũng học cách suy nghĩ giống như các nhà thiết kế khung, nghĩa là bạn sẽ dễ dàng hiểu được các mẫu được sử dụng, và cũng theo thời gian học cách dự đoán khả năng và tên trong khung làm việc. trên các tiêu chuẩn phong cách được sử dụng.

Bạn cũng ngay lập tức sẵn sàng tận dụng các khả năng mới trong ngôn ngữ và khuôn khổ (như khối hoặc đa nhiệm) thay vì đợi người viết khung tìm ra cách trình bày một số tính năng mới cho bạn. Với khả năng tăng tốc các tính năng nền tảng, đó có thể là một lợi thế đáng kể.

Ngoài ra, ở cấp độ cá nhân - bạn chỉ đơn giản là tốt hơn với tư cách là một lập trình viên, bạn càng hiểu nhiều ngôn ngữ hơn và bạn càng đẩy ra ngoài vùng thoải mái của mình để tìm hiểu điều gì đó thực sự mới. Việc mở rộng đó sẽ giúp tâm trí của bạn theo những cách khác và làm cho bạn trở thành một người suy nghĩ linh hoạt hơn.

Tôi không có gì chống lại những người sử dụng các ngôn ngữ khác như Mono trên nền tảng, tôi chỉ nghĩ rằng thực sự sử dụng các công cụ và ngôn ngữ chính là nền tảng bạn đang nhắm mục tiêu. Nếu tôi chuyển sang phát triển Android, tôi sẽ chuyển sang tất cả Java trong một nhịp tim thay vì tìm kiếm một cây cầu Objective-C.

+2

Có trong lý thuyết điều này là ok, nhưng có bao nhiêu ngôn ngữ bạn thực sự có thể biết ở độ sâu lớn? Tối đa là hai. Bởi vì nó có nghĩa là bạn phải làm việc trong họ liên tục, làm theo những thay đổi và tìm hiểu chúng. Nếu không, bạn là một jack của tất cả các ngành nghề và chủ của không. Ngoài ra, nếu bạn ở một mình hoặc với số lượng nhỏ và muốn nhắm mục tiêu nhiều nền tảng, việc xuất bản trong mỗi nền tảng chỉ là không thể thực hiện được. – Runner

+0

Bất cứ lúc nào, khoảng hai. Hơn cả một đời? Một tá hoặc nhiều hơn, dễ dàng. –

+1

Sau đó, chúng tôi đồng ý. Đó là một vấn đề nếu bạn muốn phát triển bản địa cho nhiều nền tảng và bạn không có nhân lực. Nhưng nếu có cơ hội để thực hiện một dự án và học một ngôn ngữ mới trong quá trình này, tôi cũng nói đi. Cơ hội như vậy là rất hiếm. Luôn luôn có một thời hạn hoặc những điều khác ngăn cản bạn. – Runner

1

Tôi chỉ muốn đề cập lại điểm. Android v iPhone phát triển. Hãy để tôi được trả trước và nói rằng tôi đã không phát triển cho Android nhưng tôi có cho iPhone. Tuy nhiên, chúng tôi sở hữu một chiếc điện thoại Android và một chiếc iPhone trong hộ gia đình của chúng tôi, vì vậy tôi có thể nói như một người dùng cho cả hai.

Theo như các ứng dụng đi, tôi thấy các ứng dụng iPhone dễ sử dụng hơn và thú vị hơn (cho người dùng cuối). Rất nhiều ứng dụng Android thực sự khao khát. Đây không phải là để nói rằng các ứng dụng iPhone không, nhưng giao diện iPhone tự nhiên thực sự đạo cụ chúng lên một chút. Giao diện của Android không có gì đặc biệt cả. Là người dùng cuối, tôi thích iPhone và điều này sẽ quan trọng đối với nhà phát triển đang cố gắng chọn một nền tảng.

Gần đây, đã có rất nhiều lỗi hướng tới Apple để thay đổi ToS của họ và các nhà phát triển cho biết họ sẽ chuyển sang Android. Tôi nói - gắn bó với iPhone vì iPad đang tạo ra tiếng vang và là cơ hội duy nhất cho bạn. Là một người đã sử dụng Titanium và Objective-C để tạo ứng dụng, tôi khuyên bạn nên gắn bó với bộ công cụ gốc. Nó sẽ mất nhiều thời gian để tìm hiểu, nhưng bạn sẽ tìm hiểu các mẫu thiết kế chính xác như trái ngược với Titanium mà thậm chí không dạy cho bạn các mẫu JS tốt phải trung thực (Không thực sự nhiều MVC ở đó).

+0

Tôi đồng ý với một điểm. Đừng quên rằng máy tính bảng Android đang hoạt động trên nhiều nhà cung cấp và điểm giá khác nhau. Cho đến nay chúng tôi biết một số tên tuổi lớn, như Sony và Dell, đang tung ra các thiết bị như vậy vào cuối năm nay. Một số vấn đề về chất lượng ở phía Android là kết quả trực tiếp của nền tảng mở hơn và nhiều quy tắc phê duyệt lỏng lẻo hơn cho cửa hàng. Thị trường nhỏ hơn cũng dẫn đầu các nhà phát triển tốt nhất để tập trung vào iPhone đầu tiên. Khi số lượng thiết bị Android tăng, điều này có thể thay đổi đặc biệt nếu Apple vẫn đóng cửa như hiện tại. –

+0

Tom, tôi đồng ý rằng Android sẽ chỉ phát triển và họ có thể lôi kéo một số nhà phát triển lớn hơn trong thời gian sớm hơn là sau này. Tuy nhiên, tôi đã nói nhiều hơn từ quan điểm Giao diện người dùng, và tôi thấy giao diện người dùng iPhone vượt trội so với Android đến mức mà cùng một ứng dụng sẽ cảm thấy trực quan hơn trên hệ điều hành iPhone hơn Android. –

+0

Tôi đồng ý rằng các ứng dụng iPhone có giao diện đẹp hơn các ứng dụng Android tương đương. Tôi đã viết một vài ứng dụng Android và không bao giờ sở hữu một chiếc iPhone nhưng khi tôi nhìn thấy một ứng dụng tương tự trên iPhone thì điều này khiến cho người dùng phải lo lắng. Tuy nhiên, tôi nghĩ tương lai của Android không có trong các tiện ích con nhưng trong sự tích hợp các ứng dụng của công ty. Số lượng lớn các thiết bị cầm tay chạy Android sẽ làm cho nó trở thành nền tảng được lựa chọn cho các công ty muốn cung cấp cho nhân viên các phiên bản di động của các ứng dụng kinh doanh của họ. Những ứng dụng này sẽ hoạt động giống như các ứng dụng văn phòng hơn là các tiện ích kỳ quặc, phủ nhận sự thất thường của iPhone. –

0

Nếu quyết định đi theo con đường Mục tiêu-C, hãy suy nghĩ về việc vẫn loot tại MonoTouch, như một công cụ học tập, vì tất cả những trải nghiệm bạn có với C#.

Có thể tìm hiểu khung trước, sau đó chuyển sang ngôn ngữ giúp đơn giản hóa việc học. Với monotouch bạn sẽ có thể tìm hiểu tất cả các khuôn khổ iPhone bạn sẽ cần phải học (UIKit, vv) trong ngôn ngữ bạn đã quen thuộc, cũng như làm quen với các công cụ như Interface Builder và một số XCode.

Đón Obj-C sau khi bạn đã biết rõ khung làm cho mọi thứ dễ dàng hơn rất nhiều. Tôi đang làm điều đó ngay bây giờ. Và tùy thuộc vào thời gian, mặt trăng và tâm trạng của Steve Jobs, bạn có thể kết thúc việc có thể kết thúc không bao giờ phải đến Obj-C chút nào .. :)

+0

Ngôn ngữ không làm phiền tôi nhiều. Tôi đã cung cấp các hệ thống quan trọng bằng Basic, Pick Basic, COMAL (một biến thể cơ bản có cấu trúc cũ), COBOL, Fortran (bắt đầu với Fortran IID rất cũ trên máy thẻ đục lỗ IBM 1620), C, C++, Lisp, Prolog, Pascal, Delphi , VB, Java, VB.NET, C# và nhiều hình thức lắp ráp. Tôi cũng đã lập trình trên nhiều nền tảng - Commodore 64, TI 99/4a, Apple II, Amiga, HP3000, máy tính lớn của IBM, PC, Mac, Unix, Linux, Windows và các bộ đệm khác nhau như bộ điều khiển lò luyện kim tùy chỉnh. Nền tảng này có xu hướng là đường cong học tập lớn hơn. Ngôn ngữ chỉ là đường. –

+0

Làm thế nào bạn có thể đã bị mất Clipper'87 ??? :) –

0

Trong một nhận xét của bạn, bạn nêu rõ rằng bạn sở hữu một Droid, yêu thích nó và thích cách tiếp cận của Google hơn. Trong câu hỏi của bạn, bạn tuyên bố bạn là một nhà phát triển Java - tất nhiên, bạn luôn có thể tìm hiểu Objective-C như một nhà phát triển Java như tôi đã làm, nhưng sau đó một lần nữa tôi hoàn toàn yêu thích iPhone. Có vẻ như bạn hoàn toàn yêu thích Android, vì vậy tôi muốn nói hãy áp dụng niềm đam mê của bạn vào đó và tạo một số ứng dụng Android mạnh mẽ. Tôi không nghĩ rằng bạn sẽ làm tốt công việc trên iPhone, đặc biệt là nếu không có một sự hiểu biết hay đam mê lớn đối với nền tảng này.

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