I’ve been a long time Qt user working on internet collaboration tools, featuring audio/video conferencing, application sharing, content sharing, plus other fun stuff. Just happened across this site the other day and was both surprised, that I had never heard of it, and quite impressed, with just how much stuff could be produced by a “one man show”. So, anyway, just taking a cursory look and I did have a couple “getting started questions”:
-
Real Qt support for mobile is just starting to be made available in the upcoming 5.1 release, so it would appear that JUCE is quite a bit ahead on this front. I can see that Android is the newer JUCE platform with iOS being more established. Could you identify reference applications (especially with live audio/video handling), actually released to either store, that could help us to evaluate the overall maturity of the toolkit on mobile?
-
Saw a few posts regarding “integration of native iOS components” and also would have a requirement for the reverse of that “integrating toolkit components, including GUI, into a native application”. Could you comment on the current capabilities, or plans, for iOS and/or Android?
-
Also saw a couple posts regarding performance concerns on mobile devices - are these still outstanding issues, or have they been resolved? From a UI perspective, we’re very sensitive to transition response times and really want to see that “instant POP effect without visual artifacts”, so, what would the current expectation be in this area, across platforms?
-
Looks like JUCE is quite grounded in audio, with a strong emphasis on music/sound production. However, from a VOIP perspective, there doesn’t seem to be as much focus. Is there support for acoustic echo cancellation (I was unable to find it)? And, most of the code that we deal with (e.g. WebRTC) very much favors fixed point PCM samples (lightest overhead for building an efficient network stack), as opposed to floating point samples (I’m guessing that the music folks prefer this format). Again, forgive me if I’ve just overlooked something, but I couldn’t see any way to request integer samples, and to avoid any translations to floating point end-to-end (a primary goal for us)?
And, of course, I realize that noobster votes, especially those using other toolkits, don’t likely count for much, but I’ll throw out a couple opinions anyway.
-
Core features vs. fancy gui builders - definitely core features. For instance, we have a team of very experienced, cross-platform Qt developers, and we rarely, if ever, use QtCreator, and we do not use the GUI builders for any of our layouts - in our opinion, MSDEV is just too good. Most of our work is done on windows, and then, based on the quality of our multi-platform toolkits, the work on other platforms is mostly left to handling corner cases. The whole GUI builder thing is highly over-rated, as it’s just not that difficult to code up precise layouts - without as much of the “RPG syndrome” that automated tools tend to introduce.
-
All powerful build production environments vs. headers/libraries - of course, fully encapsulated static libraries. We would clearly think of JUCE as a sub-component on most platforms, as opposed to the master application component. So, in my opinion, it would be a big mistake to get too locked up into the whole IntroJucer/ProJucer concepts - which may actually impede the progress of those that would consume this as just one piece of a larger system, and may be selecting very different - and perhaps even way less cool - build production processes to smash everything together. I can integrate a static library into any environment and already consume several major libraries in just that way (fully avoiding extensive interaction with whatever build process they might think is pure magic) - so, for me, I definitely see some very nifty things in the JUCE library, but I don’t have a need for another development process/structure…
Thanks,
Gary