SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Super Apps for BlackBerry
         Mike Kirkup, Developer Relations Director




                                          February 25, 20101
Super App Experience

  Experiences that transform user
            behavior
  Apps that people use every day
Super App Experience
• Always-on experience
• Seamless integration with native
  apps and 3rd party apps
• Proactive, notification-driven
• Contextualized
• Social and connected
• Efficient and intelligent
Super App Enablers
• Multi-threaded O/S with background apps
• APIs for deep, contextualized integration
  with Inbox, PIM, Camera, Phone, etc.
• Rich event-based notification model
• Push services for just-in-time data delivery
• Integrated LBS and Mapping

 Platform to enable highly engaging, real-time
 apps that act as natural extensions to the
 apps they already use
Super App Examples
• Menu item in the Inbox launches app with
  relevant context
• App updates the Calendar or Contacts
• App notifies the user when their favorite
  team is playing
• App detects significant location change
  and proactively engages the user
• App quietly downloads media content in
  the background
Technical Drivers for Super Apps

 • Deep native integration

    • Seamless flow




                                                 BlackBerry® Bold™ 9700 smartphone
    • Application synergy

 • Always on, always connected

    • Real-time multi-tasking
    • The power of push

 • The cloud in your pocket

    • Leveraging context
    • Integrated with remote data and services
Deep Native Integration

 • Intuitive extensions to the BlackBerry® experience
    • Built for integration from the ground up

 • Lower the learning curve for application use
    • Cohesive and seamless user experience

    • Consistent behavior

 • Increased application stickiness
    • Remove think-points

 • Add discovery points for your applications and services
It Just Works!

 Examples
    • While viewing a Contact, launch turn-by-
      turn navigation application to provide




                                                  BlackBerry® Bold™ 9700 smartphone
      directions to the associated address

    • Display customer sales information on the
      incoming call screen when a customer
      calls

    • When a notification arrives during an
      important meeting, the silent setting is
      respected and the meeting is not
      interrupted

    • Within the media player, launch a service
      to discover music
Understanding BlackBerry Flow

 • Invoking native applications
 • Handling content
 • Recognizing text patterns
 • Creating custom menu items
 • Embedding UI components in native applications
 • Integrating custom UI fields
Invoking Native Applications

 • Launch native BlackBerry
   applications using the Invoke API
    • Address Book, Message, Calendar,




                                          BlackBerry® Bold™ 9700 smartphone
      BlackBerry® Maps, Camera, Video
      Recorder, Phone, Search, etc.
    • Pass context to application using
      ApplicationArguments
Invoking Native Applications

 • Java Example

     String appType = Invoke.APP_TYPE_ADDRESSBOOK;
     ApplicationArguments appArgs = new
        AddressBookArguments(AddressBookArguments.ARG_VIEW, contact);
     Invoke.invokeApplication(appType, appArgs);


 • JavaScript Example
     <script type="text/javascript">
      var contact = new blackberry.pim.Contact();
      contact.firstName = „Chris';
      contact.lastName = „Smith';
      var args = new blackberry.invoke.AddressBookArguments(contact);
      args.view = blackberry.invoke.AddressBookArguments.VIEW_NEW;
      blackberry.invoke.invoke(blackberry.invoke.APP_ADDRESSBOOK, args);
     </script>
Handling Content

• Invoke native Content Handlers
    •   Launch applications to handle specific content
    •   Optional response back from the handler

• Register Content Handlers to launch an application
• Create handlers for unsupported mime-types

• Java Example
Registry registry =
  Registry.getRegistry(MyApplication.class.getName());
Invocation invocation = new Invocation(null, null,
    BlackBerryContentHandler.ID_MEDIA_CONTENT_HANDLER,
              false, ContentHandler.ACTION_OPEN);
invocation.setArgs(new String[] {
  BlackBerryContentHandler.MEDIA_ARGUMENT_VIEW_PICTURES });
registry.invoke(invocation);
Recognizing Text Patterns

 • Register menu items for specific
   text patterns
    • Patterns hyperlink when they appear in
      any active UI component
    • Exact match, or regular expressions



• Java   Example
   String pattern = “@[*]";
   Int patternType =
   PatternRepository.PATTERN_TYPE_REGULAR_EXPRESSION
   ;
   PatternRepository.addPattern(ad_menuhandler,
      pattern, patternType,
          new ApplicationMenuItem[] { ami });
