(Post 10/04/2007) Hiện có một số công cụ phát
triển ứng dụng trên Symbian như Visual Studio C++ 6 .0, CodeWarrior Development
Studio, Borland C++ BuilderX, Nokia Development Suite (NDS) và thành viên
mới nhất là Carbide C++ Express 1.0. Trong đó NDS và Carbide do chính
Nokia phát triển (Nokia hiện nắm quyền chi phối Symbian OS).
Khác với các công cụ Visual C++ và Code Warrior đều phải
trả tiền bản quyền khi sử dụng, NDS thực chất chỉ là plug-in trên Visual
Studio .NET (cái này cũng có bản quyền), Carbide Express hoàn toàn miễn
phí và là một môi trường phát triển ứng dụng hoàn chỉnh (IDE) được xây
dựng dựa trên IDE rất quen thuộc đó là Eclipse, có công cụ mô phỏng và
hỗ trợ bẫy lỗi (debug) trực tiếp trên PC trước khi triển khai ứng dụng.
Tải về và cài đặt
Bạn vào trang web www.forum.nokia.com/carbide
để tải Carbide cũng như các SDK (Software Development Kit) dành cho dòng
điện thoại S60, S80 và S90, hay vào http://developer.uiq.com
để tải SDK dành cho dòng Symbian UIQ. File cài đặt có dung lượng khoảng
84 MB, khi cài đặt xong sẽ chiếm khoảng 160 MB trên ổ cứng.
Mặc dù tài liệu cho biết Carbide hỗ trợ tốt S60 SDK 2nd
, nhưng không hiểu sao khi dùng SDK này, Carbide không làm việc đúng.
Tốt hơn bạn nên dùng SDK S60 2nd phiên bản FP 2 hay FP3 hay SDK S60 3rd
MR.
Bạn cũng cần cài đặt ActivePerl version 5.6.1.x (miễn
phí). Điều này là cần thiết cho việc “build” các project trong Carbide.
Bộ cài đặt Carbide được đóng gói bằng trình InstallShield,
cho phép dễ dàng cài đặt trên PC. Carbide.c++ Express được thiết kế để
chạy trên Windows XP SP2, tuy nhiên tôi cài trên cả Windows Server 2K3
và Windows 2K Pro đều chạy tốt.
Lưu ý: khi cài trên phiên bản hệ điều hành khác Windows
XP SP2, chúng ta sẽ thấy hộp thoại cảnh báo, bạn chỉ việc nhấn OK để đóng
lại và tiếp tục quá trình cài đặt.
Sử dụng
GUI đầu tiên khi bạn vào Carbide là màn hình Welcome,
bạn đóng nó bằng cách nhấn dấu X trên tab vì hiện giờ chưa cần đến. Giao
diện Carbide như hình.
Carbide hỗ trợ nhiều wizard, giúp tạo ra một bộ khung
cho project mới, rất tiện lợi cho người mới làm quen với lập trình trên
Symbian.
Bây giờ chúng ta hãy cùng tạo ra một S60 Project đơn
giản để xem Carbide “làm ăn” như thế nào.
Trước hết chúng ta kiểm tra xem Carbide có nhận diện
ra các SDK mà chúng ta đã cài trước đây không. Vào menu Window/ References.
Chọn Carbide.c++, chọn tiếp SDK Preferences, bạn sẽ thấy
Carbide tự động nhận ra các SDK đã được cài đặt. Những SDK không được
hỗ trợ sẽ được hiển thị bằng màu đỏ. Nếu Carbide không nhận ra các SDK
đã được cài đặt, bạn nhấn nút Rescan để Carbide tự tìm các SDK đã được
cài đặt trên máy.
Carbide có một nhược điểm là nếu bạn chọn đường dẫn đến
thư mục Workspace có khoảng trắng, Carbide khi build sẽ báo lỗi. Do thư
mục Workspace mặc định của Carbide có chứa khoảng trắng nên bạn bắt buộc
phải thay đổi. Chọn menu File/Switch Workspace để thay đổi Workspace.
Bây giờ là lúc chúng ta tạo một Project mới. Chọn menu
File/New/Project, hộp thoại New Project xuất hiện cho phép chúng ta chọn
loại project muốn tạo.
Chọn S60 Project, nhấn Next, đặt tên cho Project. Nhấn
Next tiếp.
Tiếp tục nhấn Next.
Ở đây có vài điều cần giải thích. Như bạn thấy, trong
Carbide ứng với một project bất kỳ đều có 3 lựa chọn:
- S60 2.8 Emulator Debug: cho phép bẫy lỗi trên PC trước khi cài ứng
dụng trên thiết bị thật.
- S60 2.8 Phone (ARMI) Release: dùng để tạo ứng dụng cho thiết bị sử
dụng CPU 32 bit.
- S60 2.8 Phone (Thumb) Release: dùng để tạo ứng dụng cho thiết bị sử
dụng CPU 16 bit.
Chọn SDK phù hợp với ứng dụng mà bạn muốn viết, sau đó
nhấn Finish để Carbide tự động tạo cho chúng ta 1 bộ khung ứng dụng như
hình sau:
Sau đây là những công dụng của các thư mục chính:
- Includes: chứa file header của Symbian cần để build ứng dụng.
- Src: chứa file nguồn (.cpp).
- Inc: chứa file header (.h).
- Data: chứa file tài nguyên (.rss).
- Sis: chứa file đóng gói (.pkg). Nếu bạn chọn build ở chế độ release
thì đây cũng chính là thư mục sẽ chứa file .sis.
- Aif (Application Information): chứa file .aif (hầu như bạn không
cần phải đụng đến file này).
Bây giờ chọn menu Project/Build All. Carbide sẽ giúp
ta build project này.
Bạn mở cửa sổ Problems xem có lỗi nào không (nếu không
thấy cửa sổ Problems, bạn vào menu Window/Show View/Problems), thường
bạn sẽ nhìn thấy Carbide hiển thị một lỗi “CTags not install or not in
path”, bạn đừng quan tâm đến nó, đây chỉ là “lỗi” của Carbide.
Chuẩn bị chạy ứng dụng đầu tiên của chúng ta trên Emulator
xem sao. Chọn menu Run/Run, nhấn New để tạo mới phiên debug nếu bạn không
thấy tên project của mình hiện ra trong danh sách bên trái.
Và nhấn Run để chạy ứng dụng này trên Emulator.
Cuộn màn hình cho tới khi thấy ứng dụng của mình; chạy
ứng dụng bằng nút trên Emulator như các phím trên ĐTDĐ.
Sau khi kiểm tra ứng dụng chạy hoàn hảo trên Emulator,
bước tiếp theo là tạo ra file .sis để cài lên thiết bị thật. Muốn vậy
chúng ta cần chọn lại cấu hình build cho bản release. Ví dụ để build cho
máy Nokia 6600 (dùng CPU 32 bit), chúng ta chọn ARMI Release. Thực hiện
như sau:
- Mở Build Configuration, chú ý hình chữ i, kế bên có nút tam giác,
nhấn vào đó để đổi chế độ build. Chọn option S60.2.8 Phone (ARMI) Release.
- Sau đó chọn menu Project/Build project. Nếu thành công bạn sẽ thấy
file .sis được đặt trong thư mục sis của project.
Lưu ý: khi chuyển từ chế độ debug sang các chế độ build
khác và ngược lại, bạn nên dùng chức năng Clean (menu Project/Clean) để
xóa các file trung gian. Quá trình clean không xóa file sis.
Bạn dùng Bluetooth hay đầu đọc thẻ nhớ, chép file này
vào thiết bị, cài đặt và chạy thử. Ứng dụng của bạn sẽ chạy y như trên
Emulator.
Vài điều khó chịu...
- Thứ nhất là tốc độ khởi động Emulator, Carbide mất
trung bình khoảng 1 phút cho việc nạp và hiển thị Emulator (CPU 3GHz HT,
RAM 512 MB).
- Thứ hai, tốc độ “chấm và xổ” (hỗ trợ coding) trong
Carbide hơi chậm. Bạn có thể hiệu chỉnh thời gian chờ khi hiển thị “xổ”,
tuy nhiên không cải thiện mấy (vào menu Window/Preference/, chọn C/C++/Editor/Code
Assist và giảm thời gian delay trong mục Auto Activation).
- Quá trình build hơi chậm, dù chỉ xóa 1 dòng trống,
khi build vẫn mất chút ít thời gian.
- Khai báo hằng chuỗi bằng cách dùng macro __LIT bị Carbide
gán lỗi warning.
- Cửa sổ Problems thỉnh thoảng hiển thị lỗi không đúng,
đôi khi bạn cần phải xem qua cửa sổ Console để xác định lỗi của project.
Ví dụ khi bạn build bản release, nếu bạn quên khai báo file thư viện lib,
việc build sẽ không thành công, vì vậy Carbide không tạo được file .sis,
nhưng hiển thị trên cửa sổ Problems lại là một lỗi khác (“file not found”
chẳng hạn chứ không phải là “undefined xxx symbol...” như bạn mong đợi
đâu).
- Cửa sổ Build Configuration đôi khi không hiển thị được.
Nhưng đừng lo, bạn chỉ việc đóng Carbide rồi mở lại, và thế là vấn đề
được giải quyết.
- Đôi khi menu Project/Build bị disabled mặc dù bạn đã
thay đổi vài dòng code, bạn phải chuyển qua cửa sổ con khác thì menu Project/Build
mới enabled. Nhưng đừng lo, bạn có thể dùng luôn Build All (khi dùng chức
năng này chỉ nên mở 1 project trong workspace thôi).
- Một điều hơi khó chịu nữa: NDS Nokia cho phép tạo ra
các resource (text query dialog, number query dialog,...) theo kiểu wizard
chỉ bằng vài nhấn chuột, nhưng với Carbide thì bạn phải gõ bằng tay. Thật
bất tiện.
Những thiếu sót trên chỉ là chuyện nhỏ, có thể giải quyết
bằng chính kinh nghiệm sử dụng của bạn và nó không ảnh hưởng nhiều đến
quá trình xây dựng ứng dụng. Và Carbide vẫn là lựa chọn sáng giá cho việc
phát triển ứng dụng trên Symbian OS.
Hiện nay Nokia cũng đã cho ra mắt 2 bản Carbide thương
mại là Carbide.c++ Developer Edition và Carbide.c++ Professional Edition.
Với 2 bản thương mại này, bạn có thể debug trên thiết bị thật, hỗ trợ
triển khai ứng dụng nhanh.
Nguyễn Hoài Phong
Email: phongnguyenh@cybersoft-vn.com
Tài liệu tham khảo:
(theo PC World VN) |