Plasma Components on Android: Accelerating Subsurface Mobile Development
Marco has come over to the Netherlands to pay me a visit, and to hack a little bit together, in person. So with the weather clearly suggesting to stay inside, that’s what we did over the weekend, and how better to entertain yourself than to work on mobile software?
Marco has been working for a while on components that follow Plasma’s human interface guidelines and make it easy to implement applications with a common navigation pattern and look and feel. Obviously, these components use a lot of Plasma under the hood, so they get excellent integration at a visual and at a technical level. This high integration, however, comes at the price of having a non-trivial chain of dependencies. That’s not a problem om Plasma Mobile, or other Plasma workspaces, since all that is already there, anyway. We thought that an interesting exercise would be to find out what really defines a “Plasma application”, and how we can make the concepts we engrained in their design available to application developers more easily. How hard could it be to use Plasma components in an Android app, for example? The answer is, not entirely trivial, but it just became a whole lot easier. So what did we do?
For those reading this article via a feed aggregator, hop over to youtube to watch the demo video. We took Subsurface, which is a piece of Free software used for logging and analysing scuba dives. Subsurface is a mobile version, which is still in its infancy, so it’s an excellent candidate to experiment with. We also took Marco’s set of Plasma components that provide a reduced set of functionality, in fact, just enough to create what most applications will need. These components extend QtQuick components where we found them lacking. They’re very light weight, carry no dependencies other than QtQuick, and they’re entirely written in QML, so basically, you add a bunch of QML files to your app and concentrate on what makes your app great, not on overall navigation components or re-implementing for the n-th time a set of widgets.
So after solving some deployment issues, on Saturday night, we had the Plasma mobile components loading in an Android app. A first success. Running the app did show a number of problems, however, so we spent most of the Sunday to look into each problem one by one and trying to solve them. By early Monday morning, we had all of the glaring issues we found during our testing solved, and we got Subsurface mobile to a pretty solid appearance (pretty solid given its early state of development, not bug free by any means).
So, what to take a away from this? In a reduced form, Plasma can be a huge help to create also Android applications. The mobile components which we’re developing with Plasma Mobile as target in mind have had their first real world exposure and a lot of fixes, we got very useful feedback from the Subsurface community which we’re directly feeding back into our components.
A big thanks goes out to the Subsurface team and especially Dirk Hohndel for giving us excellent and timely feedback, for being open to our ideas and for willing to play guinea pig for the Plasma HIG and our components. The state you can see in the above video has already been reviewed and merged into Subsurface’s master tree, so divers around the world will be able to enjoy it when the app becomes available for a wider audience.
12.01.2014 QNX Delivers Power of Choice to Automotive Industry with Broad Range of User Experiences at 2014 CES "Discover new acoustic experiences in the latest QNX technology concept cars; control infotainment and navigation services with ease, using a flexible, multi-modal user interface; try out new cloud services that will transform how consumers, automakers, and dealers interact with vehicles LAS VEGAS, 2014 International CES North Hall, Booth 536, January 7, 2014 QNX Software Systems Limited, a global leader in software platforms for in-car electronics, today is demonstrating how its latest innovations in infotainment, acoustics, and cloud technology offer a potent mix for creating new, user-centr...29.12.2015 Luxoft Teams Up with QNX on Automotive ADAS Technologies "Collaboration focused on advanced technologies, including road scene reconstruction and augmented navigation, which can enable semiautonomous driving.December 15, 2015 Luxoft Holding, Inc. NYSE:LXFT, a leading provider of software development services and innovative IT solutions to a global client base, and QNX Software Systems Limited, a subsidiary of BlackBerry Limited, today announced a new technology partnership focused on ADAS systems used by automotive original equipment manufacturers OEMs and Tier 1 suppliers. As part of the initiative, Luxoft will leverage its expertise in road-model...01.03.2016 SWARCO TRAFFIC SYSTEMS GIVES THE GREEN LIGHT TO QNX "Leader in intelligent traffic systems chooses the QNX Neutrino OS for its ACTROS family of traffic light controllers. Nuremburg, Embedded World 2016, Hall 4, Booth 534 mdash; February 23 mdash; QNX Software Systems Limited, a subsidiary of BlackBerry Limited, today announced that SWARCO TRAFFIC SYSTEMS GmbH has chosen the QNXreg; Neutrinoreg; Realtime OS for its ACTROS family of traffic light controllers. ACTROS controllers bring an intelligent approach to managing urban traffic. They are designed to enhance safety, optimize the use of existing road infrastructure, and improve traffic flow to...28.06.2012 Релиз Eclipse Juno Зарелизился Eclipse Juno 4.2. Это первый релиз ветки 4.x, ветка 3.x закрыта и больше не будет развиваться. Для совместимости со старыми плагинами и RCP приложениями в Juno включен слой совместимости. Code Recommenders: новый проект автодополнения кода. Анализируя использование Java API приложения формируется база best practices. В дальнейшем, Code Recommenders предлагает разработчику использовать определенное Java API в своих проектах. Virgo: новое ядро, позволяющее создавать менее громоздкие приложения на основе OSGi. Koneki: новый проект по созданию LUA IDE. Проект является важной частью ...14.11.2013 RealVNC and QNX team up to deliver MirrorLink mobile-to-vehicle connectivity "RealVNC in tech partnership with QNX Software Systems to provide automotive manufacturers with quicker time to market -- QNX Partner News Release --11th November 2013 RealVNC, the provider of VNC remote access software, and QNX Software Systems Limited, a global leader in software platforms for in-car electronics, today announced that they have teamed up to bring RealVNCs MirrorLink mobile-to-vehicle connectivity solution to the QNX CAR Platform for Infotainment.The QNX CAR Platform for Infotainment is based on QNX software technology proven in tens of millions of vehicles. Designed for flexi...12.08.2014 QNX Releases New Version of IEC 62304-Compliant OS for Medical Devices "Helps manufacturers reduce cost and effort of developing devices that require regulatory approval from agencies such as the FDA, MDD, and MHRA.OTTAWA, July 15, 2014 Building on its proven history of providing highly reliable software platforms for safety-critical environments, QNX Software Systems Limited, a subsidiary of BlackBerry, today announced a new release of its OS for medical devices.The QNX OS for Medical 1.1 complies with the IEC 62304 medical device standard for software life cycle processes and is designed to help manufacturers reduce the cost of developing robotic surgical instr...06.06.2013 New Version of QNX CAR Platform Expands Design Choices to Include Android Apps and Qt User Interfaces "Enables automotive companies to tap into vast ecosystem of mobile developers creating Android, HTML5, OpenGL ES, and Qt appsDETROIT, Telematics Detroit Conference, June 5, 2013 QNX Software Systems Limited, a global leader in software platforms for in-car electronics, today demonstrated how the new version of its QNX CAR Platform for Infotainment will enable developers of car infotainment systems to leverage an even broader choice of mobile apps and content.The QNX CAR Platform already supports both HTML5 and OpenGL ES, the two most popular open standards for mobile app development. With the ...18.11.2010 VMworld 2010 Online Sessions VMworld 2010 Online Sessions Now that VMworld 2010 has concluded, it's time to digest and consume sessions that were offered. If you attended VMworld 2010 in either San Francisco or Copenhagen, you have been granted full access. If you were not an attendee, you will need a VMworld 2010 Subscription. However, VMworld 2010 General Sessions + Super Sessions AND all content from previous VMworld conferences is free to all VMworld.com visitors. All Super Sessions and Breakout Sessions that were captured from VMworld 2010 in San Francisco have been posted. Selected Breat...15.08.2013 QNX Chosen by Panasonic to Provide Software Platform for Car Infotainment Systems Worldwide "Panasonic leverages flexibility of QNX CAR platform to deliver infotainment systems for variety of markets and customer requirementsOTTAWA, August 13, 2013 QNX Software Systems Limited, a global leader in software platforms for in-car electronics, today announced that Panasonic Automotive Systems Company of America has chosen the QNX CAR platform to develop infotainment systems for automakers in North America, Europe, and Japan. The two companies also announced their intent to collaborate on the research and development of advanced technologies that will enhance the capabilities of next-gene...12.01.2015 QNX to Provide LG with Software Platforms for Next-generation Automotive Systems "LGs Vehicle Components Company building QNX-powered infotainment systems, digital instrument clusters, and advanced driver assistance systems for global automakers.LAS VEGAS, 2015 International CES North Hall, Booth 2231, January 5, 2015 QNX Software Systems Limited, a subsidiary of BlackBerry Limited and a global leader in software platforms for connected embedded systems, today announced that LG Electronics LG Vehicle Components VC Company will use a range of QNX solutions to build infotainment systems, digital instrument clusters, and advanced driver assistance systems ADAS for the global ...