Blackberry
Development 101
Cory Foy
foyc@coryfoy.com
Agenda

The BlackBerry Platform

Development Models

Deployment Models

Guidelines and Gotchas

Questions
Agenda

The BlackBerry Platform

Development Models

Deployment Models

Guidelines and Gotchas

Questions
BB Platform
BB Platform

Instant Information
BB Platform

Instant Information

  Managed Connectivity and Push
BB Platform

Instant Information

  Managed Connectivity and Push

Standards-Based Development
BB Platform

Instant Information

  Managed Connectivity and Push

Standards-Based Development

10,000+ apps (App World + Handango)
BB Platform

Instant Information

  Managed Connectivity and Push

Standards-Based Development

10,000+ apps (App World + Handango)

Industry Leader (32 Million Subscribers)
BB Platform
BB Platform

Business Focus
BB Platform

Business Focus

 Security and Encryption
BB Platform

Business Focus

 Security and Encryption

 Centralized Management (BES)
BB Platform

Business Focus

 Security and Encryption

 Centralized Management (BES)

 Always on VPN Capable
Networking is Easy!
Networking is Easy!
BB Platform

Development Platform (Browser)

  CSS and AJAX Support

  Offline Form Queuing

  Web Push (Web Signals)

  Eclipse and Visual Studio Plugins
BB Platform

Development Platform (Java)

  Standards Based (MIDP or RIM APIs)

  Eclipse-Based Plugin

  Plugins and Emulators are free

  $20 Signing Fee for protected APIs
Agenda

The BlackBerry Platform

Development Models

Deployment Models

Guidelines and Gotchas

Questions
BB Development
BB Development

Developer Programs
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins

 Rich Set of Emulators
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins

 Rich Set of Emulators
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins

 Rich Set of Emulators
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins

 Rich Set of Emulators
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins

 Rich Set of Emulators

 Strong (and free!) Developer Program
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins

 Rich Set of Emulators

 Strong (and free!) Developer Program
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins

 Rich Set of Emulators

 Strong (and free!) Developer Program

 App World
BB Development

Developer Programs

 Eclipse and Visual Studio Plugins

 Rich Set of Emulators

 Strong (and free!) Developer Program

 App World
Development Models
FLEXIBILITY




              EASE OF DEVELOPMENT
Development Models
FLEXIBILITY




              EASE OF DEVELOPMENT
Development Models
FLEXIBILITY




              EASE OF DEVELOPMENT
Browser Development

Browser Capabilities

Offline Form Queueing

Push Model

Web Signals
Browser Development

Browser Capabilities
  Markup Languages: HTML, XHTML-MP, WML 1.3

  Images: JPEG, GIF, PNG, WBMP

  Presentation: Frames, ATOM, RSS

  Scripting: JS 1.5 (w/AJAX), ECMAScript, WMLScript
Browser Development

Offline Form Queueing

 Implemented using specific HTTP Headers

   x-rim-queue-id and x-rim-next-target

 User can then retrieve the information from
 device queue
Browser Development

Push Model

 MDS Push

 BIS Push (via Web Signals)

 WAP Network Push
Browser Development

Web Signals

 Near real-time updates pushed directly to the
 phone

 Adds icon to the home page

 Opt-In only
Java Development

MIDP vs RIM APIs

Networking

Graphics Models

Key Signing

Quality Code
Java Development

    MIDP 2.0   RIM APIs
Java Development

    MIDP 2.0        RIM APIs




               VS
Java Development

    MIDP 2.0                 RIM APIs




                  VS
               PORTABILITY
Java Development

    MIDP 2.0          RIM APIs




                 VS
   PORTABILITY
Java Development

    MIDP 2.0              RIM APIs




                 VS
   PORTABILITY

         SCREEN CUSTOMIZATION
Java Development

    MIDP 2.0               RIM APIs




                 VS
   PORTABILITY        SCREEN CUSTOMIZATION
Java Development

    MIDP 2.0                   RIM APIs




                   VS
   PORTABILITY          SCREEN CUSTOMIZATION

               UI COMPONENTS
Java Development

    MIDP 2.0               RIM APIs




                 VS
   PORTABILITY        SCREEN CUSTOMIZATION
                         UI COMPONENTS
Java Development

    MIDP 2.0              RIM APIs




                 VS
   PORTABILITY      SCREEN CUSTOMIZATION
                       UI COMPONENTS
            CUSTOM LAYOUTS
Java Development

    MIDP 2.0               RIM APIs




                 VS
   PORTABILITY        SCREEN CUSTOMIZATION
                         UI COMPONENTS


                        CUSTOM LAYOUTS
Java Development

    MIDP 2.0              RIM APIs




                 VS
   PORTABILITY       SCREEN CUSTOMIZATION
                        UI COMPONENTS
            ACCESS RIM APIS

                       CUSTOM LAYOUTS
Java Development

     MIDP 2.0                 RIM APIs




                    VS
    PORTABILITY          SCREEN CUSTOMIZATION
  ACCESS RIM APIS           UI COMPONENTS


                           CUSTOM LAYOUTS
