Page 1 of 1

Multiplatform development

Posted: Thu Mar 05, 2015 4:37 pm
by MrMxyzptlk
Hi!

I have a not so astronomy related question but I'm curious: soon I will have a new software for a client and I'm thinking about to take the cross platform development way, but I don't know where to start. What IDE ate you using for development? How do you manage to develop/build for multiple platforms. Are you using a payed development tool or something free?

Thank you

Re: Multiplatform development

Posted: Thu Mar 05, 2015 11:03 pm
by admin
Hi,

Nice question!
The answer is "it depends" (don't you hate that? :P)
Which platforms are you targeting and what sort of application are you building?
Is it desktop, mobile, both, is performance of a concern, what sort of UI is required, what sort of licensing is agreeable, what sort of language do you work in/prefer, etc.

StarTools is entirely built by hand from the ground up in C, from the multi-platform dev kit to the file loaders, font renderers, UI lib and image processing algorithms.
The reasons for that are;
  • I'm slightly mad.
  • I like to understand all aspects of software development in-depth (because it's the only way to understand and improve the state of the art, and come up with new ideas).
  • I come from a software development background where every CPU cycle and byte counts (that's why the UI can make due with just a few kilobytes of RAM if it needs to, that's why the ZIP file containing all 3 intel versions weighs in under 3MB, and that's why StarTools runs on Android/ARM wihout problems.
So, yeah, it totallly depends on your needs (and how crazy you are).

Re: Multiplatform development

Posted: Fri Mar 06, 2015 4:18 pm
by MrMxyzptlk
I'm crazy, but not crazy enough. I'm thinking about using CodeLite with wxWidgets. It won't be graphics heavy, I need more the ability to deploy as well for Windows as for Linux too, maybe MacOS down the line. Let's see, thank you for the ideas, I have a few more weeks two think about the concept until I must begin coding so ... I'm thinking and thinking :D

Re: Multiplatform development

Posted: Sun Mar 08, 2015 3:58 am
by Amaranthus
Respect, Ivo ;) I remember when I was doing 2nd year Comp Sci in Assembler. All the assignments were based on the principal of making ever cycle count.

Re: Multiplatform development

Posted: Wed Mar 11, 2015 7:06 am
by admin
MrMxyzptlk wrote:I'm crazy, but not crazy enough. I'm thinking about using CodeLite with wxWidgets. It won't be graphics heavy, I need more the ability to deploy as well for Windows as for Linux too, maybe MacOS down the line. Let's see, thank you for the ideas, I have a few more weeks two think about the concept until I must begin coding so ... I'm thinking and thinking :D
If you simply need a nice low-level cross-platform lib, you can't go wrong with SDL 2.0.

Qt is nice if you need/like lots of controls, windows and icons (like PixInsight, which uses it).

Re: Multiplatform development

Posted: Wed Mar 11, 2015 7:12 am
by admin
Amaranthus wrote:Respect, Ivo ;) I remember when I was doing 2nd year Comp Sci in Assembler. All the assignments were based on the principal of making ever cycle count.
I used to love counting cycles in assembly on CISC architectures, but then ARM/RISC+sophisticated compilers came along and the whole thing became automated. Optimisation became somewhat of a lost art.
However, for the-job-that-pays-the-bills, I'm now finding that counting cycles (or at least measuring execution times) has relevance again; with cloud computing and auto-scaling services you can start assigning a dollar value to each cycle you (mis)use. If you can make something more efficient, it means you need fewer instances of your applicaiton to shoulder the same load, which in turn lowers your cost compared to having more instances running.