Questions Regarding Development
Hello I just started looking at qt today and I would like to say it appears to be a very polished library, but I have a few questions mainly regarding advice as I am not sure where to start for my project. So I first will list my goals for my project which will be an audio and video player. The reason I am asking here is because I am imagine most every one here is fairly versed in cross platform development where as I am not; thus I believe your feedback would be helpful as I am researching and trying to put problems, tools, and difficulty in perspective. Also I have had primarily experience with console applications, and control system programming for robotics; as a result, I have limited experience with GUI programming.
Here is a list of my top priorities off my list, and on my list I have large amount of sub-items under these points and I am willing to elaborate if need be.
2.Large file format support including uncommon formats and easily expandable
4.Custom GUI with native GUI features default
5.Expandable with plug-ins
6.Manage Media Devices such as MP3 Players (MSC and MTP)
7.An effective Database and organization method
8.Support of massive video music libraries with out much burden on the system
Here are some of the questions I have and feedback would be helpful.
1.First I would like to ask would I be better off using a cross platform toolkit for my applications or would I run into some inherent issues from using one?
2.Is it a bad idea to have the core of the application a separate executable and the GUI be its own executable and the two processes communicate between each other? Like would it cause problems especially with video since I would want it to displayed in the same GUI.
3.How would I add an effective plug-in system for application running on multiple platforms since any plug-ins would have to be compiled for each platform?
4.Concerning my GUI what would be a smart approach to having it skin-able and the same time capable of using the native GUI.
5.Any information regarding on how to setup a decent system for cross-platform development that can work well in for a long period of time and with a large project.
6.Any thing else you may add that you would recommend I read or do for preparation and during development.
I know this is a lot to suddenly drop on a forums, but I am a solo developer and I live in a small community of a few thousand people so I do not have many local connections to ask for advice and how to get setup.
Also typed this up quickly so if there is any other information needed or typos that need corrected let me know so I may revise this post.
First of all: welcome to Qt.
Qt is a cross platform library. If you want to build a cross platform application, it is probably a good choice. Don't expect independent advice on that on a Qt-only forum though ;-)
No, that could be a good idea. It all depends on why you want to do that, though.
Everything would need to be compiled for each platform. But the Qt plugin system remains the same.
Use the Qt StyleSheet system, perhaps? It depends on how skinnable you want to make it. Personally, I think that user-skinnable UI's belong in the previous decade.
That question is way too general to answer. I would think that the cross platform part is covered quite well by Qt, but you also might need a repository for your code, for instance.
Perhaps start with a less ambitious project. If you are a beginner, you should ask yourself if you really want to start out this complicated. Also: why make a media player at all? There are so many of those already, why do you think you can add something significant to that landscape?
Thank you for your response.
I am curious about what is wrong with non-native UI as an option? Microsoft's own media player dose not even use the native UI also there is Google Chrome with its own UI. I think its more of a matter if it is done well.
How should I rephrase question 5 perhaps I mean what libraries, make systems, IDE's or (no IDE) or some other recommendations on a decent and productive setup.
I have thought about something simpler, but I don't mind a challenge plus I can learn a lot from this plus I have a large music collection and I have ran into various problems of media players providing decent support for certain audio formats across platforms such as gap-less audio. Also I have few interesting ideas for managing music libraries, and tag editing, and album art work. I am not certain though if I am going to toss video in the mix though as that is an other can of worms I thought it would be nice, but I am definitely more concerned with audio.
There is, IMHO, a difference between a non-native UI as you describe now, and a user-skinnable UI as you were talking about in your first post (at least, that's how I understood it). There is not much wrong with a custom UI. You see it more and more, and if it custom not in order to be different, but in order to improve on the UI (like with Chrome), I think that is a good idea. Different just for the sake of being different I have my doubts about, but that is just personal. I agree: it is a matter of it being done well. Note that it is not easy at all to "do it well" in ways that the system does not offer by default.
On question five: installing the Qt SDK for the different platform you're working on would already go a long way. Qt Creator is quite good, and as cross platform as Qt itself.
Don't support out-of-the box support for all these exotic codecs you're interested in. This kind of thing is hard work, and not very Qt related. But: it can be done. VLC for instance is build with Qt. I am not saying you souldn't go for a challenge, but I also see that it can sometimes make people give up because they tried to chew a bite a bit too big.
Thanks for the response. I was Just looking the Qt api and I see there are audio API/Classes. I do not know much about them, but how are they performance wise and for situations involving codecs, and audio processing in general??
I am still would like feed back and am curious to any of those who have had prior experience with the audio api of Qt. Therefore, would it be suited for what I am doing (such as implementing an equalizer while maintaining quality play back) or would I be better to account for each platform I am developing for?