SlideShare a Scribd company logo
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

More Related Content

Similar to Super Apps Webcast February 2010

Azure Mobile Apps with Xamarin
Azure Mobile Apps with XamarinAzure Mobile Apps with Xamarin
Azure Mobile Apps with Xamarin
danhermes
 
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
Amazon 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 Architectures
Salesforce Developers
 
App innovationcircles xamarin
App innovationcircles xamarinApp innovationcircles xamarin
App innovationcircles xamarin
Mohit 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 Worklight
IBIZZ
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
Alejandro Ruiz Varela
 
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
IBM
 
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
Pranav Ainavolu
 
New Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik PlatformNew Enterprisre Capabilities in Telerik Platform
New Enterprisre Capabilities in Telerik Platform
Lohith Goudagere Nagaraj
 
Mobile for the rest of us
Mobile for the rest of usMobile for the rest of us
Mobile for the rest of us
Axway Appcelerator
 
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
Jeff Haynie
 
Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0Appcelerator Titanium at Mobile 2.0
Appcelerator Titanium at Mobile 2.0
Jeff 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 Patnaik
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
Andrew Ferrier
 
Fire up your mobile app!
Fire up your mobile app!Fire up your mobile app!
Fire up your mobile app!
Suganthi Giridharan
 
IBM MobileFirst - Hybrid App Development
IBM MobileFirst - Hybrid App DevelopmentIBM MobileFirst - Hybrid App Development
IBM MobileFirst - Hybrid App Development
Wim 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 Dive
kidozen
 
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
AWS 모바일 허브에서 모바일 프로그래밍하기 - 박선용 :: 2015 리인벤트 리캡 게이밍
Amazon Web Services Korea
 

Similar to 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 리인벤트 리캡 게이밍
 

Recently uploaded

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 

Recently uploaded (20)

TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 

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