Multiplatform development

General discussion about StarTools.
Post Reply
MrMxyzptlk
Posts: 23
Joined: Tue Oct 14, 2014 9:46 am

Multiplatform development

Post 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
User avatar
admin
Site Admin
Posts: 3382
Joined: Thu Dec 02, 2010 10:51 pm
Location: Melbourne
Contact:

Re: Multiplatform development

Post 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).
Ivo Jager
StarTools creator and astronomy enthusiast
MrMxyzptlk
Posts: 23
Joined: Tue Oct 14, 2014 9:46 am

Re: Multiplatform development

Post 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
User avatar
Amaranthus
Posts: 68
Joined: Wed Apr 30, 2014 4:42 pm
Location: Judbury, Tasmania
Contact:

Re: Multiplatform development

Post 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.
Long-time visual observer, now learning the AP dark arts...
User avatar
admin
Site Admin
Posts: 3382
Joined: Thu Dec 02, 2010 10:51 pm
Location: Melbourne
Contact:

Re: Multiplatform development

Post 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).
Ivo Jager
StarTools creator and astronomy enthusiast
User avatar
admin
Site Admin
Posts: 3382
Joined: Thu Dec 02, 2010 10:51 pm
Location: Melbourne
Contact:

Re: Multiplatform development

Post 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.
Ivo Jager
StarTools creator and astronomy enthusiast
Post Reply