Creating Custom Menu Items

 Add menu items to native applications
    • Select placement of menu items




                                              BlackBerry® Bold™ 9700 smartphone
    • Pass context on invocation
    • Register menu items for text patterns
Creating Custom Menu Items

 Java Example:
 ApplicationMenuItemRepository amir =
      ApplicationMenuItemRepository.getInstance();
 int placement = 0x350100; // Menu placement
 ApplicationMenuItem ami =
 new ApplicationMenuItem(placement) {
      public Object run(Object context) {
          // … do something …
          return null;
      }
      public String toString() {return “Translate with Navita”;}
 };
 amir.addMenuItem(
 ApplicationMenuItemRepository.MENUITEM_SYSTEM, ami, ad_menuhandler);
Embedding Custom UI in Native Applications

 • Application Icons

 • Application Messages and




                                             BlackBerry® Bold™ 9700 smartphone
   Banner Indicators

 • Phone Screen Customization

 • Contact Linking Extensions
Application Icons

• Customize icons and their placement
   • Un-focused and focused (rollover) icons
      • Set static images
      • Dynamically change icons
   • A single application can have multiple
     entry points, with corresponding icons
   • Placement within specified folders
• JavaScript Example
   <script type="text/javascript">
   blackberry.app.setHomeScreenName("New data");
   blackberry.app.setHomeScreenIcon("local:///myimage.png", null);
   // Set hover icon
   blackberry.app.setHomeScreenIcon("local:///myHoverimage.png", true);<
   /script>
Application Messages and Banner Indicators

• Add custom items to the Messages
  application
   •   Separate folders or combined in message list




                                                      BlackBerry® Bold™ 9700 smartphone
   •   Preview text and picture
   •   Custom icons
   •   Menu items
Application Messages and Banner Indicators

 Java Example

 // Register icon for indicator
       ApplicationIndicatorRegistry air = ApplicationIndicatorRegistry.getInstance();
       air.register(icon, false, false);

      // Add an Application Message
      ApplicationMessage myMessage = new MyApplicationMessage();
         collection.addMessage(myMessage);
         folder.fireElementAdded(myMessage);

      ApplicationIndicator ai = air.getApplicationIndicator();
       int size = collection.size();
       ai.setValue(size);
       ai.setVisible(size > 0);
Phone Screen Customization

 • Add    text and images to Phone screens

 • Java    Example
 if (PhoneScreen.isSupported()) {
     Phone.addPhoneListener(
      new AbstractPhoneListener() {
         public void callIncoming(int callId) {
            PhoneScreen ps =
             new PhoneScreen(callId,
                   Application.getApplication());
            ps.add(new BitmapField(
           Bitmap.getBitmapResource(“img/bbdc.jpg”)));
            ps.sendDataToScreen();
         }
     });
 }
Notifications Manager

 • Register your own notification source
      • Appears within the profiles in Sounds


 • Java Example
 // Register Notification Source
 NotificationsManager.registerSource(
 sourceID,
          “Notifications Demo”,
          NotificationsConstants.IMPORTANT );
 // Trigger Notification
 NotificationsManager.triggerImmediateEvent(
                       sourceID, … );
Embedding Native Application
Components in Your Application
 • Auto-Complete Field
 • Location Picker




                                 BlackBerry® Bold™ 9700 smartphone
 • File Picker
 • Map Field
 • Browser Field
 • Multi-Media Players
Auto-Complete Field

 • Use Provided Data Sources, or customize
     • Contacts, Memos, Music, Pictures, Ringtones, Tasks,
       Videos, Voice Notes

 • Java Example
  BasicFilteredList bfl = new BasicFilteredList();
  bfl.addDataSource(0,
  BasicFilteredList.DATA_SOURCE_CONTACTS,
  BasicFilteredList.DATA_FIELD_CONTACTS_NAME_FULL |
      BasicFilteredList.DATA_FIELD_CONTACTS_COMPANY,
  BasicFilteredList.DATA_FIELD_CONTACTS_NAME_FULL |
      BasicFilteredList.DATA_FIELD_CONTACTS_COMPANY |
      BasicFilteredList.DATA_FIELD_CONTACTS_EMAIL,
  -1, -1, null,
  BasicFilteredList.COMPARISON_IGNORE_CASE);
  AutoCompleteField autoCompleteFieldContacts = new AutoCompleteField( bfl,
  AutoCompleteField.LIST_DROPDOWN |
    AutoCompleteField.LIST_EXPAND_ON_CLICK);
