2008-12-19 28 views
7

SDK hiện tại (tính đến tháng 12 năm 2008) cho phép tôi chọn giữa 3 phiên bản khi tôi muốn xây dựng một ứng dụng: 2.0, 2.1, 2.2. - Tôi sẽ bỏ qua 2.1 bên dưới.Tôi nên sử dụng phiên bản "Active SDK" iPhone nào?

giả định của tôi: lỗi

  • 2,2 có chức năng API hơn có sẵn hơn 2.0,
  • 2.2 đã cố định kể từ 2.0,
  • 2.2 là tương thích ngược với 2.0 (cả xây dựng và chạy),
  • Nếu tôi xây dựng với SDK 2.0, ứng dụng của tôi sẽ hoạt động trên iPhone 2.2,
  • Nếu tôi xây dựng với SDK 2.2, ứng dụng của tôi sẽ không hoạt động trên iPhone 2.0.

Tôi nghĩ rằng việc sử dụng phiên bản sớm nhất có thể xây dựng ứng dụng sẽ là tốt nhất, theo cách này nó sẽ chạy trên iPhone chạy hệ điều hành cũ hơn.

Nhưng có rủi ro là ứng dụng của tôi sẽ thiếu thứ gì đó nếu tôi đã xây dựng nó với 2.0 không? Có thể một số yếu tố giao diện người dùng tốc độ hoặc đẹp hơn. Nhưng có lẽ không có nhiều sự khác biệt giữa 2,0 và 2,2 để thậm chí lo lắng về nó?

Vì vậy, câu hỏi của tôi là: Tôi nên chọn SDK nào?

  1. SDK danh sách phát mà tôi có thể xây dựng để mở rộng thị trường mục tiêu của mình.
  2. SDK mới nhất luôn để ứng dụng của tôi hưởng lợi từ những cải tiến - với chi phí có khả năng làm giảm thị trường của tôi.

(Và nếu câu trả lời là hiển nhiên, tại sao tôi có thể lựa chọn ?!)

Trả lời

2

tôi sẽ chọn tùy chọn # 1 - biên dịch nó để 2.0. Đây là những gì chúng tôi làm cho ứng dụng của mình. Vẫn còn rất nhiều người đang chạy phiên bản 2.0 O/S cũ và nếu bạn biên dịch thành 2.2 thì ứng dụng của bạn sẽ không chạy trên thiết bị của họ.

Điều đó nói rằng, nếu bạn phát triển ứng dụng của mình và gặp lỗi và phát hiện ra rằng nó đã được sửa trong phiên bản phần mềm mới hơn, bạn có thể không có nhiều tùy chọn trừ khi có giải pháp thay thế. Ngoài ra còn có các tính năng mới được thêm vào mỗi phiên bản mới mặc dù tôi không biết danh sách toàn diện về những tính năng đó (ở cấp API).

+0

Lưu ý rằng có sự thay đổi trong 3.0 không tương thích với 2.0 ứng dụng (trong phiên bản beta ít nhất). Tôi nghĩ rằng nó không dễ dàng như chỉ là một người tố cáo thấp nhất, mặc dù lời khuyên của Marc rất tốt. –

27

Bạn có thể sử dụng SDK hệ điều hành iPhone 2.2 và vẫn biên dịch cho iPhone OS 2.0; theo cách bạn làm điều này cũng giống như dành cho Mac OS X. SDK bạn sử dụng xác định các phiên bản gần đây nhất của hệ điều hành bạn muốn API sử dụng từ, trong khi Deployment Target bạn sử dụng xác định ít nhất phiên bản hệ điều hành bạn muốn chạy trên. Cả hai loại này thường được đặt ở cấp độ dự án trong Xcode.

Vì vậy, bạn có thể xây dựng phần mềm của mình dựa trên SDK hệ điều hành 2.2 của iPhone và khi chạy trên các thiết bị đã cài đặt 2.2 hoặc mới hơn, hãy sử dụng 2.2 tính năng. Nhưng bạn có thể đặt Mục tiêu triển khai thành 2.0 và không sử dụng 2.2 tính năng khi chạy trên thiết bị có cài đặt hệ điều hành trước 2.2 và ứng dụng của bạn sẽ hoạt động tốt.

+1

Câu trả lời của bạn thực sự phải là câu trả lời được chấp nhận ở đây, đây chắc chắn là câu trả lời hay nhất! Ngay cả các nhà phát triển thời gian dài cũng thiếu kiến ​​thức đó. Và như bạn ngụ ý, nếu bạn tự động quyết định sử dụng các tính năng nào (vào thời gian chạy, không phải lúc biên dịch), bạn có thể sử dụng 2.2 tính năng và vẫn chạy trên 2.0 (chỉ cần không thử sử dụng các tính năng đó). Chúng tôi cũng làm như vậy để sử dụng các tính năng 10.5/10.6 và vẫn chạy trên 10.4. – Mecki

+0

@Mecki: về bản chất bạn xây dựng một ứng dụng đơn với các đường dẫn mã N bên trong, cho phép/vô hiệu hóa các tính năng trên mỗi bản sửa đổi hệ điều hành, hoặc thực hiện chúng khác nhau cho các phiên bản khác nhau? Yikes ... nhưng ai nói khả năng tương thích ngược lại thật dễ dàng! – Bogatyr

+0

@Bogatyr: Dù bằng cách nào. Bạn có thể quyết định rằng tính năng A chỉ hoạt động nếu hệ điều hành> 10.5. Vì vậy, bạn có 10.5/10.6, tính năng này hoạt động, bạn có 10.4, nó không có. Hoặc bạn có thể cung cấp mã thay thế; trong 10.5/10.6, chế độ xem thay đổi với một hoạt ảnh đẹp, trong 10.4 nó chỉ là "hoán đổi" (không có mất chức năng nào, nó trông có vẻ ít đẹp hơn). Thông thường nó chỉ là một nếu, kiểm tra phiên bản hệ điều hành và sau đó hoặc làm điều này hoặc làm điều đó và làm điều đó có thể là không có gì hoặc một tin nhắn "không được hỗ trợ" hoặc nó có thể là một thay thế ít thanh lịch, nhưng chức năng tương đương. – Mecki

0

Trong thử nghiệm của tôi, nếu bạn sử dụng 2.0 bạn không thể tận dụng các chức năng huy hiệu ứng - xuất hiện trong 2.1 (do đó bạn có thể cần phải sử dụng ít nhất là cấp xã)

Tim

+0

Tôi đã có thể sử dụng chức năng huy hiệu với bản dựng 2.0. Tài liệu nói rằng UIApplication.applicationIconBadgeNumber là "Có sẵn trong hệ điều hành iPhone 2.0 trở lên." Hay bạn đang đề cập đến cái gì khác? – squelart

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