1 / 50

The Super App Revolution: Developing Consumer Applications

The Super App Revolution: Developing Consumer Applications . Brian Zubert Team Lead, Developer Relations AC03 May 2, 2011. Example Super App Behavior. How Poynt exemplifies key characteristics of Super Apps Peter Werry, Java Mobile Lead, Poynt. Our View of Local Search.

tayte
Download Presentation

The Super App Revolution: Developing Consumer Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Super App Revolution: Developing Consumer Applications Brian ZubertTeam Lead, Developer Relations AC03 May 2, 2011

  2. Example Super App Behavior How Poynt exemplifies key characteristics of Super Apps Peter Werry, Java Mobile Lead, Poynt

  3. Our View of Local Search • Events: Find events near you, search by event, venue, city, date or keyword search • 2. Movies: Find a theatre, view showtimes, watch trailers, buy tickets, get turn-by-turn directions, ticket email confirmation, add to calendar • 3. Business: Full Directory services, complete a business search, email listings to contacts • 4. Restaurants: Read restaurant reviews, book a table, invite friends via device contacts, add to calendar • 5. People: White pages, reverse look up missed calls, full device contacts integration • 6. Gas Prices: nearest stations, best gas prices • 7. Weather: Integrated home screen weather, click on temperature to get 5-day forecasts and beyond • 8. Maps: Map search results, set location and map from a new location, get turn-by-turn directions

  4. Poynt – Mobile Local Search • Active user base: 7.? Million • Growth: 15,000 new users per day • Over 1.5 M active users per month • Average 22 M queries per month • 88% of users return month over month

  5. Poynt – Global Mobile Local Search Geographies: United States, Canada, the United Kingdom, Italy, France, Spain, Germany, and Australia. Languages: English, French, Spanish, Italian and German

  6. Poynt – Super App

  7. What Are Super Apps? We’ve seen an example, but what is it all about?

  8. What Are Super Apps?The Super App Experience • Apps that people use every day • Experiences that transform user behavior • Apps that drive stickiness

  9. Super App EnablersExamples of Key Features of Super Apps • The always-on experience • Multi-threaded O/S with background apps • Highly contextualized • Integrated LBS and Mapping • Tight integration with native apps • APIs for deep, contextualized integration with Inbox, PIM, Search, Phone, etc. • Social and connected • Email, SMS, MMS, BlackBerry® Messenger, other social networks • Proactive and notification-driven • Rich event-based notification model • Push services for just-in-time data delivery • Efficient • Wi-Fi®, notification of backgrounding, device usage information

  10. Why Super Apps?Technical Drivers for Super Apps • Deep native integration • Seamless flow • Application synergy • Cohesive and seamless user experience • Consistent behavior

  11. Why Super Apps?Technical Drivers for Super Apps • Increased application stickiness • Lower the learning curve for application use • Remove think-points • Reduce user hesitation, improve workflow • Intuitive extensions to the BlackBerry® experience • Become a part of everything the user does • Add discovery points for your applications and services

  12. The Always-On Experience 4.6+: Up to 64 concurrent processes and up to 64 threads per process 5.0+: No limit to the number of processes, no limit to the number of threads per process

  13. The Always-On ExperienceRunning on Start-up • Easy to define: • Edit the BlackBerry Application Descriptor • Click the checkbox for Auto-run on Startup • Also means app runs as soon as it is installed • User will not see a “Run” option in the download complete dialog • Check the state of device boot operations • ApplicationManager.inStartup() • ApplicationManager.waitForStartup()

  14. The Always-On ExperienceDoing It Right • Do you need to be truly always-on? • Remember, it’s an always-on experience • App anticipates user’s needs • Push services can often achieve similar results • Timed events / scheduled wake-ups are also a viable alternative • ApplicationManager.scheduleApplication() • Minimize processing • Use the Profiler to ensure that only relevant threads are running • Stop painting • looped painting, animations, or other UI processes should be halted • Can employ above tactics to an idle device as well • SystemListener2.backlightStateChange()

  15. Highly Contextualized Context is everything

  16. Highly ContextualizedGraphical Context Menus • New in BlackBerry 6 • Important functions • Quick access • Intuitive icons • Replaces current context menu • Default action in the center • Full menu access in the bottom right position • Three sizes available: • 3x3 • 2x3 • 1x3

  17. Highly ContextualizedLocation Based Services • JSR 179 – Location API • Key Docs / Best Practices • KB Article: “Location APIs – Start to finish“ • LBS Development Guide: http://docs.blackberry.com/17954 • In General: • Full scans of the sky are expensive • Keep the chip “hot” • Be smart about retries • Do not continually request Assisted GPS fixes • They cost; keep the carrier happy • BlackBerry 6 extensions to Location API • Locate Service • WLAN positioning • TravelTime API / ETA Service • Crowd sourced time estimate to get from A to B

  18. Highly ContextualizedBlackBerry Maps • Invoke and MapField • Launch BlackBerry Maps or embed it • 5.0 and above: • Maps as a platform is available on *all* BlackBerry smartphones • Even if BlackBerry Maps is not available as an icon to the user! • New 6.0 Maps API • Redesigned MapField API • Factory classes • Sharing of locations via URLs and images • Map overlays via KML • Panning and zooming • Enhanced 7.0 Maps API • Geofencing • Support for any shape polygon overlays

  19. Highly ContextualizedYou Know More Than You May Realize • Know who’s calling • PhoneListener • PhoneScreen API • PhoneCall.getContact() • Device cradled: desktop or car cradle • CradleHandlerRegistry • Indicator of location (home, office, car) • Time, Locale, Calendar Events • All provide context for where the user might be or what they might be doing • HomeScreen Shortcut Icon • Create a shortcut icon on the homescreen • Link to a specific file, URL, or alternate view of your app

  20. Highly ContextualizedYou Know More Than You May Realize • All sorts of listeners • FileJournalListener • Detect new files being created • FolderListener • Detect new messages in a given folder (inbox, outbox, etc) • GlobalEventListener • Detect changes to locale, time, date, etc • PIMListListener • Detect new address book, calendar, task • CodeModuleListener • Detect when new apps are installed • SensorListener / HolsterListener / DeviceCapabilityListener • Detect when device properties change (flip, holster, slider, VKB, etc)

  21. Tight Integration With Native Apps Flow from one app to another, seamlessly

  22. Tight Integration With Native AppsThe Fundamentals • Invoke and ApplicationMenuItems • Most effective when paired • A means to launch the app and a means to return to your app • Register ApplicationMenuItems on startup • ApplicationMessages and ApplicationIndicators • Often complimentary, but not always • If using ApplicationMessages, should always use ApplicationIndicators • ApplicationIndicators could be standalone • JSR 75 – PIM • Use native app experience wherever possible • Contact picker • Multiple address books

  23. Tight Integration With Native AppsNative UI Integration • PaneManager • LocationPicker • DateTimePicker • FilePicker • SpellCheck API • AutoText • Progress Indicator • Auto-Complete Text Field • TitleBar

  24. Tight Integration with Native AppsHardware Integration • Camera • Invoke or snapshot • Embedded video and audio • JSR 135 • playback and streaming • 7.0 – define buffer size • Audio and video recording • 7.0 – HD video recording • 7.0 – define bitrate • Accelerometer • Magnetometer • Sensor data • Calibration API • Compass overlay

  25. Tight Integration With Native AppsNew to BlackBerry 6 • Universal Search • Searches for on-device (local) and web (remote) content • Application integration allows • Register application name to be searchable • Register as a content provider for search • Register as an extended search provider for core applications • Provides mechanism for in-app search • Access to other third party data • Improvements / Simplifications in 7.0 • EntityBasedSearchableProvider • single interface to provide “searchable” data to the search service • SearchableDataObject: • single interface for creating and registering data with the search service • Dynamic adding/removing of indexed keywords for an indexed object

  26. Social and Connected Keep users in touch by building in social networking and sharing

  27. Social and ConnectedConnecting to the Networks • Email / PIN / SMS / MMS APIs • Open Source Facebook® Connect APIs • https://sourceforge.net/projects/facebook-bb-sdk • JSR 172 – Web Services • 5.0 Network Transport API • Just give me a network connection! • Specify preference order for transports, retry, failover, etc • Web Communication • Provides uniform access to various web-service based technologies such as SOAP, REST, ATOM and RSS • Web Communication Parsing • Parsers to help process web services messages such as JSON, XML, RSS

  28. Social and ConnectedSend Menu API • Send Menu API • Easily share application content with contacts in the same way that core applications do • Returns a “Send…” menu for the given context of the file or text to be sent • Simplifies Bluetooth • Includes Facebook!

  29. Social and ConnectedMaking It Easy • 1D and 2D Barcode Support • Embed the camera viewfinder with support for scanning of barcodes • Support for formats listed in ZXing 1.4 • 1D: UPC, ITF-14, etc • 2D: Data Matrix, QR Code • Note: Data Matrix still in alpha for ZXing library • 7.0 Barcode Scanning API Enhancements • Updated to Google Z’xing 1.6 (from 1.4) • Data Matrix now production quality • Support for custom decoders

  30. Social and ConnectedNFC • Near Field Communication (NFC) • BlackBerry Accessory Integration • Seamless Bluetooth Pairing, Music Streaming, “Intelligent Cradles” • APIs for Virtual Tags • Reading, writing, emulating • M-Commerce/Payment • JSR 177 • Javacard applets

  31. Social and ConnectedMaking it easy • BlackBerry Messenger APIs • Access user profile • Create custom profile boxes • Chat • In-app chat • App to BBM chat • Invite new contacts from chat • Send files • For more details, session WD25

  32. Proactive and Notification-Driven Push is just the beginning

  33. Proactive and Notification-DrivenPush • 5.0 Push API (net.rim.device.api.push) • Simplified push handling • App not required to be running in the background • When to push? • Replaces polling • Checking a server at regular intervals, whether new information is actually available or not • Better user experience than alerts • System in which user is notified that something is new, but user needs to actually request what that something is • More efficient than poke & pull • Similar to alerts, but application automatically makes the request for what that new information is • The smaller the size of the new information, the more inefficient the pull

  34. Proactive and Notification-DrivenPush Details • Allows up to 8kB payload • Dedicated application ports avoid port collisions • Uses standard push protocols (WAP PAP 2.2) • Different submission modes: • Point-to-Point (submit push to single PIN) • Multicast (submit push to list of PINs) • Broadcast (submit to all PINs for a registered application) • Developer-controlled expiry time (push system automatically stores push requests until expiry time) • Developer-set quality of service (BlackBerry Push Plus Option): • Application (“message reached application” ) • Transport (“message reached port on device”) • Fire & Forget (no acknowledgements)

  35. Proactive and Notification-DrivenNotifications • Many ways to notify the user • Vibration • Alert.startVibrate() • LED • LED.isPolychromatic() • LED.setState() • Audio • JSR 135 – MMAPI • Change app icon or app description • HomeScreen.setName() • HomeScreen.updateIcon() • HomeScreen.setNewState() • ApplicationMessages and ApplicationIndicators • Dialog boxes

  36. Efficient Discussed throughout: Deliver an app experience that’s respectful of device resources, battery life, network capacity and cellular data costs

  37. EfficientMany Indicators • All sorts of listeners • SystemListener / SystemListener2 • Detect changes in battery level • Detect device charging events • Detect backlight on/off • LowMemoryListener • Detect low memory conditions • CoverageStatusListener • Detect when various network transports are available • RadioStatusListener • Detect radio signal levels, roaming conditions, 2G / 3G • WLANConnectionListener • Detect Wi-Fi networks

  38. BlackBerry® PlayBook™ Super App considerations when designing for Tablet OS

  39. Characteristics of the BlackBerry PlayBook • Seven inch screen size • 1024 x 600 resolution • Multi touch interface • Different user interaction than single mouse pointer • Multiple orientations • Landscape vs portrait • Virtual keyboard 40

  40. Make a touch centric app 41

  41. On screen interactions 42

  42. Application config (blackberry-tablet.xml) <qnx> <icon> <image>my_icon.png</image> </icon> <author>My Company</author> <authorId>gYAAgIqK0RLL5u4I9NanyxBUuCI</authorId> <category>core.games</category> <splashscreen>img/spalsh_landscape.jpg:img/splash_portrait.jpg</splashscreen> <action>use_camera</action> <action>read_geolocation</action> <action>play_audio</action> <buildId>349</buildId> <platformVersion>1.0.0.0</platformVersion> </qnx> Specify platform specific items

  43. Device Information & QNX APIs Battery level Battery state Charging events Bezel top swipe Hardware ID Device OS Device PIN Platform Version Accelerometer • Foreground / background events • Save state when going to background • Manage your power mode • Standby, throttle, normal • WiFi connected / disconnected events • HDMI • Mirror mode by default • Presenter mode can be set • File system events • Shared vs app data space • Only use shared space for interprocess communication

  44. Another Look at the Example And how it was extended to the BlackBerry PlayBook tablet

  45. Poynt for PlaybookConnecting BlackBerry Smartphones 3rd Party Apps don’t have access to direct communication APIs Common Denominator: Poynt’s Backend Server

  46. Integration with RIM’s Push API Integration Integration BlackBerry® Push Service

  47. Pairing Devices Security Code Entry in BlackBerry Smartphone Confirms Pairing with Poynt’s Backend Server Step #2: Receive Security Code Step #1: Input BlackBerry PIN Step #3: Send Security Code to Poynt Server Poynt’s Backend Server

  48. Push API Integration BlackBerry Push Service Poynt’s Backend Server

  49. THANK YOU Brian Zubert, Team Lead, Developer Relations Peter Werry, Java Mobile Lead, Poynt AC03 May 2, 2011

More Related