Monday, December 22, 2014

Meteor and Qt: match made in heaven

Meteor, say hello to cross-platform native app-development. Qt, say hello to a modern, reactive web back-end.

TL;DR You can write a native Qt / QML app and have Meteor as the back-end for real-time data distribution and remote procedures.


I've been looking at recent developments and since Meteor had it's 1.0 release recently, decided to take it for a spin... with Qt.

For those that have been living under a rock, Meteor is a node.js based web framework that can be used to create modern, responsive web apps. It does have Cordova/Phonegap support, so you can package your website as an app and deploy to Android or iOS, but obviously that leaves you short when it comes to truly native look and feel, performance, and full range of APIs.

Qt on the other hand is a native cross-platform application development platform and has an excellent track record when it comes to the sheer number of supported native platforms. It does have some server/cloud oriented functionality and services (see engin.io and https://qtcloudservices.com/ in general), but it's hard to beat the popularity and ecosystem (and therefore development speed) happening around Meteor.

Can we make this a match? Meteor for web and server-side, and Qt/QML for making snappy native applications that go beyond calling RESTful APIs and polling on one side, and packaging node.js and phonegap API/performance limitations on the other?

The answer is luckily yes - what makes Meteor so uniquely well positioned for this is it's Data Distribution Protocol, or DDP for short. It's a websocket-based channel where Meteor sends JSON messages to the clients. There is nothing special about this, so we can have a Qt client (turns out there is already a healthy list of DDP clients/libs, but none C++ or Qt-oriented).

Enter Qondrite, a lightweight QML wrapper for Asteroid, a Javascript client for Meteor. With Qondrite, you can use Meteor as the source of your models (yes, everything shown goes through models, not hardcoded lists and data). To check the feasibility, I took the Todo example from Meteor (meteor create --example todos) and used Qondrite to interface to the meteor application. As usual, the source of this demo is available on github.

The end result?




As promised, an integrated Meteor-Qt stack, with a whole lot of opportunity to take the idea even furher. For example, there is no reason why we couldn't send QML instead of Meteor's Blaze HTML templates, making fully dynamic UIs for native applications - how awesome would that be?

This makes Meteor super-well suited for multiplayer games, chat applications and any type of app that benefit from a scalable, client-agnostic back-end, and low-latency, high-performance on the client side.

Feel free to discuss at Hacker news or on meteor-talk !

10 comments:

  1. szia! using javascript server-side and c++ client side... times are changing :-) kudos for the library and post!
    I'll definitely follow your progress as we are eagerly looking into both frameworks.

    ReplyDelete
  2. Hey, very nice site. I came across this on Google, and I am stoked that I did. I will definitely be coming back here more often. Wish I could add to the conversation and bring a bit more to the table, but am just taking in as much info as I can at the moment. Thanks .

    DedicatedHosting4u.com


    ReplyDelete
  3. I just want to say that all the information you have given here is awesome...great and nice blog thanks sharing. Thank you very much for this one. And I hope this will be useful for many people.. and I am waiting for your next post keep on updating these kinds of knowledgeable things...

    xamarin development company

    ReplyDelete
  4. Very good article interesting and useful

    Join and feel the thrill of playing Poker Site, Domino99, Pokerqq, QQ Online, Domino Qiu, Qiu Qiu Online, Poker Qiu Qiu which gives big wins only at http://Maxbetqq.net/ A trusted IDN Poker agent who gives big win big jackpot together Situs Poker Idn Play.

    Supported by quality servers and very fair games 100% Player vs Player and no ROBOT interference in the MaxbetQQ Trusted Online Poker Site.

    Promo HOT Di Poker Online Terpercaya Maxbetqq :
    – Bonus Bulanan Megajackpot
    – Bonus New Member 20% (Minimal Deposit Rp25.000 | Maksimal Bonus Rp.50.000)
    – Bonus Rollingan 0,5%
    – Bonus Deposit Rp. 5000 Setiap Hari
    – Bonus Refferal 10% Up To 60%

    7 Games Dalam 1 User ID :

    ✔️ Texas Poker
    ✔️ Domino QQ
    ✔️ Capsa Susun
    ✔️ Bandar Ceme
    ✔️ Ceme Keliling
    ✔️ Super Ten
    ✔️ Pot OMAHA

    Info Maxbetqq Anda Bisa Langsung Menghubungi Lewat :

    Livechat : http://Maxbetqq.net/
    Whatsapp : +66613295868
    WeChat : MaxbetQQ
    Line : MaxbetQQ


    QQ NET
    QQ.NET
    QQ PAGCOR
    ONLINE QQ
    DAFTAR QQ
    QQ ONLEN
    POKERQQ
    POKERQQIDN
    QQ ONLINE
    DOMINO QIU
    Agen Poker IDN
    Idn Poker
    Poker Idn Play
    MAXBETQQ.NET
    SITUS POKER
    AGEN POKERQQ
    AGEN DOMINO99
    POKER QIU QIU
    QIU QIU ONLINE
    AGEN POKER UANG ASLI
    AGEN POKER TERPERCAYA

    ReplyDelete
  5. NAGAQQ: AGEN BANDARQ BANDARQ ONLINE ADUQ ONLINE DOMINOQQ TERBAIK

    Yang Merupakan Agen Bandarq, Domino 99, Dan Bandar Poker Online Terpercaya di asia hadir untuk anda semua dengan permainan permainan menarik dan bonus menarik untuk anda semua

    Bonus yang diberikan NagaQQ :
    * Bonus rollingan 0.5%,setiap senin di bagikannya
    * Bonus Refferal 10% + 10%,seumur hidup
    * Bonus Jackpot, yang dapat anda dapatkan dengan mudah
    * Minimal Depo 15.000
    * Minimal WD 20.000
    * Deposit via Pulsa TELKOMSEL & XL
    * 6 JENIS BANK ( BCA , BNI, BRI , MANDIRI , CIMB

    Memegang Gelar atau title sebagai AGEN POKER ONLINE Terbaik di masanya

    Games Yang di Hadirkan NagaQQ :
    * Poker Online
    * BandarQ
    * Domino99
    * Bandar Poker
    * Bandar66
    * Sakong
    * Capsa Susun
    * AduQ
    * Perang Bacarrat (New Game)


    Info Lebih lanjut Kunjungi :
    Website : NAGAQQ
    Facebook : Facebook
    WHATSAPP : +855977509035
    Line : Cs_nagaQQ
    TELEGRAM :+855967014811

    BACA JUGA BLOGSPORT KAMI YANG LAIN:
    Cerita seks
    Winner NagaQQ
    story world
    Daftar NagaQQ

    ReplyDelete