Skip to content

Latest commit

 

History

History
115 lines (88 loc) · 5.89 KB

README.md

File metadata and controls

115 lines (88 loc) · 5.89 KB

QtWorkshop logo

QtWorkshop

A workshop project to practice QML (more)

purpose

The aim of this project is to provide an application squeleton to help practicing Qt and QML during a workshop. The first experience will be during the QtDay2019 in Firenze. It is meant to be a good way for easing any introduction to Qt/Qml workshop, have a try in your Qt meetup !

How it works ?

The application consists of a list a of topics candidate (a.k.a. "TC") to play with (for instance playing with the camera is one TC while playng sounds is another). A TC is provided with some guidelines to help QML newbies to start with or simply with ideas about what could be done. A set of ressources is also part of the application (for instance a sounds bank, an height map...) so that implementing TC is not spoiled with the cumbersome activity to look after suitable assets.

overview

A playground is the implementation of TC for a given player. When the application starts (from a clean clone and build), it starts with the playground creation :

  • ask for the playground name
  • optionnaly use the camera to create a player profile picture Once created, the application zip and transfer the playground through a FTP on a remote location.

Using QtCreator, players can modify their playground QML document to implement a given topic.

Using QtWorkshop application, it is possible to switch from one topic to another using the toolbar or select a playground using the left drawer.

drawermenu

At anytime, one can download others players playground and/or upload its playground to share its progress using the dedicated buttons on the footer menu or through the integrated playground console.

playgroundconsole

As the published playgrounds of others players are actually donwloaded locally, it is easy to browse the QML content - using QML creator, all the playgrounds documents are listed in "others files" (rerun qmake to update if required).

Finally, the application can show the QML content and support live editing (credits to Oleg Yadrov)

inlineeditor

topics candidate

(See the wiki)

topicmap topicdataviz
topicflickr topicsensors

requirements

It is strongly advised to use the latest stable Qt version (Qt5.12.1 at the time of the project start) but an effort has been made for the project to run with Qt5.9 (untested).

The remote location of playgrounds support HTTPS but only HTTP is used by default to avoid introducing a SSL requirement on local host building QtWorkshop.

how to start ?

  1. git clone the project
git clone https://github.com/a-team-fr/QtWorkshop.git
  1. Open the project with QtCreator

  2. Build, run and follow the instructions

available on iOS and Android

The app has been published but in "showcase" mode : it is not possible to create a playground, upload/download so it is way less interesting.

The sole purpose of the showcase is to give you an idea of what kind of things you could produce during the workshop.

QtWorkshop on Google play QtWorkshop on AppStore

Roadmap

Version 0.1 - QtDay Firenze

  • features / improvements
    • basic squeleton : able to select topic, select a user with a few topics
    • share playground over ftp : upload / download
    • use the camera to get a profile image when creating the playground
    • add a show details for a given topic candidate to give more information (link to github wiki)
    • add an edit mode showing the QML code, enable modification and update
    • create a warmup topic
    • improve UI/UX
    • integrate basic QML syntax highlight
  • Topics
    • warmup
    • SoundBox
    • Camera
    • Map
    • TTS
    • Sensors
    • Uncharted
    • Flick'r
    • Messy (a refactoring challenge)
    • Canvas (wip)
    • Free
  • Successfully built on
    • MacOs
      • Qt5.12.1
      • Qt5.9.7
    • MS Windows 10
      • Qt5.12.1 (MSVC2017 64b)
      • Qt5.9.7 (MSVC2017 64b)
      • Qt5.9.7 (MinGW 32b)
    • GNU/Linux (Debian Jessy)
      • Qt5.10.2

Version 1.0

  • chat support
  • polling