Qt Group - Eeppinen matka teknojätiksi

Qt on työkalu, Android on käyttöjärjestelmä.

Aikaisemmin ketjussa on keskustelua asiasta:

18 tykkäystä

Ok kiitti. Jos googlailee “android ux/ui desidn tools” jne niin siellä pyörii listoilla aivan eri tuotteita ja firmoja kuin QT. Ottaen huomioon koko Android markkinan koon ja maturiteetin voisi olettaa, että kyseessä on erittäin kilpailtu markkina. Tähän viittaisi myös Adoben jne huippufirman läsnäolo ko. markkinassa.
Eli jos Android on voittava platform niin mitä se tarkoittaa QTn näkökulmasta?

1 tykkäys

Ei se sinänsä mitään. Toki helpottaa varsinaisen Qt:n kehitystä (siis firman sisällä, kun tekevät uusia Qt:n versioita) kun olisi yksi pääalusta. Mutta toki joutuvat tukemaan kaikkia alustoja joita haluavat tukea. *Nix-pohjaisuus toki vähentää oikeasti erilaisten alustojen määrää. Esim. Mac, Android ja Linux ylipäätään ovat siis käytännössä yksi ja sama alusta Qt:n kannalta. Windows sitten ihan erilainen.

Android UI on sitten ihan eri juttu kuin Qt:n markkina. Se on yleisellä tasolla ohjelmien UI:ta, esim. GarageBand, Photoshop, Chrome, jne. Ja Androidin tapauksessa siis Android-appeja eli kännykkäsoftaa, kuten tää Koronavilkku. Toki monet niistä tehdään nykyisin vähän Qt:ta vastaavilla jutuilla, kuten React Native.

5 tykkäystä

Kiitos lisätiedoista. Jotenkin tässä QTssa tuoksuu turvonnut legacy, jolla voi tehdä mitä vaan.
Embedded ratkaisujen (esim. robotti-imuri) osalta QTn skooppi on ymmärtääkseni yleensä UI designer & IDE.
Android ratkaisujen osalta QTn skooppi on listattu täällä: Qt for Android | Qt 5.15

Jos android-kehityksessä käyttämäsi IDE on IntelliJ IDEA tai Netbeans niin mikä rooli jää QT:lle?

1 tykkäys

Pääetu on että jos sama käyttöliittymä pitää saada monelle platalle, QT tarjoaa tämän kivuttomasti. Jos teet puhdasta Android-softaa, tästä tietty ei ole mitään iloa.

2 tykkäystä

Rightwaren kehitys muistuttaa Qt:a, mutta ei skaalaudu yhtä hyvin?

5 tykkäystä

Qt:n kirjastoja (koodia) käytetään itse sovelluksissa/ohjelmistoissa. IDE:lla ei ole merkitystä tällöin, Qt saa rahaa sekä kehittämistyökaluista että koodin linsensoinnista. Voit koodata Qt:n kirjastoja käyttäen vaikka Emacsilla, mitä lämpimästi myös suosittelen.

Koskeeko tämäkin skenaario lähinnä embedded ja cross platform kategorioita eikä puhdasta android kehitystä?

En valitettavasti ymmärrä kysymystä. Qt:lla tehty sovellus pyörii myös autossa, jonka tietokoneen käyttöjärjestelmä on Androidia. “Puhdasta” Androidia olisi varmaan tehdä sama ohjelma uusiksi Javalla/Kotlinilla.

IDE ei sido sinänsä mihinkään. Devauksessa yleensä käytetään ihan mitä jokainen itse haluaa. Esim. itse teen Qt QML:ää Atomilla :slight_smile: Se Qt:n rooli on sitten sen koodin varsinainen ajaminen. Sitä ei voi kukaan korvata jollain toisella, ainakaan bisnestasolla. Tulisi kovat lakiarmeijat opastamaan IP-lakipykälistä firmalle, joka ilman lisenssiä ajaisi Qt:ta esim. autoissa :slight_smile:

3 tykkäystä

Ei ehkä sido, mutta isoissa ohjelmistotuoteyrityksissä IDE vaikuttaa monenlaisiin valintoihin. Oikeilla valinnolla vähennetään kitkaa eri työvaiheiden ja osapuolten välillä, parannetaan tuottavuutta, nostetaan työtyytyväisyyttä jne. Jos yritys käyttää Visual Studiota niin tämä vaikuttaa “tooling” kokonaisuuteen vaikka ei sinällään pakottaisi mihinkään.

2 tykkäystä

Olen koodannut monella kielellä (Assembler, C++, Java, JS…) mutta päällikkötehtäviin siitymisen jälkeen vähemmän. Hieman Nodejs, React, Python…
Sijoitin QT:n ja hieman silmäilin mikä QT-käytännössä on. Tiesin toki missä sitä käytetään ja karkea ajatus oli jo sijoittaessa.

Pikaisella tutkimisella QT:n käsitin seuraavaksi:
QML on yksikertaisempi kuvauskieli jossa käyttöliittymän elementit kuvataan objecteina metodeineen (katselin lyhyitä esimerkkejä ja yksinkertaiselta näyttäisi).
QML:ssä voi käyttää myös JavaScriptiä sekä tuoda omia js-tiedostoja QML-lähdekoodiin käytettäväksi.
QML käännetään bytekoodiksi, joka käännetään ajon aikana suoritettavaksi konekieleksi JIT/AOT kääntäjällä
QT on framework/kirjasto. C++:lla voi tehdä UI-komponentteja tai muita palveluja myös QML:n käyttöön, sekä muita suoritettavia prosesseja.
C++ käännetään esikääntäjällä standardiksi C++ koodiksi ja siitä lopulta suoritettavaksi konekieleksi
Joku QT:ta osaava tietää onko näin ?

