Tools for mobile development

5

I'm looking for mobile development tools mobile . I started looking at a CodenameOne call, for example. However I would like some tips on which tool to choose.

I have listed below some criteria I would like the tools to meet. I ask that if you have good choices that meet all the requirements leave me as an answer (as I think there will not be many that will pass the criteria, the answer is finite).

  • Be free.
  • Get deploy for Android, iOS and Window Phone
    (and if possible also for other plafators).
  • Use the Java language
    (and / or client-side languages such as HTML5 and JavaScript).
  • Have good simulators
    (and preferably not as heavy).
  • Be robust, allowing complex games to play
    (but also simple games like Flappy Bird).
  • Be in constant development and widely used by mobile game developers.
  • asked by anonymous 18.05.2014 / 23:59

    1 answer

    7

    Qt Framework

    As I have more experience with this and can not speak of others without having tested, I can suggest the framework Qt 5.2+ . It caters nicely to some of the cases you quoted, but not all of them. However, I will quote you to add to future research.

  • Qt is available on the LGPLv2.1 license (which can be used for commercial purposes). In addition to GPLv3 (open source) and also has a commercial license (which allows static linking, support and etc.).

  • Qt currently supports Windows, Linux, Mac OS X and Solaris. Already for mobile, it supports Android, iOS and, as of version 5.3, Windows Phone 8. It seems that they are also working on Tizen support. In addition to these, you can develop to BlackBerry and Ubuntu Mobile reusing a lot of the code.

  • This is the part that even meets your requirements. The languages used by Qt for mobile are C ++ and QML. Since most of the work is possible with QML (graphic part, more basic logic). However, QML is nothing more than a mixture of JavaScript with a CSS footprint. So, if you know JavaScript and CSS, you have no difficulty.

  • Simulators depend on the platform to which you are developing. So that does not depend on the tool. However, one thing you can do with Qt is compile to PC and test for minor modifications to it, which is much faster. So you will only send the app to an emulator or to the device when you want to see the actual behavior.

  • At least for desktop Qt is complete, it has a very large library and is well documented. Although it works the OpenGL base (using ANGLE for WP), I do not know if it is viable to make complex games because the availabilities tools are clearly focused on application development and at most 2D games. I think the ideal is to use something specific if the goal is more complex games.

  • Qt is in constant development (they usually release a new version every 4 or 6 months) and is well supported by the Linux community (KDE, for example), but I can not say that it is widely used for mobile because this support was started recently.

  • Considerations:

    The main advantage in this framework is ease and speed of development. The QML language makes it easy to develop interfaces that would natively work. The operation between Android, iOS and Windows Phone is very close, differentiated only in really specific issues of the systems.

    Speaking of disadvantages now:

  • When you need to use native system resources, communication between the Qt code and the native code is complicated. And since mobile support is recent, there are not many examples on the internet.

  • Qt libraries are very large. Applications will easily weigh 10MB, which may be bad for some users.

  • Not all modules are ready. Until last time I checked the bluetooth module, for example, it was not supported by all platforms. In version 5.3 (coming out in the coming weeks) Android and iOS support will be virtually complete, but for Windows Phone, some modules will only be available in version 5.4.

  • Apps developed in Qt will not have the look and feel system default (not yet). What can be good and bad (depending on what you want to do).

  • Examples

        
    19.05.2014 / 01:12