Closed stanobox closed 5 years ago
Faccio un elenco di pensieri guardando il file milestons.md
come IDE diciamo che qtcreator e clion sono degli IDE mentre gli altri sono degli editor con qualche skill... Vim mi sembra un po' eccessivo, io lo utilizzo ma per delle cose al volo o quando lavoro sulla CLI e devo fare degli edit di file
per quanto riguarda il build system, di standard c'e' solo cmake, in realta' non esiste uno standard, qmake e' la versione di qt piu' semplice e moderna, come per l'IDE dipende anche cosa utilizzi, Qt creator supporta entrambi, Clion solo cmake.
per quanto riguarda le varie librerie GUI e Test ti lascio questo link per farti una panoramica, https://philippegroarke.com/posts/2018/c++_ui_solutions/, dove hai un po' di confronti. In realta' devo campire se tutto questo deve girare su embedded o su desktop oppure se puo' prevedere una versione solo logica su embedded con connessione al pc per la GUI e due versioni... Insomma c'e' un po' da affinare l'idea che secondo me e' valida anche come solo logica su raspberry e se ci colleghi il pc diciamo vai a connettere una interfaccia, se invece pensavi di usare il rpi come se fosse un pc direi facciamo prima a svuluppare su desktop... Per quanto riguarda i test io uso moltissimo Catch2 (con anche trompeloeil per i mock e cucumber per la documentazione) pero' per esempio se usi qt anche utilizzare sia qt test che catch2 e' una buona soluzione...
Grazie per i consigli !!
Ok, quindi come IDE la scelta si riduce a CLion e Qt creator . Ho letto che il secondo è un pò pesantuccio, il primo un pò costoso. CLion mi attira, perchè, già che ci sono, imparerei con un tool decisamente moderno. Può essere un investimento :)
Tra cmake e qmake, direi che la scelta sarà dettata dall'IDE, a questo punto.
Per la GUI e e Test, grazie, guardo il documento appena posso.
Per quanto riguarda il discorso embedded... parliamone ! La cosa più semplice che mi viene in mente è quella di gestire tutto da applicativo "desktop" . Infatti per il progetto che ho immaginato il feedback visuale è essenziale ( editing dettagliato delle note, etc... ). L'idea dell' embedded engine con interfaccia remota mi affascina, e magari potrei ternerla come step successivo, magari per un soft synth o simile =)
Riguardando i diagrammi che ho preparato, mi son reso conto che devo spiegare meglio quali componenti faranno realmente parte del progetto: vale a dire il sequencer che gira su raspberry ed eventualmente un controller via GPIO . Il resto è roba esistente in commercio ( schermo, controller MIDI generico, l'interfaccia USB/MIDI e sound module )
Riguardo al UI toolkit, ho guardato il fantastico link che mi hai passato. Le librerie sono tutte interessanti. Ho considerato le librerie ben documentate, con il codice sorgente disponibile e presumibilmente "light" . In ultimo, ho considerato anche l'estetica . Mi ispirano Juce (perchè ben documentata) e Nuklear ( che è essendo "Immediate Mode" mi pare di capire, deleghi "tutto" allo sviluppatore, permettendomi di imparare di più, forse ) e GuiLite . Tu hai esperienza con una qualsiasi di queste ?
Allora anche a piacciono le cose light pero' ho qualche esperienza con le gui che offrono poco supporto e costruirtu tutto da zero e' un po' una scocciatura... Ho usato velocemente Juce che alla fine e' proprio per la creazione di tool per musicisti! Non so se si possono mescolare le GUI perche' non ho mai provato anche se sarebbe ideale perche' magari per fare qualche tool e' comodo juce e per altro magari meglio GuiLite o simili... Bisogna un po' fare delle prove e vedere quanto e' flessibile, sicumente la piu' completa e' Qt che offre la parte widgets/qml/canvas etc... Pero' non escludo niente :D
La cosa bella di Juce, Nuklear e GuiLite è che hanno minime dipendenze . L'idea ibrida mi piace . Certamente QT è la più completa. Ok, mi organizzo: L'idea di fare delle prove ci sta al 200% =)
Quello si le minime dipendenze sono comode però se fai cose grandi o complicate ci può stare che hai dipendenze!!! Comunque nel repo possiamo fare le prove di mettere insieme, ho letto che gui lite si integra bene in altre lib gui
ho creato dei sotto task e ho aggiornato la descrizione di questo, per dividerlo in diversi step più gestibili :smiley_cat:
Chiudo questo issue. Alcune questioni si ripresenteranno più avanti, altre "verranno da sè", un pò alla volta.
Need to decide how to proceed: