|** this was first posted as a question, but I don't see it in the questions list so I don't know if it was removed or what happened to it (or where did I posted it).
Hi. I want to make apps for the big two mobile platforms (plus desktop), and want to make these in C++. The idea is to use the same code, with as little change as possible for both systems. My current state is that I have knowledge in C++, and I am aware that the sdk for android includes an extension for compiling code in C++ (ndk); but, I don't know which compiler should I use for IOS, and what standard libraries should I get to use graphics in the same way or with the same code in both cases.
Here is the background: I am interested in making mobile apps, and as common sense dictates, if I want to make the apps for both systems, the idea would be to use a tool that allows me to do the development for both platforms at the same time, and not repeat the effort in making the same thing twice.
With this in mind, as cross platform tools my choices were either Flash or Unity. The thing is, I already have some Flash licenses, though kinda old, and Unity, though 'free', is not really free, and I may end up paying more than what I have to pay to develop the app in Flash in the long term, if I am successful, which would be the idea
I already had an old Flash version installed, plus I had done some things in Flash previously, which would be a starting point. I also know how to use the tool, so the most adecuate choice was Flash
I am aware that if I choose a third party development platform, I am subject of what the platform can or can not do, and if they change the platform, I have to be subject to this. Anyway, the version of Flash I had installed was an old version that allowed me to make the development, but would not let me export it as a mobile app, as this functionality came later. I had (have) though, a more recent version, which I had not installed till recently, because for what I was doing, the installed version was enough. I don't plan to get the more recent version if not neccessary (CC, or cloud); I already have legal permanent licenses, instead of paying rent of $20 per month per product
Ok, so I start making my project, based on previous works, in an older version. Recently I installed the more recent, yet old version (5.5; 6 was the last one before it went cloud) but which would allow me to export it as Air for Android (Air is supposed to be a superset of Flash, so the same code made in Flash is supposed to run the same way in Air).
It did not work. When running as Air, or the same thing not in the Flash player but in Air player, has bugs that are not present in Flash, and I have not found a work around it. Basically, a big deal of my work in the last year gone to the trash because of the ineptitude of some companies and their programmers who release buggy products.
To explain the error, a big deal of Flash functionality is based in movie clips. Movie clips act as containers, and have properties such as current frame, visibility and others. The error is, movie clips are objects, and inherit from a movie clip class. My Flash app generates in runtime a lot of movie clips, and stores them in an array. Is not the actual case, but assume for example that you want to put a lot of characters in the screen, and each character is contained in a movie clip. The different frames of the movie clip contains different states of the characters. Now, all movie clips inherit from the same class and are treated the same way. In runtime, I may tell (with a loop) each movie clip to display a certain frame; some do, some don't. The same code runs with no problem in Flash, but does arbitrary things in Air, which is my main concern (as the purpose of this thing was to release it as a mobile app).
Previously, I had made some things, with movie clips inside movie clips. For example, assume each character has a weapon. You could call the movie clip called 'weapon' inside the movie clip of the character, and make it visible or invisible. I tried to do something similar recently; these kind of things used to work perfectly in actionscript 2, but they fail, both for air and for flash in actionscript 3 (in a loop that executes the same code with no conditions over all movie clips, it will generate exceptions about some of the clips not having a movie clip called 'weapon', and me calling methods in a null reference). It is not possible to export as a mobile app if not coded in actionscript 3. I have made Flash test to try specifically if is a bug from Flash, and it is.
So as I see it, I can not make the program to deal with those movie clips if these are not generated in runtime (as opposed to making each one in design time and having named each one). Neither do I see a work around for this; The Air aplication is simply not running the code correctly.
So basically, I plan to remake the whole thing in C++, assuming there is a way to make apps from C++ code in each platform. I know how to program in C++, though I may be a.little rusty, but for 'console' (text mode) things; I have not dealt yet with events, or images on a window, or animation, or stuff like that in C++. I did Open GL long time ago, but when I tried to compile my old works recently, it would not even compile.
I expect that if I do the thing in C++, in whichever platform, assuming I am able to run it, it will do as I say. It will not get creative on its own, there will be no ambiguity, or it will fail with giving me no chance to do it differently. So C++ it is.
Basically, I need all the tips and info I can get to start making mobile apps from scratch, with the code being as most cross platform as possible. That means, if there is a library I can use in both Android and IOS (and desktop) for graphics, that includes at least transformations such as scale and rotation, and if possible apply color filters, and if there is a frame that in C++ allows me to handle the screen events in the same way for every platform, I would appreciate it.
Also, I would like tips on which compiler should I use to release for each platform, etc etc. Tutorial links and everything I can get, if I am gonna start from scratch making C++ apps for different platforms, including mobile.
Hopefully it will use open or free tools and frames, and since it is intended to be released as a mobile app, I hope there will be no restrictions as requiring me to release the code