QT som grafisk motor i Embeddedmiljö

11/15/2017

 

Det är nu snart tio år sedan under ett uppdrag på Ericsson då jag investerade i en Nokia N900 som jag helt osökt sprang på Miss Cute, relationen med detta fantastiska C++ ramverk blev snabbt eldig och intensiv. Det jag föll för direkt var de heltäckande koncepten med IDE, en genomgående kodningsstil, byggsystem med homogent samverkande klasser som kunde i princip allting. Samtidigt kunde denna dam föra sig graciöst i precis alla miljöer utan att göra bort sig. Allt ifrån de stora desktop systemen till embedded och redan då i mobila plattformar som Maemo och MeeGo. Nokia kan man säga satte Qt på plats i den mobila världen men efter deras ”nedgång” följde som tur var Digia upp och nu senast The Qt Company.

 

Qt har fortsatt att satsa på mobila plattformar, Jolla Sailfish, Android, till och med iOS. Dock anser jag att dessa börjar bli för svåra att hålla ihop, de massiva formfaktorer som t.ex. Android medför gör att det börjar bli alltför besvärligt att få en sann look & feel på dessa plattformar, och att bara få utvecklingsmiljön att fungera här blir allt krångligare. Dessutom finns det nu konkurrenter som MS Xamarin, vilka verkar springa om Qt på denna front.

 

Qt dominerar dock som grafiskt ramverk på den inbyggda sidan, det finns egentligen ingen motsvarighet. Qt fungerar redan för många SoC-arkitekturer och bygger med ett eget metalager i The Yocto Project. Man kan i princip göra allting på en inbyggd plattform som på en vanlig desktopmiljö, hårdvaruaccelererat i 2D/3D med Open GLES med stöd för deklarativ utveckling i Qt Quick (Qml).

 

Qt har egen support för flera grafiksystem och egen fönsterhantering, man kan köra Qt utan att behöva stöd för en komplett fönsterhanterare eller compositor, även om det också är fullt möjligt. Qt har dessutom utökat stödet för diverse kommunikationsgränssnitt såsom fältbussar (modbus, CAN), serieportar och Bluetooth.

 

Det jag tycker man bör tänka igenom ordentligt på några saker innan man beslutar sig för Qt i kommersiell utveckling (eller rekommenderar det för en kund):
 

  • Licensieringen är snårig! Qt anammade lgplv3 på allting sedan Qt 5.7 och det är inte säkert att man som företag kan klara sig undan med en öppen licens med nyare versioner (särskilt i kombination med Yocto där Qt verkar klistras ihop versionsmässigt med nyare branches) vilket leder till nästa betänklighet:
     

  • Qt licensen är dyr. Förutom ganska rejäla per-seat developer licenser är det stor risk att man åker på en runtime (per enhet licens). Det kan bli knäcken för medel eller mindre företag och Qt faller då bort helt.
     

  • Antalet Qt medvetna utvecklare växer hela tiden, men det kan ändå vara svårt att få tag på kompetens och det finns en viss kunskapströskel. Man skapar snabbt ett starkt beroende till ramverket och verktygen, (så är det visserligen med allting, men det är en faktor att räkna med).

 

Efter att i några år grävt runt i Qt hemma och även haft glädjen att arbeta med det i två kunduppdrag börjar jag se dess för och nackdelar. Sedan C++11’s framsteg börjar vissa detaljer bli lite konceptuellt slitna såsom trådmodellen och de något grötiga makron som krävs för att får meta-kompilatorn att fungera behöver kanske arbetas bort, om ens möjligt. Men stort sett är Qt fantastiskt och om inte annat rekommenderar jag starkt varje C++ utvecklare som har nyfikenheten kvar att testa på med att experimentera hemma, varför inte testa på Windows/Linux/Mac eller en Raspberry Pi?

 

Lars Wadefalk

Senior Systemutvecklare

Tritech Göteborg

_________________________________________

 

 

 

 

OM TRITECH

 

Tritech är ett tekniskt utvecklingshus som tar fram intelligenta produkter och system för att realisera nya innovationer, tjänster och prylar inom IoT. 

 

Vi är ett produktutvecklingsbolag för så väl större etablerade bolag som start-ups inom industrin. Vi kan hjälpa våra kunder i hela processen, från idéframtagning till färdig produkt.

 

ATT JOBBA PÅ TRITECH

 

Tritech är ett juste företag där alla får möjlighet att synas, höras och utvecklas ihop med duktiga kollegor. Vår kultur genomsyras av nyfikenhet, innovation och optimism. Alla på Tritech bygger vår kultur och vår kultur är vårt varumärke. Läs mer om att vara Tritechare HÄR.

 

 

 

 

Dela på Facebook
Dela i Twitter
Dela i LinkedIn
Dela i Google+
Gilla denna nyhet
Please reload

  • Facebook - Grey Circle
  • LinkedIn - Grey Circle
  • Instagram - Grey Circle

Sociala medielänkar

Kontor

Solna (HQ) Tel. +46 8 410 120 00

Göteborg      Tel. +46 31 763 38 00

Linköping Tel. +46 13 211 880

Helsingfors  Tel. +35 8 40 829 76 60

Kontakta oss

OBS: Enligt GDPR-lagen ber vi er att ej uppge några personuppgifter i fritextfältet ovan.