Mobile Business Apps
As you probably know the last 4 years I mostly developed native BlackBerry 10 apps for business usecases in SMB or Enterprise. Many apps are running as inHouse apps via BES12.
Last year BlackBerry introduced the first BlackBerry smartphone running a secured Android: the BlackBerry PRIV – a slider:
This year next two Android devices will follow: one fulltouch and one with integrated keyboard – both in a lower pricerange as the PRIV.
BES12 in the meantime makes it easy to manage Android, BlackBerry, iOS, Windows devices and supports Android for Work, Samsung, iOS9 etc.
I’m still developing BlackBerry10 apps for customers targeted to BlackBerry only, but on the other side there are more and more usecases and customers looking for x-platform apps in the enterprise.
What’s the best way to develop x-platform mobile apps ?
There’s not THE answer – as always: ‘it depends…’ (There’s a Video from my MobileTechCon session where I explain this in detail)
For me these are the most important requirements:
- native feeling
- performance
- re-use of code
If you’re coming from web development there are some great frameworks as
- Apache Cordova
- Angular2
- Ionic
- ReactNative (Facebook)
You can develop nice looking apps, but I’m not a web developer, don’t like mixing HTML and JS and also there’s nothing I can re-use from my existing BB10 Apps. Developing complex apps with HTML5/JS also can end with slower performance.
Do you have knowledge in C# ? Then
- Xamarin (Microsoft)
might be the best for you, even because Microsoft just Open Sourced Xamarin.
There’s another interesting project:
- Flutter (Google)
Flutter uses dart and supports Android and iOS from a single codebase, but Flutter is in Alpha at the moment.
Native BB10 apps are based on Qt 4.8/C++/QML(Cascades UI Controls). So what about
Qt exists since more then 20 years and supports many platforms and since some time you also can develop mobile apps.
But in the past there was no out-of-the-box support for mobile UI and Navigation controls, no support of different density etc. You had to implement this by yourself. For me this was a no-go.
This has changed completely with Qt 5.6 🙂
As part of Qt 5.6 there’s a Technical Preview of qt.labs.controls providing all you need for mobile apps: UI and Navigation controls in three different styles:
- Material (Google Design)
- Universal (Microsoft)
- Default (Qt specific)
Also light and dark themes are supported.
qt.labs.controls will be part of Qt 5.7 – comming out next 3 months – then named QtQuickControls2
QtQuickControls are ligthweight and much more performant as QtQuickControls1 because all the heavy stuff now is done in C++. More infos here.
Qt 5.6 also supports HighDPI on all platforms now. http://blog.qt.io/blog/2016/01/26/high-dpi-support-in-qt-5-6/
So now it’s the best time to give Qt a chance.
Wait a moment – what about the license costs ?
Qt is Open Source and dual-licensed – you can also use a commercial license. The use of Qt Open Source isn’t an easy decision for mobile apps – I have summarized it in this article.
But there are good news: Starting with Qt 5.6 there’s a new startup license for Independent Developers and Startups (Intro price 49$/month)
Why not Xamarin – some concepts sound similar ?
Only at the first view. There’s a main difference:
Xamarin is using ONE LANGUAGE (C#) to write mobile apps, but it’s NOT ONE CODEBASE. You still have to write different code for Android and iOS esp. because the underlying UI Controls from native platform are be used. This is good for native-UI/UX, but more work is required and less re-use.
Qt is also ONE LANGUAGE (C++/QML) , but also ONE CODEBASE. For common usecases you have to write Code only once. For some special parts you can execute code from underlying Android Java or iOS ObjectiveC.
For me another plus: I can re-use 80% of C++ business-logic-code from Qt4.8 and also some concepts like SIGNALS/SLOTS for great event handling.
The Easy Path
You see – it’s not easy to decide.
My blog series here will give you some hints and an easy path to try it out.
Doing this as a Qt newbie without assistance is hard because Qt supports so many targets and UI can be build using different technologies
- QtWidgets
- QtQuick
- QtQuick2-qt.labs.controls).
Also the IDE (Qt Creator) works different compared with Eclipse Momentic, Android Studio or Xcode. Needs some time to figure it out. On the other side Qt Creator masters a hard job to support many different targets / OS from Embedded to Mobile and Desktop.
Next weeks following my blog series you can find out if my x-platform-journey with Qt will be finished successfull 😉
BlackBerry 10 Devs Attention !
Even if you only developed BlackBerry 10 APPs yet and no experiences with Android or iOS. Don’t Panic !
My blog series starts from the beginning (prepare Android / iOS devices, Install, …) – also for BlackBerry Cascades developers from time to time I’ll compare the code / concepts HowTo design the UI.
→ Next Article (Open Source vs Commercial License)
⇐ Home (Overview / Topics)