Dương Thành An đã đoạt giải thưởng phát triển add-on tốt nhất cho
trình duyệt Firefox 3 với sản phẩm Pencil, một công cụ phác thảo giao
diện người dùng.
Lý do nào để anh viết Pencil?Ý tưởng về công cụ Pencil đã có từ trước đó rất lâu nhưng nó được
chỉ được bắt đầu phát triển vào khoảng tháng 1/2008. Ý tưởng này xuất
phát từ nhu cầu thực tế công việc và những hiểu biết ban đầu về nền
tảng phát triển phần mềm trên nền Gecko của Mozilla. Evolus (nơi Dương
Thành An làm việc) là công ty chuyên cung cấp các gói giải pháp CNTT
cho doanh nghiệp và trong quá trình giao tiếp với khách hàng, một công
đoạn quan trọng là làm phác thảo giao diện. Công đoạn này được công ty
đẩy mạnh nhằm đảm bảo sự thống nhất về yêu cầu với khách hàng cũng như
đảm bảo tính tiện dụng trong giao diện người dùng thông qua sự phản hồi
của khách hàng.
Trong đa số trường hợp, MS Visio sẽ là công cụ được nhiều người lựa
chọn để tạo ra các giao diện phác thảo (prototype GUI). Tuy nhiên, việc
sử dụng Visio có nhiều bất cập cụ thể như: chi phí bản quyền của Visio
khá cao, Visio chỉ chạy trên Windows mà công ty An thì chú trọng tính
đa nền và có rất nhiều thành viên sử dụng các HĐH khác Windows, Visio
khá nặng và nhiều tính năng dư thừa đồng thời chất lượng hình ảnh trong
tài liệu khi kết xuất không cao. Các công cụ còn lại cũng gặp những khó
khăn tương tự.
Từ những thực tế đó, An đã quyết định xây dựng Pencil với những tiêu
chí: là một công cụ với tính năng chính là hỗ trợ xây dựng các giao
diện phác thảo, nhỏ gọn, chạy được trên nhiều hệ nền, tận dụng các
chuẩn mới và dễ mở rộng.
Khi bắt đầu dự án này, công ty An đã quyết định nó sẽ là một dự án
mã mở với giấy phép GPL. Việc này là nhằm đóng góp trở lại cho công
đồng mã mở và giúp ai cũng có thể dùng công cụ này một cách tự do.
Điều gì đem anh đến với cuộc thi này?Pencil được hoàn tất phần cơ bản vào khoảng tháng 3/2008, thời điểm
mà Firefox 3 chưa có bản chính thức. Thời điểm này cũng là thời điểm
Mozilla công bố chi tiết về cuộc thi mở rộng Firefox 3, trong đó khuyến
khích các sản phẩm tận dụng những năng lực mới được thêm vào trong nền
Gecko. Nhận thấy sự phù hợp này (vì Pencil dùng rất nhiều các hỗ trợ
vector graphic - SVG - mới trong Firefox 3) cùng với sự động viên từ
bạn bè và những anh em trong công ty, An đã quyết định gửi Pencil đến
cuộc thi này.
Khi quyết định gửi Pencil dự thi, anh có kỳ vọng gì không?Kỳ vọng lớn nhất của An là Pencil sẽ đoạt giải, ít nhất cũng là giải
khuyến khích: D. Vì một khi được nêu tên trong danh sách, Pencil sẽ có
cơ hội được biết đến bởi rất nhiều người, trong đó quan trọng nhất là
những người làm trong lĩnh vực liên quan đến giao diện người dùng.
Anh có thể cho biết sơ lược về tính năng chính của sản phẩm đoạt giải? Đối tượng sử dụng?…Như An đã đề cập sơ lược bên trên, Pencil là công cụ được dùng chính
để tạo ra giao diện phác thảo (Prototype GUI). Đây là giao diện dạng
hình ảnh mô tả ở góc độ logic các màn hình trong ứng dụng ở các trường
hợp khác nhau. Giao diện này được dùng chính trong thảo luận với khách
hàng trong quá trình phát triển yêu cầu của ứng dụng và đồng thời cũng
được dùng trong tài liệu dành cho đội ngũ phát triển trong công ty.
Đối tượng sử dụng chính của Pencil là những người xây dựng giao diện
ứng dụng (desktop hoặc web). Một người dùng bình thường trong trường
hợp muốn phác thảo ra một ý tưởng giao diện trong đầu cũng có thể dùng
Pencil.
Phiên bản 1.0 của Pencil còn tương đối sơ khai. Người dùng có thể vẽ
ra các giao diện bằng cách tổ hợp các thành phần giao diện cơ bản của
GTK, Windows XP hoặc các đối tượng cơ bản như văn bản, đường kẻ… Một
tài liệu trong Pencil có thể gồm một hoặc nhiều trang vẽ và có thể được
kết xuất ra dưới dạng tập hợp các tập tin hình ảnh dạng PNG.
Anh hoàn thành add-on này trong bao lâu? Có những khó khăn vấp phải nào khi phát triển không?Thời gian phát triển tổng cộng của Pencil 1.0 là khoảng gần 2 tháng.
Toàn bộ ứng dụng Pencil được lập trình bằng ngôn ngữ JavaScript, chạy
trên nền Mozilla XULRunner sử dụng các hỗ trợ giao diện XUL, CSS và
quan trọng nhất là SVG.
Khó khăn lớn nhất An gặp phải trong quá trình phát triển Pencil là
việc thiết kế và hiện thực hỗ trợ các bộ mẫu mà người dụng có thể định
nghĩa được (ví dụ, người dụng có thể thay vì dùng bộ control cho
Windows XP có thể định nghĩa thêm bộ control cho Mac OS X). Đa phần các
ứng dụng xây dựng giao diện phác thảo điều là mã đóng nên tìm hiểu cách
tiếp cận bên dưới là khá khó khăn, đa phần dựa vào suy luận là chính.
Là người Việt Nam đoạt giải, anh đánh giá thế nào về các sản phẩm dự thi khác của các nhà phát triển nước bạn?Thực sự là lúc đầu An cũng không dám nghĩ mình sẽ đoạt giải nhất và
thật sự hạnh phúc khi nhận được tin từ ban giám khảo. Khi đọc bảng công
bố kết quả, An thật sự hạnh phúc khi thấy tên mình được viết một cách
đầy đủ bằng tiếng Việt có dấu.
Khác với Pencil, các sản phẩm khác không đi theo hướng mở rộng
Firefox thành một công cụ phục vụ mục đích khác mà là nâng cấp các tính
năng chưa hoàn thiện trong Firefox. Cả 2 sản phẩm còn lại tập trung
chính vào tính năng đánh tag cho một trang khi người dùng lưu trang lại
trong sổ địa chỉ. Tuy chỉ tập trung vào một tính năng nhỏ nhưng cả 2
tác giả này cùng giải quyết một vấn đề thực tế là làm cho tính năng ghi
địa chỉ của Firefox thực sự thân thiện với người dùng hơn bao giờ hết.
Cả 2 sản phẩm điều mong muốn giảm tối thiểu công sức người người dùng
trong việc đánh tag nhưng theo 2 hướng khác nhau.
Theo cơ chế của Mozilla, mình chỉ có thể biết được những sản phẩm
đoạt giải mà không thể biết được toàn bộ các sản phẩm khác đã tham gia
vào cuộc thi. Ngoài các sản phẩm đã được công bố, An thực sự đánh giá
rất cao một số sản phẩm khác (nhưng không biết là những sản phẩm này có
tham gia cuộc thi hay không). Đó là Firebug của Joe Hewitt và
DownThemAll! của Federico Parodi và Stefano Verna.
Anh có kế hoạch gì hoặc dự án gì tương tự?Sắp tới Pencil sẽ là dự án chính thức của Evolus và An cùng công ty
có kế hoạch phát triển thêm rất nhiều cho Pencil để nó trở thành một
công cụ thực thụ cho mục đích làm giao diện phác thảo. Hiện tại đã có
khá nhiều những ý tưởng mới được thảo luận bởi những người dùng của
Pencil từ khắp nơi. Công ty sẽ xem xét để đem những ý tưởng này vào
hiện thực trong Pencil.
Cám ơn anh
PCWorldVN
Xem thêm các hình ảnh của Pencil .gallery {
margin: auto;
}
.gallery-item {
float: left;
margin-top: 10px;
text-align: center;
width: 33%; }
.gallery img {
border: 2px solid #cfcfcf;
}
.gallery-caption {
margin-left: 0;
}