BB10Jam Session: Location Based Services and Sensors
Shadid Haque and Tim Tsai presented the session on “Location Based Services and Sensors“.
As with BlackBerry 6/7 and also for other mobile platforms, different “location sources” can be queried:
- Cell Tower
- Carrier-specific modes
A simple 3-liner gives us the location:
QGeoPositionInfoSource *source = QGeoPositionInfoSource::createDefaultSource(this); connect( source, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(myPositionUpdated(QGeoPositionInfo)) ); source->requestUpdate();
GeoPosition and beyond (Sensors)
The QGeoPositionInfo provides the usual values: direction, speed, magnetic variation, precision, latitude, longitude, altitude and timestamp.
Which facilitates the simulation and unit testing: it is possible to implement your own “DataSource“. Location – updates can also be done in the background if necessary.
- Native (C / C + +)
- Qt / Cascades
- HTML 5
The following sensors of the BlackBerry platform can be used to complement the BB10 Location Context:
- Accelerometer (QAccelerometer)
- Magnetometer (QMagnetometer)
- Gyroscope (QGyroscope)
- Proximity (QProximitySensor) – distance in inches or near / far
- Light (QLightSensor) – the light intensity in lux
- Hall Effect – detects whether the device is in a holster
- Rotation Matrix (analysis of QRotationSensor plus QCompass)
The A-Team: Sensor Fusion ← engineered by a Special – Team
Specific data types make it easier to work with “Gravity” and “linear acceleration” (acceleration minus gravity).
At this session I learned: A dedicated Engineering Team is focused on best-in-class sensor fusion algorithms. Patented and patend-pending algorithms are the first results from this SPECIAL TEAM. What does this mean practically ?
- less user interactions with unpopular calibration
- unique algorithms resulting in low latency
- output good data in both good and bad environments
This is supplemented by special “low power” – features and API: makes it easy to increases performance and reduces battery consumption.
Abstract access to the hardware reduces the output and gives you only relevant deltas, Buffer mode gives you blocks of samples at a time.
You’re a developer on other mobile platforms ? Can you imagine the amount of time you would have to spend on Sensor Fusion and all the other stuff already baked into BB10 API’s ? This is really cool. These are the things that make me happy as a developer and this makes the difference to other platforms. Perhaps now you understand the high quality of BB10 from the beginning: not only SDK and API’s but totally integrated with Hardware Features.
Enable the FLOW
In addition to the Sensors and Location API, there are much more location-based services that facilitate the FLOW between applications.
In the past, RIM has provided their own BlackBerry Map. Now for BlackBerry 10 RIM will work together with a partner: TomTom. Curiously, Apple announced some weeks later, also to cooperate with TomTom for iOS 6. Taken from some comments and blogs iOS – developers are mentioning that Apple’s Maps API provides much less then GoogleMaps. I’m sure, BB10 will give you great features to develop astonishing applications.
Here are some topics from the session, what will come to BB10:
- Discover what’s around you (2D Map)
- Turn-by-Turn Navigation (World-class voice-controlled, 2.5D) → for FREE
- Local Search (free form with auto – suggestions)
- My Places Framework (a repository of POI’s, UX consistent regardless of the application, Placemark Picker API and UI Control)
- MapView UI Control (Custom Layers, Push Pins, Zoom / Pan, 2D/2.5D)
- Geocoding API (geocoding and reverse geocoding)
- Direction API (Travel Time)
Heavy use of Invocation API enables the FLOW between LocationBasedServices and other Applications:
- Invoke BB10 Maps
- Invoke to Navigate
- Invoke the location-based search
- Invoke with respect to a Coordinate
- Invoke a POI via JSON or KML
- “Map it” and „Go“ UI Controls
- Auto recognition of Geo – Links in Text Fields
If you’ve read about all the Sessions I attended, perhaps you now got a first feeling what will be possible to develop with BB10 and what it means to FLOW between Apps, to Connect and Extend beyond the device.
The most important API is the Invocation API, so this is my last Session I’ll talk about for now:
- ‘Death Spiral’. Why developing BB, Who on Earth…
- How it all began, Farewell Java ME, the ‘old’ RIM vs. ‘not your fathers’ RIM, I’m independent
- BB10 is a Platform, Cascades more then a UI Framework
- Thorsten Heins: the hard Way to BB10, BlackBerry 7 is alive
- Alec + Chris rockin’ …, BB10Jam Conference, Creating intelligent Apps
- Connected Apps with Cascades, Anatomy of a BB10 App
- Native Camera API, NFC Apps
- Flow + Invokation Framework
- Party, SDK, AlphaDevice, Keyboard, Magic Moments
- Markets: Consumer, Enterprise, Government, Automobile
- BB10 around the World, Apps Apps Apps…, Open Source
- Mission RIM possible ?, Empower People like never before ?, Three Wishes