Working on a mobile app for Service Car Management … small or medium-sized companies…
work must be done in the office, at job sites, on-the-road …
goal: easy to use, one device to rule them all, some customers will have own servers, smaller ones want to avoid IT overhead, so the solution should work with / without extra servers
Luckily I’m developing for BlackBerry 10: BB10 is based on QNX – a powerful Realtime-OS. BB10 is a mobile platform, not only a mobile OS for smartphones or tablets – read more from my last blog post.
In my service car apps I’m using some powerful features from BlackBerry 10:
- PushServices to push new Orders from Office to Dispatcher and from Dispatcher to ServiceCars and from ServiceCars back to Office for Invocing
- Evernote (BB10 Remember) to add Notes, Images, Video, Audio to Work Orders – all synced by Evernote
- Box to share data too big to be sent via Push. BOX (also DropBox) is integrated into BlackBerry10 native file system, so can be accessed easy from apps. Box provides 10 GB free data for BB10 which is more then enough for this kind of business
- BBM to get easy into contact between employees
- Calendar – Integration for time-critical scheduled orders
- Contacts for Customers, Job Sites, local contact person
- BlackBerry Map used as Custom Map with specialized features and Pins and native BlackBerry Map to get the Route to Customer / JKob Site
Combining all these features using InvocationFramework is easy done and fore the user it looks like one app and allows smooth workflows.
Customers can use all of this without an own server, but they can also add a BES 10 Server to get some more security: then Balance is integrated and all business data is secure and encrypted and separate from private apps and data.
Devices used are Z10 (Touch Device) or Q10 (Touch plus physical keyboard). Q10 is better to use in dirty environments, where Z10 has a larger screen. Q10 is the fastest-to-type-on mobile device ever, but if you have to enter a large amount of data in the office, it’s not the best way top hold a mobile device in your hands. The good thing: you can add external devices via Bluetooth, so it’s easy to connect keyboards and mouse. (Upcoming 10.2 also supports active USB Hubs, so it should also be possible to add USB Keyboards then)
Working on a small screen on-the-go is cool, but not the best if enter-data-in-the-office. Great: BB10 devices provide a HDMI connector with full HD output, so you can also connect larger screens. The dispatcher in some small companies also works at job sites like ‘normal’ service employees, but he has to dispatch new orders while on-the-go. The solution: implement a small workspace inside his service car with Bluetooth keyboard, mouse and a slightly larger screen connected via HDMI. There are per ex. 10″ FullHD – HDMI – displays available – this would make it easier to display the map with current locations of the other Cars outside at customers. (Upcoming 10.2 also supports wireless HDMI via Miracast and better support for 2nd screen to have different content on mobile device and attached screens)
This is mainly a developer blog – so what does all of this mean for a mobile developer ?
Apps on Touch devices and Keyboard-driven devices behave different
On a touch device you’re using gestures to navigate through your apps and this feels natural and intuitive – even on a new OS like BlackBerry 10: TAP and go…
Using a Keyboard changes this: you want to TYPE and go. BlackBerry 10 introduced Keyboard shortcuts with Q10 to support the physical keyboard. So it’s easy in Lists to jump to the top (‘t’) or to the bottom (‘b’) or to the rows on next page( ‘spacebar’). You can also implement your own Shortcuts or KeyListeners.
Here’s a short Video how I did first integration of shortcuts:
Shortcuts are helpful, but the user in many cases still has to switch between Touch and Keyboard. Ok, the distance is short on a Q10, but a much better UX would be to select the current Row of a list, use a selection-color to make this visible and then listen for Enter key to simulate the TAP on a row and push a details-page on top or so. Will talk about this in extra blog posts here.
Using an external keyboard you get more keys and you should use them: ESC to simulate the BACK button, Arrow-keys to select next/previous row, F1… F10 function keys for some extra goodies etc.
If there may be use-cases for your app to deal with external keyboards, you should listen for connect/disconnect – signals and change behaviour of your app on-the-fly. Important: KeyListeners are always heavy, so only use them if needed. Luckily on BB10 it’s easy to create them dynamically.
I will talk about HowTo design and develop apps for Touch and Keyboard at MDC Nürnberg:
2nd Screen is more then a second screen
On all mobile platforms 2nd screens are used more and more: TV, Beamer or attached via HDMI to a smartphone. (BlackBerry 10 devices all include HDMI connectors)
The easiest thing is to mirror your main screen and this solves many use-cases. You get much more flexibility if you’re able to provide different content on primary and 2nd screen. You could already do this with current release of BB10, but not from Cascades. So I’m looking forward to upcoming BlackBerry 10.2 to get more comfort to develop such scenarios. First demos were already presented at BBLive / BBJam conference by Gary Klassen (@gehr).
Also from 10.2 BB10 supports wireless HDMI via Miracast. All of this will make it a lot easier to develop Cascades apps for more then one screen and to use it without an extra HDM cable.
Develop – Deploy – Test
As a developer writing cool and easy-to-use apps for mobile enterprise you’re in the pain to test all these scenarios in advance. Before supporting external keyboards / mouse and 2nd ScreenI placed on my developer desktop a MacBookPro 15″ plus Apple 27″ Thunderbolt display.
Now I added some more things: My MacBookPro has HDMI output, but this cannot be used as an input – also Thunderbolt-HDMI-adapter only can send to HDMI displays. So I had to add another monitor used by mobile devices as 2nd screen. Of course I’m not always testing mobile with HDMI, so I want to use this monitor also on my MacBookPro – so I needed a HDMI switch. Then I added Bluetooth keyboard and mouse and a docking station for BlackBerry Z10.
Now my desktop looks similar as Heiko Behrens desk (@hbehrens) – but never so clean😉
If you want to know more about the details, please read this post by me at BerryReview.
Now its great to work: normal development with 3 displays gives me some extra space, simply switching to use the HDMI Monitor as 2nd screen from HDMI-Switch-Remote with one-click.
I also did some short videos on this and started with this one:
uuups – problematic: couldn’t find a way with my equipment to get a sharp view of black Bluetooth keyboard together with bright HD Monitor. Fortunately I have two Camholder (thanks to Heike Behrens again), so I used one for my Z10 and the other one for the Keyboard – now both are clearly visible. per ex. the Q10 (DevAlphaC) plus Apple Keyboard / Mouse:
Here’s the construction with 2 Camholders:
a) Q10 (DevAlphaC) inside Camholder
b) Apple Keyboard / Mouse with Camholder
and here are two Videos:
the first one using Z10 plus PC Bluetooth Keyboard / Mouse:
the other one using Q10 plus Apple Bluetooth Keyboard / Apple Mouse:
Next Video will use a 10″ FullHD – HDMI Monitor together with BB10 device – just waiting for the monitor to be delivered to me. This one will be used inside ServiceCars for a better view of BlackBerry Map with Pins on top for current Car positions.
Expect some more blogs, videos and apps supporting external HID (Human Interface Devices) and 2nd Screen. This was only the beginning …
Meet me at MDC in Nürnberg this month or in september at MTC Berlin: