Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 39 reacties

Symbian-applicaties kunnen draaien op Android door slechts een paar regels code te veranderen. Dat zegt een ontwikkelaar die enkele in Qt geschreven apps heeft geport. Hij toont de apps op een Nokia N8 en een Samsung Galaxy Tab.

De geporte applicaties zijn nog niet te downloaden vanuit Android Market, maar in een video toont CuteHacking dat ze inderdaad werken. Met een versie van Qt voor Android kunnen deze Symbian-apps makkelijk draaien op het mobiele OS van Google, claimt hij. De wijzigingen die hij heeft moeten aanbrengen om de app op Android te laten draaien, heeft hij ook online gezet.

Qt is een cross-platform-ontwikkelomgeving, die enkele jaren geleden door Nokia is gekocht. Qt ondersteunde alleen desktopbesturingssystemen, maar draait inmiddels ook op de Nokia-OS'en Symbian, Maemo en MeeGo. Ontwikkelaars hebben ook een versie voor Android gemaakt.

Hoewel Qt wel werkt op Nokia-toestellen, zal het niet werken op Windows Phone, vanaf volgend jaar het primaire OS voor Nokia-smartphones. Microsoft beperkt de ontwikkeling van Windows Phone-apps tot Silverlight en XNA. Daardoor is de toekomstige rol van Qt onzeker, hoewel Symbian de komende jaren nog in gebruik zal blijven.

Moderatie-faq Wijzig weergave

Reacties (39)

Nu begrijp ik het al helemaal niet meer waarom Nokia op W7P inzet en niet daarnaast ook nog een Android phone gaat maken...
Qt was natuurlijk nogal een bedreiging voor Microsoft's SilverLigth / XNA platform. Immers, Qt heeft dus ondersteuning voor Windows, Desktop Linux, Symbian en Android (enigzins). Dat ontwikkelaars - zoals bij KDE - desktopapplicaties voor Windows maken zonder gebruik van Microsoft's platformen is een nachtmerrie voor MS, dan verliezen ze de controle over hun eigen platform.

Dus logisch dat Microsoft een enorme zak geld aan de hoofdontwikkelaar van Qt - Nokia dus - geeft om ze te laten overstappen op Silverligth / XNA met het vriendelijke verzoek of ze alsjeblieft Qt willen 'vergeten'. En kennelijk waren ze zo bang dat ze een van hun mannetjes (Elop) gestuurd hebben om het bij Nokia persoonlijk te gaan regelen. En zie daar: Binnen ruwweg een maand al (!) wordt Qt-licensing door Nokia gedumpt en verkocht aan Digia. Duidelijker kan toch niet? En de ontslagronden moeten nog komen, driemaal raden welke 'engineers' de laan uit moeten.

Mits Nokia genoeg geld krijgt hebben Nokia's aandeelhouders er op de korte termijn mogelijk profijt van moet het management gedacht hebben. Is nog niet uitgekomen, aandeel NOK is toch een beetje "ingestort".

Erg jammer, Qt met QML begon net leuk te worden.
Tinfoil hat much?

Serieus, als Nokia Elop niet aannam dan was die nooit binnen gekomen. Dus "erop af gestuurd" is dus zeer overdreven. Het is niet zo dat MS maar kan eisen dat zo'n persoon aangenomen word hoor. Nokia is het er zelf ook mee eens anders was dat niet gebeurt. Maar goed dat begrijpen Android fans natuurlijk niet, die denken "Als het geen Android is, dan moet ik zeuren in het topic en claimen dat ik hem alleen koop als er Android op "runt"". Dat Nokia van zijn lang zal ze leven niet kan concureren met de goedkope toestelletjes uit China en Korea gaan ze even aan voorbij.
Ik denk zeker dat dit een verkeerde keus is geweest maar ze zullen wel een hele goede deal hebben kunnen maken met Microsoft.

En Google zal wel een iets arrogantere houding hebben gehad. Die zitten niet direct te springen op een nieuwe fabrikant (hoewel die altijd mooi meegenomen is).
Is dat de basis voor jouw aanname? Zelf beweert Google iets anders. Mogelijk hebben ze van Nokia/ Elop nooit een eerlijke kans gehad. Zelfs de interne leveranciers (Symbian en Maego) hebben van het trojaanse paard nooit een echte kans gekregen.

Feit is dat alleen Microsoft als leverancier aan de board is voorgelegd.

Best zonde voor de diversiteit: Nokia zou met Qt en Maego (+ Symbian) een platform in handen hebben om te concurreren met iOS, bbOS, Android en Bada. De investeringen in het platform waren omvangrijk en leken net vruchten af te gaan werpen. Het onderscheidend vermogen is weg en ik vraag me af of Windows (en dus Nokia) ooit een rol van betekenis zal spelen. In de weken na de aankondiging is de waarde van Nokia met een derde geslonken, dus de investeerders hebben er ook weinig fiducie in.
Volgens mij had Nokia gewoon harde cash nodig. Dat blijkt uit het enorme bedrag dat ze van Microsoft krijgen voor hun overschakeling. Dat blijkt uit de patentzaken tegen Apple waar laatste eventueel een licentie-ruil voorstond, waar Nokia niet aan wilde.

Ook de deal met Intel om Maemo met Intel's Moblin te fuseren in MeeGo heeft daar mogelijk mee te maken. Nokia had misschien zelf niet het geld meer om Maemo zelfstandig verder te ontwikkelen, door de samenwerking met Intel zou de ontwikkeling in ieder geval deels op de schouders van Intel komen te rusten, echter in de praktijk viel de de voortgang bijna stil.

Nokia heeft ook veel geld gestoken in Symbian, onder meer door deze los te kopen, daarna te verzelfstandigen (met als doel dat anderen er aan mee zouden gaan werken) en toen dat mislukte (Samsung en Sony stopten met Symbian in plaats van aan de ontwikkeling te gaan bijdragen) hebben ze het weer naar zich toe getrokken. Daarmee is Symbian voor de toestellen op de huidige roadmap gered, echter daarna is men waarschijnlijk op gaan zien tegen de mogelijke kosten (open einde, je weet niet hoeveel uberhaupt nog nodig is) die verder nodig zouden zijn.

Nokia zat met andere woorden klem en heeft de angst laten regeren en zich tot deze paniekstap laten drijven.

Nokia RIP
Ik wel. Heb je ooit wel is iets gehoord van Symbian apps? Ik zeer zeer weinig, tot niets.
Er zijn tal van applicaties voor Symbian, en merendeel is gratis of zelfs open source (google maar eens op Symbian freeware of Symbian applications). Mogelijk zijn er nog meer dan voor vb. Windows mobile. Het grote nadeel voor Symbian was echter dat er geen centrale plaats was om je applicaties te vinden. Dus als je een applicatie zocht, mocht je het internet afschuimen en 10 applicaties die hetzelfde doen proberen eer je een goede gevonden hebt.
Ik weet wel niet hoeveel van die applicaties er in Qt geschreven zijn...

Nadien hadden ze ook nog het probleem van diversificatie van het OS, met verschillende symbian versies (al dan niet met feature packs) waardoor het zoeken naar een compatibele applicatie nog moeilijker werd.
De meeste Symbian apps zijn niet in QT geschreven. QT werd eerst ingevoerd op Maemo en is daarna teruggeport naar Symbian om mensen vast aan te moedigen in QT te gaan programmeren en zodoende de overgang naar Maemo te vereenvoudigen.

De meeste programmeurs willen echter eerst afwachten of Maemo (nu MeeGo) er wel zou komen. Iets wat nu inderdaad twijfelachtig is..
Nokia heeft al een tijdje de OVI store, die kwa functies te vergelijken is met de app store, alleen kwalitatief een stuk minder vind ik.

De ovi store laat dan ook alleen apps zien die op jouw toestel zullen werken. En daarnaast voordat Apple met de appstore kwam had geen enkel toestel een vaste store om apps uit te halen.

Zelf vind ik de OVI store wel 10x slechter (vooral langzamer) werken als de market op mijn android toestel. Al heb ik op beide toestellen de zelfde type applicaties staan en werken ze evengoed alleen heeft mijn android wat meer spelletjes (die ik bijna nooit speel xD)
Ja zat, kijk maar eens in de Ovi store, staat er vol mee ;)
Symbian heeft ook hele mooie apps. Vooral sportstracker, wat echt een prachtige app is en ook nog gratis. Begon als een project van Nokia, maar staat nu op zichzelf.
Op Android heb je ook zulk soort apps (My tracks), maar die halen bij lange na niet de functionaliteit van sportstracker. Gelukkig komt daar verandering in; sportstracker on android and iphone
Over wat voor aantallen Qt-applicaties spreken we? Gaat dit om tienduizenden zoals in andere App-stores, of nog meer?
Het zal de 100.000 duizend momenteel nog niet halen. Niet alle apps in OVI-Store zijn geschreven in Qt. En de apps die er toe doen, zijn toch wel voor Android verkrijgbaar.

