Mục lục:
- Joe Simpson (@kennydude) - Tự hào
- Barshe Versieux - BeTrains - SNCB Bỉ; HoloEverywhere
- Matthew Runo - Zappos
- Josh Burton - jRemote
Android chạy trên nhiều thiết bị khác nhau, điều đó có nghĩa là nó cũng chạy trên nhiều kích cỡ và độ phân giải màn hình khác nhau. Rất nhiều người gọi đây là "sự phân mảnh." Đừng bận tâm đến thực tế rằng họ đã sử dụng các sản phẩm được thiết kế và phát triển theo cách tương tự trong nhiều năm trên máy tính để bàn của họ. Rõ ràng nếu mọi thứ không giống hệt nhau, nó sẽ có nhãn "phân mảnh".
Có nhiều cách khác nhau để giải quyết các vấn đề phát sinh khi bạn sử dụng màn hình với kích thước và mật độ khác nhau. Apple có danh sách riêng cho các ứng dụng được thiết kế cho iPhone so với iPad. Microsoft tạo ra một hệ sinh thái mới cho các thiết bị màn hình lớn của mình. Android cung cấp một cách để các nhà phát triển làm cho cùng một ứng dụng hoạt động khác nhau cho các màn hình khác nhau. Có tốt và xấu về từng phương pháp, nhưng chúng tôi sẽ tập trung vào Android ở đây.
Trong Android, các ứng dụng có thể điều chỉnh bố cục cho các màn hình kích thước khác nhau cũng như độ phân giải. Đây là tất cả được tích hợp sẵn, nhưng có một vài điều mà các nhà phát triển cần khai báo trong mã của họ để làm cho ứng dụng trông đẹp hơn. Điều cần lưu ý là kích thước và mật độ màn hình sẽ thay đổi giao diện của ứng dụng như thế nào. Droid DNA có màn hình độ phân giải cao hơn máy tính bảng Motorola XOOM, nhưng chúng tôi không muốn thấy bố cục máy tính bảng cho các ứng dụng trên màn hình cỡ điện thoại.
Nhà phát triển cần cung cấp tài sản (hình ảnh) có chất lượng đủ cao để trông sắc nét ở độ phân giải cao (không bao giờ để ý độ phân giải cực cao) và chắc chắn sử dụng các đơn vị pixel độc lập mật độ khi thiết kế bố cục của chúng. Đây là thứ giúp cho mọi thứ như nút bấm và các điều khiển khác không thực sự lớn trên màn hình mật độ thấp như Galaxy S2 hoặc không thực sự nhỏ bé trên màn hình mật độ cao như DNA.
Nghe có vẻ phức tạp, nhưng hầu hết những thứ này được thực hiện cho bạn khi mã hóa một ứng dụng. Tất cả các nhà phát triển cần làm là thực hiện các khai báo đúng và cung cấp các tài sản phù hợp để hỗ trợ bất kỳ kích thước nào (cả vật lý và độ phân giải) hoặc bố cục. Ngay cả nhiều ứng dụng bố cục như ứng dụng Google+ cũng sử dụng cùng một mã để bao quát mọi màn hình có thể hiểu được.
Chúng tôi không cố gắng đánh giá các nhà phát triển ở đây. Viết ứng dụng là khó khăn. Các nhà phát triển Android đã rao giảng tất cả những điều này kể từ khi phát hành Gingerbread, nhưng nó thực tế đến mức nào? Chúng tôi đã hỏi một vài nhà phát triển về nó, xem họ nói gì sau giờ nghỉ.
Xem thêm: Trang web dành cho nhà phát triển Android của Google.
Chúng tôi đã hỏi một số nhà phát triển (cả lớn và nhỏ) một vài câu hỏi cơ bản về chủ đề này.
- Làm thế nào là khó khăn để tuân thủ các hướng dẫn?
- Nó có vẻ dễ dàng trên giấy, nhưng có bất kỳ vấn đề đặc biệt nào bạn đã thấy hoặc các phần mà Google không đề cập đến không?
- Làm thế nào điều này ảnh hưởng đến thời gian và chi phí phát triển, nếu có?
- Bất cứ điều gì thêm về chủ đề bạn muốn chia sẻ?
Tôi đã cố gắng làm cho các câu hỏi trở nên trung lập nhất có thể để chúng ta không đi sâu vào vấn đề này với một số sai lệch tại chỗ. Khi nghi ngờ, bạn hỏi những người biết, phải không? Tôi đã thực hiện phần chia sẻ lập trình công bằng của mình, nhưng mã hóa bằng Java và xây dựng các ứng dụng Android rất khác so với viết mã bằng C hoặc mã máy, hoặc thậm chí là Perl. Có những sắc thái tôi không hiểu, ngay cả khi tôi có các phương pháp chung để xây dựng một ứng dụng.
Tôi tưởng tượng một số lượng lớn các bạn giống như tôi và không biết những rắc rối khi xây dựng ứng dụng Android. Chúng tôi chỉ xem những gì các nhà phát triển Android nói và họ làm cho nó dễ nghe. Đối với họ, có lẽ là - họ đã viết những thứ này từ đầu năm 2007. Chúng ta hãy xem những người có thể theo dõi họ nói gì.
Joe Simpson (@kennydude) - Tự hào
Joe là thành viên của Team Boid, và cũng tự mình xuất bản các ứng dụng. Anh ấy (và phần còn lại trong nhóm của anh ấy) là một ví dụ tuyệt vời về các nhà phát triển độc lập có niềm đam mê với Android, người đã tìm ra một số ứng dụng tuyệt vời.
Thực hiện theo các hướng dẫn là khá khó khăn, đặc biệt nếu bạn muốn một ứng dụng nạc nhưng mọi người muốn tương thích trở lại. Một trong những điều khó chịu nhất là nhìn thấy thứ gì đó trông như thế nào trên d.android.com/design nhưng không có gì để thực sự làm điều đó.
Một điểm yếu được làm mới khi bạn không thể sử dụng GCM do Twitter và bạn không muốn sử dụng PtR. Ngoài ra, các ứng dụng của Google tạo nên các nguyên tắc của riêng họ. Lấy ví dụ về cửa sổ trượt, Google+ thực hiện việc này khác với YouTube (mặc dù tôi biết thư viện hỗ trợ sẽ hy vọng giải quyết vấn đề này).
Ngoài ra, bạn có thể đi đến một điểm và không có tài liệu về một cái gì đó (ví dụ EdgeEffect).
Tôi là một sinh viên, vì vậy chi phí là thứ tôi không nhìn thấy và vâng, nó cần có thời gian, nhưng người dùng của bạn sẽ yêu bạn. Về cơ bản, các Chương trình trực tiếp (ADiA, App Clinic, Giờ hành chính) là điều bắt buộc (không may) mặc dù họ không thể cung cấp phản hồi về các ứng dụng của Google.
Boid sẽ sớm có nguồn mở (yay!) Và bạn có thể tìm thấy ứng dụng đó trong Google Play. Bạn cũng sẽ tìm thấy tất cả các ứng dụng của Joe (có một số trang sức ở đó) ngay tại đây.
Barshe Versieux - BeTrains - SNCB Bỉ; HoloEverywhere
Barshe đã xây dựng nhiều ứng dụng Android, bao gồm BeTrains - SNCB Belguim - một ứng dụng có bố cục tuyệt đẹp cho thấy những gì có thể được thực hiện với một ứng dụng được xây dựng tốt. Mặc dù hầu hết ở Mỹ sẽ không bao giờ sử dụng nó (đó là một ứng dụng lịch trình xe lửa cho đường ray Bỉ), nó đáng để cài đặt chỉ để xem nó được thực hiện tốt như thế nào. Những người ở Tây Âu chắc chắn biết về điều này.
Ngoài ra, anh đã hợp tác phát triển HoloEverywhere, một thư viện mà các nhà phát triển khác có thể sử dụng để xây dựng các ứng dụng kiểu Holo cho Android 2.1 trở lên. Với nhiều điện thoại vẫn đang chạy Gingerbread, đây là một điều trị thực sự cho các nhà phát triển muốn giữ cho ứng dụng của họ luôn hiện hành.
Nó không khó chút nào. Nghiêm túc. Phần khó khăn đến khi khách hàng yêu cầu tránh xa những hướng dẫn đó!
Tôi nhớ một khách hàng muốn tôi đặt các tab ở phía dưới màn hình, các nút iPhone ở mọi nơi, chuyển đổi kiểu iPhone và dự án này thực sự khó đạt được và tôi thực sự đã mất rất nhiều thời gian và tiền bạc cho nó.
Tôi thực sự tức giận với anh ta khi anh ta hỏi tất cả những thứ ngu ngốc này, và anh ta chỉ nghĩ tôi là một nhà phát triển lười biếng.
Bây giờ tôi có rất nhiều liên hệ với anh ấy và chúng tôi hoàn toàn viết lại ứng dụng của anh ấy, tạo mã tuyệt vời bằng cách xóa tất cả các tính năng vô dụng này và tạo một ứng dụng Android "thuần túy". Các khách hàng và công ty chỉ cần nhận thức được những hướng dẫn đó, tôi tin tưởng mạnh mẽ.
Các thư viện như ActionBarSherlock, HoloEverywhere (sáng tạo của tôi), UnifiedPreferences và SlidingMothy thực sự dễ sử dụng và cung cấp trong một vài dòng mã trải nghiệm người dùng tuyệt vời.
Thời gian và chi phí, như tôi đã nói được giảm thiểu bằng cách làm theo hướng dẫn của Google. Các đoạn và thư mục bố cục thực sự dễ sử dụng (và quan trọng hơn là sử dụng lại): một ứng dụng máy tính bảng chỉ cần lấy đoạn mã từ bố cục điện thoại và không có gì phải viết lại. Những thay đổi nhỏ trong ứng dụng điện thoại được phản ánh ngay lập tức trong ứng dụng máy tính bảng, vì cùng một mảnh được sử dụng.
Một số dự án tuyệt vời được tạo ra bởi cộng đồng, không phải lúc nào cũng bởi Google. Một số người, rất tích cực trên Google+ như Roman Nurik (Google), Reto Meier (Google) Juhani Lehtimäki, Jake Wharton, Taylor Ling,.. (Tôi luôn sợ quên những người quan trọng) rất hay dạy dỗ. Các nhà phát triển chỉ cần biết nơi để tìm và phát triển Android sẽ dễ dàng cho họ!
Bạn có thể tìm thấy BeTrains trên Google Play và bạn sẽ muốn xem HoloEverywhere nếu bạn quan tâm đến phát triển Android.
Matthew Runo - Zappos
Trái ngược với một số nhà phát triển độc lập nhỏ hơn mà chúng tôi đã nói chuyện, chúng tôi cũng được nghe từ Matthew tại Zappos. Zappos là một tập đoàn bán lẻ web và có khả năng có ngân sách dành riêng cho thiết kế trên cả trang web cũng như các ứng dụng của họ. Đó cũng là một công ty mà tôi mua hàng thường xuyên, nhưng điều này không có liên quan và Matthew không biết rằng tôi là khách hàng thường xuyên khi anh ấy tình nguyện.
Tại Zappos, vì chúng tôi là nhà bán lẻ, chúng tôi phải gắn bó đầu tiên và quan trọng nhất với thương hiệu của chính mình. Wacky, vui vẻ, và một chút ra khỏi tường. Điều đó nói rằng, cả hai chúng tôi đều là những người tin tưởng mạnh mẽ vào các nguyên tắc thiết kế Android - và mọi thứ chúng tôi làm trong UI đều được lấy từ tinh thần của các quy tắc đó. Một năm trước, ứng dụng của chúng tôi chủ yếu là một cổng iOS từ giao diện và hoạt động. Ngày nay, nó (tôi nghĩ) là một viên ngọc quý của những gì bạn có thể làm trong Android. Chúng tôi tuân thủ các nguyên tắc bất cứ khi nào có thể - và các nhà thiết kế của chúng tôi làm việc từ chúng như một điểm khởi đầu.
Các nguyên tắc thiết kế không phải là tất cả và kết thúc tất cả - cuối cùng họ chỉ ở đó để cố gắng thúc đẩy thiết kế các ứng dụng Android để chúng phù hợp hơn. Chúng tôi đã thấy rằng hầu hết các thư viện nguồn mở "mới" phổ biến mà chúng tôi đã sử dụng đã kết thúc như một phần của hướng dẫn (menu trượt, crouton).
Các hướng dẫn không bao giờ nên giữ lại. Một số điều - điều hướng tổng thể - cần nhất quán để ứng dụng của bạn "chỉ hoạt động". Mọi thứ khác - bắt đầu theo hướng dẫn và chạy với thiết kế của bạn. Chúng tôi muốn ứng dụng của chúng tôi là APP CỦA CHÚNG TÔI - vì vậy chúng tôi không thể thực hiện chủ đề holo cơ bản.
Năm nay, về cơ bản chúng tôi đã bắt đầu từ việc viết lại ứng dụng của mình để làm việc với các mảnh vỡ. Trong 6 tháng qua, chúng tôi đã nỗ lực để thêm hỗ trợ máy tính bảng 7 "và chúng tôi hiện đang làm việc trên hỗ trợ 10". Điều khó nhất để làm là thử nghiệm trên các thiết bị, nhưng chúng tôi có một nhóm QA tuyệt vời giúp thực hiện điều đó. Chúng tôi đã có 2 người làm việc toàn thời gian trên ứng dụng của chúng tôi kể từ tháng 8 hoặc lâu hơn, trước đó là 1 người toàn thời gian.
Điểm mấu chốt là, tôi nghĩ, các hướng dẫn thiết kế Android giúp chúng tôi hợp lý hóa quy trình của chúng tôi - và do đó giảm chi phí. Hãy đối mặt với nó, hầu hết các nhà thiết kế từ iOS - vì vậy có một nguồn tài nguyên tuyệt vời như design.android.com là một trợ giúp tuyệt vời để giúp họ khởi động trong hệ sinh thái Android.
Tôi có thể nói rằng các lựa chọn thiết kế của Zappos hoạt động tốt và vợ tôi có một tủ đầy quần áo, ví và giày để củng cố yêu cầu của tôi. Kiểm tra ứng dụng Android của họ từ Google Play.
Josh Burton - jRemote
Josh đã là tác giả của nhiều ứng dụng nhỏ cho Android và ứng dụng jRemote của anh ấy (đó là bộ điều khiển cho chương trình PC jDoader nổi tiếng) là một ví dụ hoàn hảo về cách sử dụng bố cục để tạo một ứng dụng tuyệt vời trên cả điện thoại và máy tính bảng. Nó tối đa hóa việc sử dụng màn hình thiết bị và cung cấp cho bạn thông tin bạn đang tìm kiếm chính xác như bạn mong đợi.
Tuân thủ các nguyên tắc thiết kế là khá đơn giản, miễn là bạn tuân thủ chúng ngay từ đầu. Phát triển toàn bộ ứng dụng và cuối cùng quay trở lại và cố gắng thực hiện các phân đoạn / bố cục máy tính bảng, v.v … sẽ gây lãng phí thời gian, công sức và thất vọng. Nhưng nếu bạn lập kế hoạch cho ứng dụng của mình, phát triển bằng cách sử dụng các đoạn từ đầu và tạo tài nguyên của bạn cho tất cả các thùng dpi phù hợp, nó sẽ giúp bạn phát triển dễ dàng và bạn thực sự không cần phải dành nhiều thời gian để suy nghĩ về các hướng dẫn. Và nếu bạn gặp khó khăn, các tài liệu thiết kế chỉ là một cú nhấn chuột. Họ là một nguồn tài nguyên tuyệt vời.
Tôi thực sự thất vọng vì rất nhiều thiết bị không có bố trí máy tính bảng. Nếu ứng dụng của bạn được xây dựng bằng các đoạn, việc thêm bố cục máy tính bảng có thể được thực hiện trong 30 phút. Thành thật mà nói, điều đó thật dễ dàng.
Tôi nghĩ rằng đối với nhiều nhà phát triển, họ không có thiết bị máy tính bảng để thử nghiệm và sử dụng trình giả lập có thể là một nỗi đau. Nhưng các công cụ ADT mới vừa được phát hành làm cho nó dễ dàng hơn rất nhiều. Giao diện đa cấu hình trong trình chỉnh sửa bố cục có nghĩa là bạn có thể thấy bố cục của mình trông như thế nào trên 5-6 kích cỡ màn hình khác nhau cùng một lúc. Và nó nhanh. Tất nhiên cuối cùng bạn vẫn sẽ cần phải thử nghiệm trên một trình giả lập / thiết bị, nhưng nó chắc chắn sẽ tăng tốc độ công việc.
jDoader là một chương trình tiện dụng để sử dụng trên máy tính để bàn của bạn và jRemote trông giống như một cách tuyệt vời để kiểm soát nó. Nếu không có gì khác, hãy tải xuống từ Google Play và xem thử cách ứng dụng có thể đơn giản và đẹp mắt cùng một lúc.
Chúng tôi đã nghe từ rất nhiều nhà phát triển khác, những người nói khá nhiều điều tương tự. Chúng tôi chỉ ra khỏi phòng để liệt kê tất cả. Điểm chính của tất cả là nếu bạn lên kế hoạch trước, các nguyên tắc dành cho nhà phát triển Android thực sự có tác dụng đối với hầu hết các trường hợp. Chúng tôi rất vui khi biết điều đó và sẽ tiếp tục tận hưởng các ứng dụng tuyệt vời và hỗ trợ các nhà phát triển làm việc chăm chỉ.