11 Phát triển ứng dụng trên Symbian OS với Carbide.c++ Express

(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)

FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng.
0981578920
icons8-exercise-96