It’s been a while since my last post over here. After being drained with a lot of work on the very first edition of QtCon Brasil, we all had to take some rest to recharge our batteries and get ready for some new crazinesses.
This post is a short summary of the talk I presented at Akademy 2017, in the quite sunny Almería in Spain. Akademy is always a fascinating experience and it’s actually like being at home, meeting old friends and getting recurrently astonished by all awesomeness coming out of KDE community :).
My talk was about architecting Qt mobile applications (slides here | video here). The talk started with a brief report on our Qt mobile development experiences at IFBa in the last two years and then I explained how we’ve been using lean QML-based architectures and code generators to leverage the productivity and provide flexible and reusable solutions for Qt mobile applications.
Our approach ‒ named Meg ‒ is defined by two major components: a lean dynamic QML-based architecture for Qt mobile applications and a code generator for enabling the creation of modular RESTful servers and Qt mobile applications. Meg provide a Ruby-based CLI, built on top of Thor CLI framework, with templates specified in ERB (Embedded RuBy). We also designed a nice architecture for the generator itself, so that new templates can be defined as new Thor modules. The framework that implements the lean architecture we designed for Qt mobile applications already provides a JSONListModel QML object, making it easier to implement RESTful Qt clients.
The following templates are currently available:
- Sinatra RESTful server with modular architecture (sinatra-server)
- Ruby Sinatra RESTful service plug-in (sinatra-service-plugin)
- Simple Qt mobile app with plugin-based architecture (simple-app)
- Qt mobile RESTful app with plugin-based architecture (restful-app)
- Qt mobile RESTful client plug-in (restful-client-plugin)
You’re welcome to try it 🙂 Here is what you need to do:
* git clone https://github.com/sandroandrade/meg.git * install ruby * run ‘gem install bundler' * Run ‘bundle install' * Meg CLI is available in ‘./bin/meg'
Creating a simple plugin-based QML application
So, these are the steps to create a simple plugin-based QML application using Meg:
1. Create a new project using simple-app as project type (template): ./bin/meg new SimpleApp -t simple-app 2. Create a new plugin, for example, to display students information: ./bin/meg generate plugin students -t basic-plugin -a simpleapp/ 3. Create another plugin, for example, to display teachers information: ./bin/meg generate plugin teachers -t basic-plugin -a simpleapp/
In step 1, we create a …read more