Location Picker
• Embed a location chooser component in your UI
      • Add multiple location sources
      • Contacts, Manual entry, GPS, Find on a Map,
        Recent Locations, Application suggestions

• Java Example
LocationPicker.Picker[] locationPickersArray =
 new LocationPicker.Picker[] {
   EnterLocationPicker.getInstance(false),
   SuggestedLocationPicker.getInstance(
               "App specific...", landmarks ),
   RecentLocationPicker.getInstance(),
   GPSLocationPicker.getInstance(),
   MapsLocationPicker.getInstance(),
   ContactsLocationPicker.getInstance(false)
};
LocationPicker locationPicker =
     LocationPicker.getInstance(locationPickersArray);
locationPicker.setListener(this);
locationPicker.show();
File Picker

 • Embed a file chooser component in your UI

       • Filter files shown
       • Choose directory to start in

 Java Example
 // Get the FilePicker instance
 FilePicker filePicker = FilePicker.getInstance();

 // Set the file picker to only display mp3 files
 filePicker.setFilter(".mp3");

 // Obtain the default system music directory
 String path =ystem.getProperty("fileconn.dir.memorycard.music");

 // Set the directory to open the file picker in
 filePicker.setPath(path);
 filePicker.setListener(this);
 filePicker.show();
Map Field

 • Embed BlackBerry Maps within UI
      • Control over map shown




                                           BlackBerry® Bold™ 9700 smartphone
           •position, zoom, and rotation
      • Paint over top of Map
 • Java Example
 MapField mapField = new MapField();
 mapField.moveTo(initialLocation);
 mapField.setZoom(initialZoom);
 screen.add(mapField);
Browser Field

 • Embed the Browser in UI
    • Render HTML and Javascript within a Field
    • Supports new Browser rendering engine
 •Java Example
    // create new instance of the BrowserField
    BrowserField browserField = new BrowserField();

    // set a border for the BrowserField
    XYEdges thickBorder = new XYEdges(5, 5, 5, 5);
    int hp = Color.HOTPINK;
    XYEdges borderColor = new XYEdges(hp, hp, hp, hp);
    Border border = BorderFactory.createSimpleBorder(thickBorder,
                         borderColor, Border.STYLE_SOLID);
    browserField.setBorder(border);

    // add the browser field to the screen
    screen.add( browserField );

    // request the content you wish to display
    browserField.requestContent( "http://www.helloworld.org" );
Multi-Media Players

 • Embed Media player/recorders in a component in
   your UI
      • Audio/video player, camera/video recorder

 •Java Example
  Player player = Manager.createPlayer("capture://video");
  player.realize();
  videoControl = (VideoControl)player.getControl( "VideoControl" );
  videoField = (Field) videoControl.initDisplayMode(
   VideoControl.USE_GUI_PRIMITIVE,
   "net.rim.device.api.ui.Field");
  videoControl.setDisplayFullScreen(true);
  videoControl.setVisible(true);
  player.start();
Always On, Real-time Multi-tasking

 • Applications run in the background
    •   Most start on device power-up.
    •   Listening for events




                                             BlackBerry® Bold™ 9700 smartphone
    •   Querying a server in the cloud
    •   Listening for inbound “push data”.