Java Development

    MIDP 2.0                RIM APIs




                  VS
    PORTABILITY        SCREEN CUSTOMIZATION
  ACCESS RIM APIS         UI COMPONENTS
              MULTI-THREADING

                         CUSTOM LAYOUTS
Java Development

     MIDP 2.0                 RIM APIs




                    VS
    PORTABILITY          SCREEN CUSTOMIZATION
  ACCESS RIM APIS           UI COMPONENTS


  MULTI-THREADING          CUSTOM LAYOUTS
Java Development
Java Development
Networking
Java Development
Networking

 Several Models and supported protocols
Java Development
Networking

 Several Models and supported protocols

   MDS, Wi-Fi, WAP, TCP, BIS, LAN
Java Development
Networking

 Several Models and supported protocols

   MDS, Wi-Fi, WAP, TCP, BIS, LAN

 Least Cost Routing for some connections
Java Development
Networking

 Several Models and supported protocols

   MDS, Wi-Fi, WAP, TCP, BIS, LAN

 Least Cost Routing for some connections

 Providers may provide ServiceBook info during
 provisioning
Java Development

Networking

 Connections determined by URL parameters
 and ServiceBook entries
Java Development

Networking

 Connections determined by URL parameters
 and ServiceBook entries
Java Development
Recommended Connection Order

       Enterprise       Consumer

     BlackBerry MDS         Wi-Fi
           Wi-Fi          WAP 2.0
         WAP 2.0             BIS
            BIS       BlackBerry MDS
        Direct TCP       Direct TCP
       WAP 1.0/1.1      WAP 1.0/1.1
Java Development
Graphics Models

 Some basic capabilities included

 Image Management

 net.rim.device.api.ui.Graphics

 SVG Support

 New Fields in 5.0
Java Development

Key Signing

  Runtime APIs

  Application APIs

  Cryptography APIs

  Run on Startup
Java Development

Key Signing

  Fill out form at the Blackberry.com site

  $20 fee

  No required for testing in Simulators
Java Development

Quality Code

  Test-Driven Development

    http://sourceforge.net/projects/b-unittesting/

  Separation of Concerns

  SOLID Principles
Java Development

Quality Code

  Craftsmanship Manifesto

    manifesto.softwarecraftsmanship.org

  Agile Manifesto

    agilemanifesto.org
Agenda

The BlackBerry Platform

Development Models

Deployment Models

Guidelines and Gotchas

Questions
Deployment Models


Browser Based Apps

 Point Users to Link

 Push Icon to Home Page
Deployment Models

Java Based Apps

 Self-Host (.jad and .cod / .jar)

 3rd Party Host

 BlackBerry App World
Agenda

The BlackBerry Platform

Development Models

Deployment Models

Guidelines and Gotchas

Questions
Guidelines / Gotchas

UI Guidelines

  Myriad of Devices (Touch, Click Wheel)

  Orientations

  Menu Handling (Home / Back Keys)

  Account for Mistakes (Undo, Confirmation)
Guidelines / Gotchas

Browser UI Guidelines

  Smaller Screen

  Being Accessed on the Go

  Touch versus Click Screen

  Try your application
Guidelines / Gotchas
 Networking

  Understand your market

  Test on as many real-world devices as
  possible

  Provide easy way for users to get you
  feedback
Guidelines / Gotchas


  Emulators

   They Lie. Period.

   But love ‘em anyway
Guidelines / Gotchas

   Threading

    Don’t block the UI Thread

    Stay Responsive

    Close your connections!
Agenda

The BlackBerry Platform

Development Models

Deployment Models

Guidelines and Gotchas

Questions
Contact / Links
BB Developer zone -
http://na.blackberry.com/eng/developers/

http://coryfoy.com

foyc@coryfoy.com

Beginning Blackberry Development - Anthony Rizk

Advanced Blackberry Development - Chris King

Blackberry 101 - Day of Mobile, March 2010

Editor's Notes

  • #2 While I primarily do agile and lean coaching, BB holds a special place in my heart. Intro to BB was 2004 - Produced J2ME apps for field employees. Gave power in the hands of everyone. Don’t ramble about instant info - save for later
  • #5 BBs aren’t addictive because of flashy apps or diamond-encrusted faceplates. It’s instant information
  • #6 BBs aren’t addictive because of flashy apps or diamond-encrusted faceplates. It’s instant information
  • #7 BBs aren’t addictive because of flashy apps or diamond-encrusted faceplates. It’s instant information
  • #8 BBs aren’t addictive because of flashy apps or diamond-encrusted faceplates. It’s instant information
  • #9 BBs aren’t addictive because of flashy apps or diamond-encrusted faceplates. It’s instant information
  • #10 Next slide transition: Great Dev site, with videos, networking
  • #11 Next slide transition: Great Dev site, with videos, networking
  • #12 Next slide transition: Great Dev site, with videos, networking
  • #13 Next slide transition: Great Dev site, with videos, networking
  • #16 Mention Windows / BB-Ant-Tools
  • #17 13 minutes