Blackberry [How-To] Viết 1 ứng dụng cơ bản nhất cho BlackBerry

Thảo luận trong 'Lập trình cho Di động' bắt đầu bởi Keeper, 27/4/09.

  1. Keeper Tiểu nhị

    Keeper online đến tối, có thắc mắc cứ reply nhé, sẽ reply back liên tục. Dzui là chính :)
    o973797475 thích nội dung này.
  2. Keeper Tiểu nhị

    Những bạn nào build thành công rồi cài được vào máy rồi thì mày mò cho quen với BlackBerry JDE như đổi version/vendor của chương trình mình vừa viết.

    Xem code của ví dụ đó xem tại sao nó lại ra như vậy, nó dùng cái gì, mình add thêm có được hay không.

    Trong helloworlddemo có 2 cái chính mà bạn sẽ học là:

    Cách viết 1 ứng dụng GUI(Graphic User Interface) là có giao diện mà mình thấy có screen, có menu, có button, có field...Khác với Command Line UI là chỉ có text, input hay out chỉ là chữ với chữ mà ko có hình ảnh.

    Cơ bản là :

    final class HelloWorldScreen extends MainScreen > Dòng này thể hiển đây là chương trình HelloWorldScreen có tính chất GUI. Và GUI của nó là một màn hình hiện full màn hình của thiết bị.

    LabelField title = new LabelField("Hello World Demo" , LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); > Dòng này dùng để tạo 1 Label có nội dung là "Hello World Demo"

    setTitle(title); > Sau khi tạo Label thì gán Label này thành Title cho Application.

    add(new RichTextField("Hello World!" ,Field.NON_FOCUSABLE)); > Sau đó thì dùng dòng này để add thêm cho cái MainScreen của chương trình 1 cái RichTextField, là khung soạn thảo và set nội dung cho nó tạm thời là
    "Hello World!".

    Code:
    public void close()
        {
            // Display a farewell message before closing application.
            [B][COLOR=DarkRed]Dialog.alert("Goodbye!");[/COLOR][/B]
            [B]System.exit(0);[/B]
            
            super.close();
        }  


    Đoạn code trên sẽ đảm nhiệm chức năng là pop up 1 cái Dialog nội dung là
    "Goodbye!" khi người dùng Close application.

    Dialog, Label và RichTextField là 3 cái mà bạn học được từ chương trình này.

    Sau khi chạy được trên thiết bị thì bạn bắt đầu tập tham khảo API Doc, tốt nhất là :

    Trong BlackBerry JDE bạn Chọn Help > API Reference

    Sẽ hiện đủ tất cả API. Lưu ý trong số đó sẽ có cái dùng được cho OS khác nhau. Ví dụ bạn dùng JDE 4.7 thì nó sẽ hiện tất cả API cho OS 4.7 vì vậy nếu có cái bạn thấy nhưng khi sử dụng trong khi viết ứng dụng cho OS 4.5 thì báo lỗi Not Found chính al2 do OS 4.5 chưa support cái đó.

    V2i vậy khi xem API Doc thì lưu ý xem nó được trang bị từ JDE version mấy. Như:

    Since: JDK1.0Cái này nó ghi từ JDK 1.0 tức là từ lâu đã có. Chạy trên hầu hết các máy.

    Như TouchEvent thì nó ghi:
    Since: JDE 4.7.0Tức là chỉ máy nào OS 4.7 trở lên mới dùng được.

    Bạn làm xong thì tập xem API Doc. Xem trước 3 cái:

    Dialog
    LabelField
    RichTextField

    Ví dụ trong helloworlddemo thì nó sử dụng: Dialog.alert("Thông báo");
    Nhưng Dialog ko chỉ pop up thông báo như thế àm còn có:

    Dialog.ask(Dialog.D_YES_NO, "Có chắc chưa?")

    Nghĩa là pop một câu hỏi "Có chắc chưa?" và cho 2 nút option Yes và No. Nếu user click Yes thì kết quả trả về là 1, còn No thì là 0 tương ứng với gái trị của Dialog.YES hoặc Dialog.NO

    ví dụ đoạn code sau:

    if(Dialog.ask(Dialog.D_YES_NO, "File exists....! Overwrite?") == Dialog.YES){
    Dialog.alert("Saved.");
    }

    Mình pop up câu hỏi là File này tồn tại ....! Ghi đè lên không? và lấy giá trị trả về khi user click YES or NO và so sánh giá trị đó với Dialog.YES

    Nếu đúng là == với Dialog.YES (tức là user click nút YES) thì thực hiện lệnh

    Dialog.alert("Saved.");

    Là pop up thông báo "Saved" (Đã lưu)


    Rất hữu dụng khi muốn user confirm cái gì.

    Còn tiếp....
    kaseru, xueyrus, o9737974751 người khác thích nội dung này.
  3. largo_kent Thành viên

    Mong các bác có thể sửa Yamee 1.3 dùng trên BB ko bị lỗi, phần mềm chat free này có lẽ tuyệt nhất trên mobile nhưng lại bị lỗi trên BB :p.
    o973797475 thích nội dung này.
  4. mr.Xtop Thành viên

    Chắc phải nhảy về lập trình lại thôi ^__^
    o973797475Keeper thích nội dung này.
  5. snowman Thành viên

    tiếp đi Keeper. Ủng hộ hết mình :D
    o973797475 thích nội dung này.
  6. Keeper Tiểu nhị

    Bạn làm xong cái HelloWorldDemo chưa? chạy trên BlackBerry được chưa? Nếu tốt rồi thì mày mò mấy cái Keeper có post bên trên.

    Khi mày mò chán chê rồi sẽ bắt tay vào cái có ích hơn 1 chút.

    Thân.
    kaseru, o973797475thy3s thích nội dung này.
  7. thy3s Thành viên

    Rất ủng hộ bác Keeper, mình xin chia sẻ chút:

    Code trong JDE là ác mộng, mình thường mở song song JDE và Eclipse, eclipse để code, JDE để debug, hì
    o973797475Keeper thích nội dung này.
  8. Keeper Tiểu nhị

    Chính xác, nhưng hình như thy3s type nhầm là Eclipse để debug. JDE debug như SHIT.

    Anyway, JDE là started point tốt nhất cho các bạn mới vào, sau này pà con pro rồi sẽ sang eclipse để life is easier.

    Hy vọng thy3s theo dõi topic này để chỉnh cũng như chia sẽ kinh nghiệm và giúp Keeper một tay hỗ trợ mọi người tập lập trình BlackBerry.

    Cheers.
    kaseruo973797475 thích nội dung này.
  9. thy3s Thành viên

    Hic tớ ko biết debug BB app trên eclipse, có plug-in hỗ trợ à, nếu thế keeper chia sẻ với, tớ lạc hậu quá.
    Tớ có biết cái plug-in để phát triển BB trên eclipse, nhưng cài lâu rồi, hồi đó nó vớ vẩn quá nên bỏ
    o973797475 thích nội dung này.
  10. hoangnd Thành viên

    Cái này sử dụng ngôn ngữ C ah. Có thể dùng Java không?
  11. Keeper Tiểu nhị

    Thật ra Keeper lâu rồi ko dùng Eclipse mà dùng NetBean cho J2SE development. Nên cũng không nhớ lắm về Debug bên Eclipse. Chỉ nhớ là debug bên eclipse thì debug như bình thường mình debug khi develop application, set break point và access vào từng state khi run hoặc catch khi có exception.

    Còn cái BlackBerry JDE plug-in cho eclipse rất lớn, hình như 170+ Mb, download hoài chưa được nên dẹp tới giờ chưa download.(trang BB chậm quá). Keeper thừ debug bên JDE thì chả hiều gì, nên debug thủ công là catch exception và alert all the time.

    Nếu được thì bạn trao đổi với người này, trùm sử dụng eclipse cho blackberry application development:

    dkonigsberg@logicprobe.org

    Cũng là tác giả của LogicMail.

    Thân.
  12. thy3s Thành viên

    Cảm ơn Keeper về thông tin hữu ích, mình sẽ thử hỏi bác kia xem thế nào

    Mình bảo ko biết debug BBapp trên eclipse chứ ko nói ko biết debug trên eclipse mà :laugh8kb:. Mọi người có thể build file COD với tool opensource là bb-ant-tool, chả hiểu bây giờ thế nào chứ hồi tớ xài thì vẫn còn lỗi. Nói chung đồ nghề cho phát triển app trên BB rất nghèo nàn, sơ khai.
  13. godbrother Thành viên

    Bác này trên trời rơi xuống à? Thế bác biết Java không? Viết ra đây vài câu em xem thử xem có giống với cái đoạn ở trên không nào :D
    o973797475 thích nội dung này.
  14. Keeper Tiểu nhị

    Derek (là chủ email mình đưa) là trùm dùng Ant cho Eclipse luôn, hắn làm LogicMail bằng eclipse và sử dụng Ant build. Nhưng có vẻ hắn bị stress nặng vì mấy tool này.

    Trao đổi với hắn sẽ học được rất nhiều điều đó thy3s.
    kaseruo973797475 thích nội dung này.
  15. nokiisa Thành viên

    BlackBerry JDE em mở lên không được, có cách nào không anh, em xài windows 7
    Báo thiếu file RIMIDEWin32Util.dll, trong khi em cài đặt thành công và kiểm tra vẫn có file đó à :(
    o973797475 thích nội dung này.
  16. Keeper Tiểu nhị

    Win 7 lỗi. Chưa kể Win 7 lỗi với cả BDM 4.7

    Thân.
  17. karin007 Thành viên

    gỡ Win 7 ra xài lại Xp. HIx.....................
  18. mikomi Thành viên

    Download BlackBerry JDE plug-in cho eclipse mãi mà không được, nản thật. Bác nào hảo tâm upload lên host nào đó được không, hoặc nếu ở Hà Nội thì cho mình địa chỉ để copy, thanks mọi người.
    o973797475 thích nội dung này.
  19. superstar_nth Thành viên

    Mình muốn hỏi ngược lại câu hỏi này :). Vì mình thích C hơn, và mình nghĩ C/C++ mạnh về lập trình hệ thống hơn -> flexible + tối ưu hơn về nhiều mặt. :)

    Hic, đang xài windows 7 thấy rất ok, đang có hứng thú định tập tành với BB, nghe đến đây thì bùn não lòng. Giờ sao nhỉ? VMWare hết hạn. Hic hic. Không lẽ phải cài thêm 1 hdh chỉ để lập trình BB :-S

    Nhân tiện rất mong được add nick YM bác Keeper để học hỏi thêm trong quá trình "dùi mài kinh sử". Nick mình là: vietpa3001

    À, còn 1 vấn đề nữa, ko bít dạo này có phải do mạng nhà mình, vào net cứ chập chờn, nên down mấy cái JDE trên trang maxpda không được. Không biết còn link nào khác không nhỉ? Lon ton nhảy vào trang chủ BB down, được nửa chừng toàn bị lỗi timeout :-S
    o973797475 thích nội dung này.
  20. Keeper Tiểu nhị

    C mạnh về hệ thống low level hơn nhưng modern programming không còn nhiều chỗ đứng cho C/C++ nữa, và sắp tới xu hướng Internet hóa thì có lẽ người ta ko còn nhớ hệ thống là gì mà tất cả sẽ hướng tới việc gói gọn trong "trình duyệt" mà thôi. Đồng thời mobile device sẽ dần thay thế rất nhiều work mà trước đây phải phụ thuộc vào PC.

    C/C++ hay Java Sun hay hiện đang nổi lên Java Dalvik (Android) không thể so sánh độ flexible và tối ưu gì được khi cái quan trọng nhất vẫn là PLATFORM. Tùy platform mà nó có flexible hay không, nếu phát triển trên platform là mobile phone thì C/C++ hay ngôn ngữ nào cũng sẽ gặp rất nhiều hạn chế.

    Win 7 bản 7000 hay RC đều đã support tốt driver cho BlackBerry. Keeper đang sử dụng Win 7 để làm việc đây.

    Còn nick YIM thì luôn ở trên góc trên bên phải của mỗi post hay topic của Keeper. Email thì dưới signature. Luôn welcome mọi người trao đổi và học hỏi lẫn nhau.

    Best regards.
    o973797475nganinho thích nội dung này.

Chia sẻ trang này