Always On, Real-time Multi-tasking

  Java Example
    public static void main(String[] args) {
      if (args != null && args.length > 0) {
          if (args[0].equals("startup")) { // startup code registering menu items
              ApplicationDescriptor ad_startup =
                  ApplicationDescriptor.currentApplicationDescriptor();
              ApplicationDescriptor ad_menuhandler = new ApplicationDescriptor(
                      ad_startup , "Demo menu handler", new String[]{"menu"});
             amir.addMenuItem(ApplicationMenuItemRepository.MENUITEM_SYSTEM,
                                           ami, ad_menuhandler);
          } else { // args[0].equals("menu")) {
              // respond to launch from menu
          }
      } else {
          // respond to launch from home screen
      }
Always Connected

 • User interaction driven by change events
    • Alert the user when something relevant happens
    • Display contextual data to the user (e.g. information about the
      person phoning you)
    • Update data on the handheld without alerting the user to ensure
      they‟ve got the most up-to-date content

 • Example
    // create new instance of the BrowserField
    BrowserField browserField = new BrowserField();

    // set a border for the BrowserField
    XYEdges thickBorder = new XYEdges(5, 5, 5, 5);
    int hp = Color.HOTPINK;
    XYEdges borderColor = new XYEdges(hp, hp, hp, hp);
The Power of Push

• Mobile users consume data and
  information differently
• Reach your audience anytime,




                                                    BlackBerry® Storm™ smartphone
  anywhere with timely,contextual data
   • Add a notification to the top of the home
     screen
   • Update the applications home screen icon
     with an “alert indicator”
   • Push a notification dialog box on top of the
     current screen
   • Play a tone or vibrating the device
The Power of Push

 • JavaScript Example
 <script>
  function startListening() {
    var port =1234;
    blackberry.push.openPushListener(handleMyReturnData, port, null);
  }

   function handleMyReturnData(data)
   {
     if (data != null) {
       var myRecievedData= blackberry.utils.blobToString(data.payload)
       alert(myRecievedData);
     Else
       alert("No data from the push");
     }
 </script>
The Cloud in Your Pocket

 • Optimized interaction mode for mobile use case
 • Rich online services and APIs deliver transformative
   experiences
    • Advertising Service APIs
    • Payment Service APIs
    • Cell Site Geo-location APIs
    • Leveraging Context
Change the Game With Context

 • Build-in location awareness

 • Presence / availability awareness




                                        BlackBerry® Storm™ smartphone
 • Aware of previous data selected in
   another application

 • Time of day awareness

 • Aware of events occurring on the
   device
Transformative Experiences
           Aligned Partnerships

    RICH INTEGRATION                   DEVELOPERS
         CONTEXTUALIZATION                    CONTENT PROVIDERS
PERSONALIZATION    AWARE              TOOLING VENDORS   HOSTERS

TRANSFORMATION                           ALIGNMENT
                 LIFE
  EXPERIENCEEXPERIENCE                        CARRIERS
     PROACTIVE                        INTEGRATORS    CUSTOMERS
PROACTIVE ENGAGEMENT
                CONSUMER
    ENTERPRISE  PERSONAL                ENTERPRISE PLATFORMS
       BUSINESS
     ENGAGEMENT




Not about the Smartphone, it’s about the future of personal
Thank You
         Mike Kirkup
Director, Developer Relations
Questions & Answers

Weitere ähnliche Inhalte

Ähnlich wie Super Apps Webcast February 2010

Azure Mobile Apps with Xamarin
Azure Mobile Apps with XamarinAzure Mobile Apps with Xamarin
Azure Mobile Apps with Xamarindanhermes
 
Develping mobile services on aws - Pop-up Loft Tel Aviv
Develping mobile services on aws - Pop-up Loft Tel AvivDevelping mobile services on aws - Pop-up Loft Tel Aviv
Develping mobile services on aws - Pop-up Loft Tel AvivAmazon Web Services
 
Platform update and super apps ON BB App World
Platform update and super apps ON BB App World Platform update and super apps ON BB App World
Platform update and super apps ON BB App World Prashant Singh
 
Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesSalesforce Developers
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarinMohit Chhabra
 
IBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBIZZ
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixIBM
 
Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinPranav Ainavolu
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformLohith Goudagere Nagaraj
 
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumMobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumJeff Haynie
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Jeff Haynie
 
Xamarin Technical Assessment Against Native for Cross Platform Mobile Develop...
Xamarin Technical Assessment Against Native for Cross Platform Mobile Develop...Xamarin Technical Assessment Against Native for Cross Platform Mobile Develop...
Xamarin Technical Assessment Against Native for Cross Platform Mobile Develop...YASH Technologies
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikMukteswar Patnaik
 
Creating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixCreating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixAndrew Ferrier
 
IBM MobileFirst - Hybrid App Development
IBM MobileFirst - Hybrid App DevelopmentIBM MobileFirst - Hybrid App Development
IBM MobileFirst - Hybrid App DevelopmentWim Tobback
 
Building Enterprise Ready Mobile Apps: A Developer Deep Dive
Building Enterprise Ready Mobile Apps: A Developer Deep DiveBuilding Enterprise Ready Mobile Apps: A Developer Deep Dive
Building Enterprise Ready Mobile Apps: A Developer Deep Divekidozen
 
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍Amazon Web Services Korea
 

Ähnlich wie Super Apps Webcast February 2010 (20)

Azure Mobile Apps with Xamarin
Azure Mobile Apps with XamarinAzure Mobile Apps with Xamarin
Azure Mobile Apps with Xamarin
 
Develping mobile services on aws - Pop-up Loft Tel Aviv
Develping mobile services on aws - Pop-up Loft Tel AvivDevelping mobile services on aws - Pop-up Loft Tel Aviv
Develping mobile services on aws - Pop-up Loft Tel Aviv
 
Platform update and super apps ON BB App World
Platform update and super apps ON BB App World Platform update and super apps ON BB App World
Platform update and super apps ON BB App World
 
Understanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile ArchitecturesUnderstanding Native, Hybrid, and Web Mobile Architectures
Understanding Native, Hybrid, and Web Mobile Architectures
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarin
 
IBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with WorklightIBM MobileFirst - Hybrid Application Development with Worklight
IBM MobileFirst - Hybrid Application Development with Worklight
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
Cross platform mobile app development with Xamarin
Cross platform mobile app development with XamarinCross platform mobile app development with Xamarin
Cross platform mobile app development with Xamarin
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik Platform
 
Mobile for the rest of us
Mobile for the rest of usMobile for the rest of us
Mobile for the rest of us
 
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator TitaniumMobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
Mobile 2.0 Event: Mobile for the rest of us using Appcelerator Titanium
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0
 
Xamarin Technical Assessment Against Native for Cross Platform Mobile Develop...
Xamarin Technical Assessment Against Native for Cross Platform Mobile Develop...Xamarin Technical Assessment Against Native for Cross Platform Mobile Develop...
Xamarin Technical Assessment Against Native for Cross Platform Mobile Develop...
 
Xamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar PatnaikXamarin COE by Mukteswar Patnaik
Xamarin COE by Mukteswar Patnaik
 
Creating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM BluemixCreating Effective Mobile Applications with IBM Bluemix
Creating Effective Mobile Applications with IBM Bluemix
 
Fire up your mobile app!
Fire up your mobile app!Fire up your mobile app!
Fire up your mobile app!
 
IBM MobileFirst - Hybrid App Development
IBM MobileFirst - Hybrid App DevelopmentIBM MobileFirst - Hybrid App Development
IBM MobileFirst - Hybrid App Development
 
Building Enterprise Ready Mobile Apps: A Developer Deep Dive
Building Enterprise Ready Mobile Apps: A Developer Deep DiveBuilding Enterprise Ready Mobile Apps: A Developer Deep Dive
Building Enterprise Ready Mobile Apps: A Developer Deep Dive
 
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
 

Kürzlich hochgeladen

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 

Kürzlich hochgeladen (20)

Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

Super Apps Webcast February 2010

  • 1. Super Apps for BlackBerry Mike Kirkup, Developer Relations Director February 25, 20101
  • 2. Super App Experience Experiences that transform user behavior Apps that people use every day
  • 3. Super App Experience • Always-on experience • Seamless integration with native apps and 3rd party apps • Proactive, notification-driven • Contextualized • Social and connected • Efficient and intelligent
  • 4. Super App Enablers • Multi-threaded O/S with background apps • APIs for deep, contextualized integration with Inbox, PIM, Camera, Phone, etc. • Rich event-based notification model • Push services for just-in-time data delivery • Integrated LBS and Mapping Platform to enable highly engaging, real-time apps that act as natural extensions to the apps they already use
  • 5. Super App Examples • Menu item in the Inbox launches app with relevant context • App updates the Calendar or Contacts • App notifies the user when their favorite team is playing • App detects significant location change and proactively engages the user • App quietly downloads media content in the background
  • 6. Technical Drivers for Super Apps • Deep native integration • Seamless flow BlackBerry® Bold™ 9700 smartphone • Application synergy • Always on, always connected • Real-time multi-tasking • The power of push • The cloud in your pocket • Leveraging context • Integrated with remote data and services
  • 7. Deep Native Integration • Intuitive extensions to the BlackBerry® experience • Built for integration from the ground up • Lower the learning curve for application use • Cohesive and seamless user experience • Consistent behavior • Increased application stickiness • Remove think-points • Add discovery points for your applications and services
  • 8. It Just Works! Examples • While viewing a Contact, launch turn-by- turn navigation application to provide BlackBerry® Bold™ 9700 smartphone directions to the associated address • Display customer sales information on the incoming call screen when a customer calls • When a notification arrives during an important meeting, the silent setting is respected and the meeting is not interrupted • Within the media player, launch a service to discover music
  • 9. Understanding BlackBerry Flow • Invoking native applications • Handling content • Recognizing text patterns • Creating custom menu items • Embedding UI components in native applications • Integrating custom UI fields
  • 10. Invoking Native Applications • Launch native BlackBerry applications using the Invoke API • Address Book, Message, Calendar, BlackBerry® Bold™ 9700 smartphone BlackBerry® Maps, Camera, Video Recorder, Phone, Search, etc. • Pass context to application using ApplicationArguments
  • 11. Invoking Native Applications • Java Example String appType = Invoke.APP_TYPE_ADDRESSBOOK; ApplicationArguments appArgs = new AddressBookArguments(AddressBookArguments.ARG_VIEW, contact); Invoke.invokeApplication(appType, appArgs); • JavaScript Example <script type="text/javascript"> var contact = new blackberry.pim.Contact(); contact.firstName = „Chris'; contact.lastName = „Smith'; var args = new blackberry.invoke.AddressBookArguments(contact); args.view = blackberry.invoke.AddressBookArguments.VIEW_NEW; blackberry.invoke.invoke(blackberry.invoke.APP_ADDRESSBOOK, args); </script>
  • 12. Handling Content • Invoke native Content Handlers • Launch applications to handle specific content • Optional response back from the handler • Register Content Handlers to launch an application • Create handlers for unsupported mime-types • Java Example Registry registry = Registry.getRegistry(MyApplication.class.getName()); Invocation invocation = new Invocation(null, null, BlackBerryContentHandler.ID_MEDIA_CONTENT_HANDLER, false, ContentHandler.ACTION_OPEN); invocation.setArgs(new String[] { BlackBerryContentHandler.MEDIA_ARGUMENT_VIEW_PICTURES }); registry.invoke(invocation);
  • 13. Recognizing Text Patterns • Register menu items for specific text patterns • Patterns hyperlink when they appear in any active UI component • Exact match, or regular expressions • Java Example String pattern = “@[*]"; Int patternType = PatternRepository.PATTERN_TYPE_REGULAR_EXPRESSION ; PatternRepository.addPattern(ad_menuhandler, pattern, patternType, new ApplicationMenuItem[] { ami });
  • 14. Creating Custom Menu Items Add menu items to native applications • Select placement of menu items BlackBerry® Bold™ 9700 smartphone • Pass context on invocation • Register menu items for text patterns
  • 15. Creating Custom Menu Items Java Example: ApplicationMenuItemRepository amir = ApplicationMenuItemRepository.getInstance(); int placement = 0x350100; // Menu placement ApplicationMenuItem ami = new ApplicationMenuItem(placement) { public Object run(Object context) { // … do something … return null; } public String toString() {return “Translate with Navita”;} }; amir.addMenuItem( ApplicationMenuItemRepository.MENUITEM_SYSTEM, ami, ad_menuhandler);
  • 16. Embedding Custom UI in Native Applications • Application Icons • Application Messages and BlackBerry® Bold™ 9700 smartphone Banner Indicators • Phone Screen Customization • Contact Linking Extensions
  • 17. Application Icons • Customize icons and their placement • Un-focused and focused (rollover) icons • Set static images • Dynamically change icons • A single application can have multiple entry points, with corresponding icons • Placement within specified folders • JavaScript Example <script type="text/javascript"> blackberry.app.setHomeScreenName("New data"); blackberry.app.setHomeScreenIcon("local:///myimage.png", null); // Set hover icon blackberry.app.setHomeScreenIcon("local:///myHoverimage.png", true);< /script>
  • 18. Application Messages and Banner Indicators • Add custom items to the Messages application • Separate folders or combined in message list BlackBerry® Bold™ 9700 smartphone • Preview text and picture • Custom icons • Menu items
  • 19. Application Messages and Banner Indicators Java Example // Register icon for indicator ApplicationIndicatorRegistry air = ApplicationIndicatorRegistry.getInstance(); air.register(icon, false, false); // Add an Application Message ApplicationMessage myMessage = new MyApplicationMessage(); collection.addMessage(myMessage); folder.fireElementAdded(myMessage); ApplicationIndicator ai = air.getApplicationIndicator(); int size = collection.size(); ai.setValue(size); ai.setVisible(size > 0);
  • 20. Phone Screen Customization • Add text and images to Phone screens • Java Example if (PhoneScreen.isSupported()) { Phone.addPhoneListener( new AbstractPhoneListener() { public void callIncoming(int callId) { PhoneScreen ps = new PhoneScreen(callId, Application.getApplication()); ps.add(new BitmapField( Bitmap.getBitmapResource(“img/bbdc.jpg”))); ps.sendDataToScreen(); } }); }
  • 21. Notifications Manager • Register your own notification source • Appears within the profiles in Sounds • Java Example // Register Notification Source NotificationsManager.registerSource( sourceID, “Notifications Demo”, NotificationsConstants.IMPORTANT ); // Trigger Notification NotificationsManager.triggerImmediateEvent( sourceID, … );
  • 22. Embedding Native Application Components in Your Application • Auto-Complete Field • Location Picker BlackBerry® Bold™ 9700 smartphone • File Picker • Map Field • Browser Field • Multi-Media Players
  • 23. Auto-Complete Field • Use Provided Data Sources, or customize • Contacts, Memos, Music, Pictures, Ringtones, Tasks, Videos, Voice Notes • Java Example BasicFilteredList bfl = new BasicFilteredList(); bfl.addDataSource(0, BasicFilteredList.DATA_SOURCE_CONTACTS, BasicFilteredList.DATA_FIELD_CONTACTS_NAME_FULL | BasicFilteredList.DATA_FIELD_CONTACTS_COMPANY, BasicFilteredList.DATA_FIELD_CONTACTS_NAME_FULL | BasicFilteredList.DATA_FIELD_CONTACTS_COMPANY | BasicFilteredList.DATA_FIELD_CONTACTS_EMAIL, -1, -1, null, BasicFilteredList.COMPARISON_IGNORE_CASE); AutoCompleteField autoCompleteFieldContacts = new AutoCompleteField( bfl, AutoCompleteField.LIST_DROPDOWN | AutoCompleteField.LIST_EXPAND_ON_CLICK);
  • 24. Location Picker • Embed a location chooser component in your UI • Add multiple location sources • Contacts, Manual entry, GPS, Find on a Map, Recent Locations, Application suggestions • Java Example LocationPicker.Picker[] locationPickersArray = new LocationPicker.Picker[] { EnterLocationPicker.getInstance(false), SuggestedLocationPicker.getInstance( "App specific...", landmarks ), RecentLocationPicker.getInstance(), GPSLocationPicker.getInstance(), MapsLocationPicker.getInstance(), ContactsLocationPicker.getInstance(false) }; LocationPicker locationPicker = LocationPicker.getInstance(locationPickersArray); locationPicker.setListener(this); locationPicker.show();
  • 25. File Picker • Embed a file chooser component in your UI • Filter files shown • Choose directory to start in Java Example // Get the FilePicker instance FilePicker filePicker = FilePicker.getInstance(); // Set the file picker to only display mp3 files filePicker.setFilter(".mp3"); // Obtain the default system music directory String path =ystem.getProperty("fileconn.dir.memorycard.music"); // Set the directory to open the file picker in filePicker.setPath(path); filePicker.setListener(this); filePicker.show();
  • 26. Map Field • Embed BlackBerry Maps within UI • Control over map shown BlackBerry® Bold™ 9700 smartphone •position, zoom, and rotation • Paint over top of Map • Java Example MapField mapField = new MapField(); mapField.moveTo(initialLocation); mapField.setZoom(initialZoom); screen.add(mapField);
  • 27. Browser Field • Embed the Browser in UI • Render HTML and Javascript within a Field • Supports new Browser rendering engine •Java Example // create new instance of the BrowserField BrowserField browserField = new BrowserField(); // set a border for the BrowserField XYEdges thickBorder = new XYEdges(5, 5, 5, 5); int hp = Color.HOTPINK; XYEdges borderColor = new XYEdges(hp, hp, hp, hp); Border border = BorderFactory.createSimpleBorder(thickBorder, borderColor, Border.STYLE_SOLID); browserField.setBorder(border); // add the browser field to the screen screen.add( browserField ); // request the content you wish to display browserField.requestContent( "http://www.helloworld.org" );
  • 28. Multi-Media Players • Embed Media player/recorders in a component in your UI • Audio/video player, camera/video recorder •Java Example Player player = Manager.createPlayer("capture://video"); player.realize(); videoControl = (VideoControl)player.getControl( "VideoControl" ); videoField = (Field) videoControl.initDisplayMode( VideoControl.USE_GUI_PRIMITIVE, "net.rim.device.api.ui.Field"); videoControl.setDisplayFullScreen(true); videoControl.setVisible(true); player.start();
  • 29. Always On, Real-time Multi-tasking • Applications run in the background • Most start on device power-up. • Listening for events BlackBerry® Bold™ 9700 smartphone • Querying a server in the cloud • Listening for inbound “push data”.
  • 30. Always On, Real-time Multi-tasking Java Example public static void main(String[] args) { if (args != null && args.length > 0) { if (args[0].equals("startup")) { // startup code registering menu items ApplicationDescriptor ad_startup = ApplicationDescriptor.currentApplicationDescriptor(); ApplicationDescriptor ad_menuhandler = new ApplicationDescriptor( ad_startup , "Demo menu handler", new String[]{"menu"}); amir.addMenuItem(ApplicationMenuItemRepository.MENUITEM_SYSTEM, ami, ad_menuhandler); } else { // args[0].equals("menu")) { // respond to launch from menu } } else { // respond to launch from home screen }
  • 31. Always Connected • User interaction driven by change events • Alert the user when something relevant happens • Display contextual data to the user (e.g. information about the person phoning you) • Update data on the handheld without alerting the user to ensure they‟ve got the most up-to-date content • Example // create new instance of the BrowserField BrowserField browserField = new BrowserField(); // set a border for the BrowserField XYEdges thickBorder = new XYEdges(5, 5, 5, 5); int hp = Color.HOTPINK; XYEdges borderColor = new XYEdges(hp, hp, hp, hp);
  • 32. The Power of Push • Mobile users consume data and information differently • Reach your audience anytime, BlackBerry® Storm™ smartphone anywhere with timely,contextual data • Add a notification to the top of the home screen • Update the applications home screen icon with an “alert indicator” • Push a notification dialog box on top of the current screen • Play a tone or vibrating the device
  • 33. The Power of Push • JavaScript Example <script> function startListening() { var port =1234; blackberry.push.openPushListener(handleMyReturnData, port, null); } function handleMyReturnData(data) { if (data != null) { var myRecievedData= blackberry.utils.blobToString(data.payload) alert(myRecievedData); Else alert("No data from the push"); } </script>
  • 34. The Cloud in Your Pocket • Optimized interaction mode for mobile use case • Rich online services and APIs deliver transformative experiences • Advertising Service APIs • Payment Service APIs • Cell Site Geo-location APIs • Leveraging Context
  • 35. Change the Game With Context • Build-in location awareness • Presence / availability awareness BlackBerry® Storm™ smartphone • Aware of previous data selected in another application • Time of day awareness • Aware of events occurring on the device
  • 36. Transformative Experiences Aligned Partnerships RICH INTEGRATION DEVELOPERS CONTEXTUALIZATION CONTENT PROVIDERS PERSONALIZATION AWARE TOOLING VENDORS HOSTERS TRANSFORMATION ALIGNMENT LIFE EXPERIENCEEXPERIENCE CARRIERS PROACTIVE INTEGRATORS CUSTOMERS PROACTIVE ENGAGEMENT CONSUMER ENTERPRISE PERSONAL ENTERPRISE PLATFORMS BUSINESS ENGAGEMENT Not about the Smartphone, it’s about the future of personal
  • 37. Thank You Mike Kirkup Director, Developer Relations