10 tykkäystä

Siinäkö pelimaailmasta QT:lle kilpailijaa autopuolelle ja sulautettuihin järjestelmiin.

Referenceissä VW-Groupin valmistajia ja esim GM. Mitä tuosta nyt nopiasti luin niin devaajalisenssit ei maksa mitään. Sitten kun valmis tuotteesi on tuottanut yli 1 000 000 dollaria niin sitten pitää alkaa 5% rojalttia maksamaan sen jälkeisestä liikevaihdosta mitä tuote tuottaa. Tosin jotain poikkeuksia oli esim automotiven osalta. Sopivasti myös taipuu hirveälle liudalle platformeja mukaan lukien varmaan tärkeimmät Android, Linux ja iOS.

14 tykkäystä

Ilmeisesti pelimoottorista “oheistuotteena” kehitetty, joten sillä pystynee rakentamaan helposti visuaalisesti hienoja käyttöliittymiä. Yhtenä käyttäjänä oli muuten suomalainen Siili https://auto.siili.com/
Kuinkahan tehokasta rautaa vaatii. Ehkä ei ole optimi vaikka pesukoneen näytön ohjelmointiin.
C++:lla tuotakin tehdään.

3 tykkäystä

Kyllä tuo Unreal pyörii kännyköissä (Fortnite on sillä tehty noin esimerkiksi) mutta ei varmasti optimi todella hitaalle raudalle joten en usko että näkyy pölyimurin ruudulla ihan hetkeen.

2 tykkäystä

Ilmeisesti Qt Design Studio vastaa osin tuohon Unreal Enginen työkaluun.
Ilmeisesti pitäisi avata sekä Qt:n että Unreal Enginen kokonaisratkaisu/arkkitehtuuri, että voisi arvioida kummankin edut ja haitat. Qt:stä pääpiirteittin on jo käsitys
Joku Qt:llä tehnyt ja Unreal Enginestä tietoinen sw-arkkitehti osaisi avata.
Pitää pohtia josko asennan Qt:n itselle

3 tykkäystä

Unreal Engine on pelimoottori, pääasiassa 3D-tavaraan ja erityisesti käytössä PC- ja high end konsolipeleissä. Mutta luonnollisesti siinä on myös työkalu UI-suunnitteluun koska pelit tarvitsevat sellaisiakin. Ja eipä ole yllätys jos tätä tarjotaan myös potentiaalisesti valtavalle automotive-markkinalle.

1 tykkäys

Tuossa Unreal Enginessä (koska on pelimoottori) luulisi olevan grafiikan ja nimenomaan 3D-graafiikan käyttö optimoitua sekä käyttöliittymiä helppo 3D-objecteista rakentaa.
Qt:ssä taas on sekä työkalupuolella (Design Studio/3D Studio), että kirjastossa tuki 2D/3D grafiikalle mutta myös kirjastoja (Add-Ons) moniin ei-UI toiminnallisuuksiin (sensorit, paikannus…).
Lisäksi Qt:ssä on tuo rakenne jossa QML:llä (+js/Python) voi rakentaa UI:t ja C++:lla suoraan natiivia nopeaa “sulautetun” koodia. Eli millainen tuo koko pino on tuossa Unreal Enginessä, muut kuin 2D/3D-moottori

4 tykkäystä

Minulla on 6 vuoden kokemus Unreal Enginen 4 käytöstä. Qt:tä käyttänyt viimeksi 10vuotta sitten yliopistolla ja kokemus ei ollut kyllä hyvä silloin. Varmaan täysin eri vekotin nykyään.
Pelimoottoreissa suorituskyky otetaan yleisesti erittäin tosissaan koska pelit ovat ns. Soft realtime systeemejä. Pelimoottorit ovat raskaita siksi että niillä tehdään erittäin paljon laskentaa joka ikinen freimi 30/60/120 kertaa sekunnissa. Ei siksi että ne olivat jotenkin raskaita luonnostaan. Jos haluaa saada näyttävää 3d grafiikkaa näytölle voin vannoa että UE4 on siihen parempi työkalu. Käyttöliittymiin varmasti yhtä näppärä ja input latencyn saa todella pieneksi mikä tarkoittaa parempaa käytettävyyttä. Miinuksena on että ei taivu aivan hitaimpiin rautoihin ja tarvitsee GPU:n. Eli jos valmistaja ei halua säästää raudasta viimeistä penniä niin kyllä tämä ihan oikealta kilpailijalta kuulostaa. Unreal enginen omistavalta Epiciltä löytyy myös paljon muskelia, valuaatio viimeisen rahoituskierroksen jälkeen oli noin 20miljardia juuri ennen kuin aloittivat sodan Applea vastaan.

Lisenssi automotiveen on siis täysin ilmainen.
” A platform for innovation

AUTOMOTIVE & TRANSPORTATION

From design review to digital showroom, Unreal Engine delivers the highest-fidelity real-time visualizations and immersive experiences so stakeholders can evaluate concepts and configure options with confidence. And, with a 100% royalty-free license and free source code access, you’ll always be in the driver’s seat with an open road ahead.”

15 tykkäystä

Aika paljon lienee Qt:llä kohteita, joissa ei ole tehokasta rautaa puhumattakaan GPU:ta.
Ilmeisesti GPU:ta voi tarvittaessa emuloida, mutta grafiikka hidastuu ?