Het grote voordeel is natuurlijk 1x ontwikkelen voor meerdere platforms. De vraag is natuurlijk wel hoe de performance is. Op een Nokia is die zeer goed, maar ik weet niet hoe de implementatie voor Android is.
De Android versie is voor zover ik begrepen heb een communitie editie. Deze wordt dus niet officieel ondersteund. In hoeverre dit gevolgen heeft op de kwaliteit en performance weet ik niet.
Als het crossplatform zou zijn, dan zou het betekenen dat ik op mijn nokia ook android apps kan draaien?
De Qt apps moeten geport worden zodat ze werken op een Android. Dat bekent niet dat Android apps zomaar gaan werken op je Nokia. Sterker nog, dit is zeer onwaarschijnlijk.
Vooral omdat de meeste Android apps de (Java) SDK gebruiken en we het hier hebben over Symbian apps die met behulp van de Android (C++) NDK worden gecompileerd.
Qt is crossplatform maar (niet officeel) uitgebracht voor Android, er is dus ook geen ontwikkelaar die Qt gebruikt als basis voor Android (m.u.v. die in het artikel).

Dus nee, standaard Android applicaties draaien niet op een Nokia. Alhoewel ik niet weet wat er van Dalvik Turbo is terechtgekomen waarmee op de Nokia N900 (met MeeGo) Android applicaties kunnen worden gedraaid.
Qt is crossplatform maar (niet officeel) uitgebracht voor Android, er is dus ook geen ontwikkelaar die Qt gebruikt als basis voor Android (m.u.v. die in het artikel).
Qt (Android-Lighthouse) is geen door Nokia ondersteunde port maar het heeft wel ontwikkelaars.
Dat is inderdaad een port die ondersteuning bied voor android, maar degene gebruikt door deze ontwikkelaars is Necessitas. Daar hebben ze ook een applicatie ontwikkeld die voor jou de juist libraries kan installeren op je android systeem Ministro

[Reactie gewijzigd door eekhoorn12 op 5 april 2011 19:15]

Nee, Qt is een crossplatform toolkit in de zin dat je source gewoon kunt recompilen en het zou moeten werken. Dat is ook de reden waarom er KDE builds voor Windows zijn bijvoorbeeld.
De patch die genoemd wordt in dit artikel is een hele simpele aanpassing die een paar condities aanpast zodat de Android port van Qt ook wordt herkend. Ondanks dat je app zowel op de desktop als op de telefoon kan draaien met een recompile wil je nou eenmaal graag het volledige scherm op een telefoon benutten en slechts een venster op een desktop app.
Mits met Qt ontwikkeld waarschijnlijk. Als ik het goed begrijp maakt Qt de vertaalslag voor de programmeertaal van het onderliggende OS.
Nee, Qt apps worden gecode in C++. Qt is alleen een verzameling libraries(voor o.a. GUI elementen) die je vervolgens in C++ kunt gebruiken.
Toch heeft hij half gelijk. De meeste QT programmeurs maken gebruiken van QT specifieke macro's die eerst door de MOC preprocessor worden vertaald naar "gewoon" C++.
De moc compiler zorgt er alleen voor dat er (platform compatible) C++ code wordt gegenereerd voor specifieke Qt functionaliteiten zoals signals en slots die niet standaard in C++ ondersteund worden.
Dat heeft verder niet zoveel te maken met ' de programmeertaal van een onderliggend OS' .
(Het is overigens Qt en niet QT)
Exact. In dezelfde categorie als het dot NET Framework met als bonus cross platform. QT zie je ook veel terug in KDE een bureaublad suite voor *nix
Het .net framework zit technisch gezien in dezelfde categorie als java. compile once run everywhere. In het geval van .net is dit dan wel beperkt tot alle microsoft platformen. Met mono kan de applicatie ( soms / meestal ) ook onder mac of linux gedraaid worden zonder hercompile of aanpassingen.

Qt is technisch gezien een volledige set van api's die gebruikt kunnen worden door een ontwikkelaar. (geluid,printer,database,gui,enz) Qt bevat de volledige abstractie naar het OS, de programmeur kan dus in theory 1 code base schrijven die voor alle platformen compilen.
Android zullen niet zomaar werken op je Nokia gewoon om de feit dat veel apps in Java zijn geschreven en via de android vm worden gedraaid. Die vm heb je natuurlijk niet op Symbian.

Wel mooie ontwikkeling dit. Vind wel jammer dat Nokia nu meer de zee is ingegaan met microsoft ipv Qt goed werkend te maken op android zodat ze een grotere markt hebben.
Wel weer jammer dat het er niet native uitziet en je eerst een groot qt library moet installeren als eindgebruiker.
Hoezo ? Dit maakt volgens mij gewoon gebruik van de NDK die de app in pakt in een .apk hoor. Hoef je als eind gebruiker niks aan te doen.

Van de android NDK website:
http://developer.android.com/sdk/ndk/index.html
If you write native code, your applications are still packaged into an .apk file and they still run inside of a virtual machine on the device.

[Reactie gewijzigd door Rutix op 5 april 2011 18:39]

als je het filmpje hebt gekeken in de bron zie je dat je qt libs moet installeren als eindgebruiker, het is vrij goed opgelost met automatisch market openen enzo, maartoch.
Even voor de volledigheid:
espen@droid:~/dev/Yr$ git show c932a9b94fee0c807638466581d95029743ade42 yr.cpp main.cpp
commit c932a9b94fee0c807638466581d95029743ade42
Author: Espen Riskedal <espen@cutehacks.com>
Date: Mon Apr 4 18:41:17 2011 +0200

first inital Android version

diff --git a/main.cpp b/main.cpp
index ca21e4c..78da620 100644
--- a/main.cpp
+++ b/main.cpp
@@ -34,7 +34,7 @@ int main(int argc, char *argv[])
#elif defined(Q_OS_MAEMO)
yr.setAttribute(Qt::WA_Maemo5AutoOrientation, true);
yr.showFullScreen();
-#elif defined(Q_WS_SIMULATOR)
+#elif defined(Q_WS_SIMULATOR) || defined(Q_OS_ANDROID)
yr.showFullScreen();
#else
yr.resize(360, 640);
diff --git a/yr.cpp b/yr.cpp
index 74e4ab9..337434d 100644
--- a/yr.cpp
+++ b/yr.cpp
@@ -105,7 +105,7 @@ void Yr::resizeEvent(QResizeEvent *event)

QRect Yr::screenGeometry()
{
-#if defined(Q_WS_S60) || defined(Q_OS_MAEMO)
+#if defined(Q_WS_S60) || defined(Q_OS_MAEMO) || defined(Q_OS_ANDROID)
const QDesktopWidget *desktop = QApplication::desktop();
return QRect(desktop ? desktop->screenGeometry() : QRect(0, 0, 360, 640));
#elif defined(Q_WS_SIMULATOR)
espen@droid:~/dev/Yr$
RAW Paste data
espen@droid:~/dev/Yr$ git show c932a9b94fee0c807638466581d95029743ade42 yr.cpp main.cpp
commit c932a9b94fee0c807638466581d95029743ade42
Author: Espen Riskedal <espen@cutehacks.com>
Date: Mon Apr 4 18:41:17 2011 +0200

first inital Android version

diff --git a/main.cpp b/main.cpp
index ca21e4c..78da620 100644
--- a/main.cpp
+++ b/main.cpp
@@ -34,7 +34,7 @@ int main(int argc, char *argv[])
#elif defined(Q_OS_MAEMO)
yr.setAttribute(Qt::WA_Maemo5AutoOrientation, true);
yr.showFullScreen();
-#elif defined(Q_WS_SIMULATOR)
+#elif defined(Q_WS_SIMULATOR) || defined(Q_OS_ANDROID)
yr.showFullScreen();
#else
yr.resize(360, 640);
diff --git a/yr.cpp b/yr.cpp
Ik vind het trouwens wel humor dat je met een een paar wijzigingen in de GUI properties ineens een hele app kan porten. :D
Ik vind het trouwens wel humor dat je met een een paar wijzigingen in de GUI properties ineens een hele app kan porten. :D
Dat is het voor deel van Qt aangezien het een cross-platform application framework is.
Komt omdat Qt vooral bestaat uit native C++ en dus gewoon via de NDK kan worden gecompileert :). Ik vind mooi dat het GUI systeem ook gewoon werkt dat had ik niet zo verwacht.
Werkt Qt ook op iOS devices?
neen, of iig voorlopig nog niet
Wel op Mac, iPhone wordt aan gewerkt. Zie qt-iphone, alpha werkt op emulators.
ed: En een beetje QML via LightHouse.

[Reactie gewijzigd door kidde op 5 april 2011 13:05]

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True