Development for Blackberry 10. First impressions

    At the end of last year, I received for personal use the Blackberry 10 Alpha, a prototype, then not yet released, Z10. Naturally, I had a desire to write something for the new platform, the more it looked very interesting.
    Now the application is ready, and I can share my development experience in comparison with Android / iOS.


    IDE


    This is a familiar Eclipse with a set of extensions from Blackberry. Plus - you don’t need to learn anything again, the environment is familiar, minus - the IDE is delivered only as a set, and not as a set of extensions, it’s a little inconvenient to keep several eclipses on one machine for each vendor. However, all this applies only to the development of native applications on the new Cascades framework , Android / AIR developers can not abandon the usual tools.

    Cascades sdk


    In essence, this is Qt4 + QML, and if everything is simple with Qt4, then in QML the standard elements are replaced with Blackberry UI components, only the syntax remains. There is a plus in this - all programs will behave the same, but there is also a minus - in terms of functionality and flexibility, the new components are inferior to the regular ones, especially in terms of layout convenience and “flexible” layout. Getting used to layout was generally a little difficult, especially to the fact that the margin and padding properties, although present in all elements, do not always affect the result (it depends on what lies in the container - the control, or another container) .

    Native sdk


    This is a purely C API and next to the Qt object code it looks alien. You can’t do without it completely (for example, if you need Bluetooth), but in the examples there are ready-made wrappers that you can take so as not to write your own.

    Existing problems


    • The QML editor depends on hardware acceleration and is not always launched at all and not always, for me it, for example, worked with SDK v10.0, but turned off in beta 10.1. You can work without a preview, but it takes more time. There is no preview mechanism for various screen resolutions and orientations, as in Android, too, you have to check everything on the device.
    • The simulator works extremely slowly, in speed it does not reach not only the iOS simulator, but also a full-fledged Android emulator. In addition, since the simulator has a different architecture from ARM, the application for it must be assembled separately, before starting, switch the Build target.
    • To activate the development mode, it is necessary to put a password on the device, at least six characters that are not in a row, this password must be entered every time after a long downtime of the device, as well as every time you connect to a computer for debugging. The development mode itself is turned off after a reboot, and it must be turned on again.
    • The certificate that is created for applications in debug mode is issued for a couple of weeks, then you have to recreate it, it’s not difficult, but it takes time again.
    • SDK and API are actively developed and updated, as a result, some examples (including from the official site) do not work correctly, due to irrelevance.
    • There is no normal way to upload your fonts to Cascades.
    • The multiple configuration support mechanism is inferior to what Android has. Even despite the fact that there are only three resolution options (for dev alpha it is not the same as for z10), this disadvantage is already felt.
    • C ++. I really like this language, but after C # / Java, every stream of compiler errors caused by one wrong point causes a stupor.
    • There are still very few questions on the new platform on StackOverflow.


    pros


    • Website for developers. It is very convenient, contains a lot of information on the API, and on GitHub there is a rich rap with a bunch of examples for all occasions. Moreover, the examples are full-fledged test programs from which you can take the code and process it locally. For each topic, there is a series of small articles that allow you to quickly begin development without studying the documentation far and wide.
    • Qt. One of the best cross-platform frameworks with excellent documentation, a solid community and a database of ready-made solutions.
    • The native export mechanism does not allow you to sign an application with a number that has already been signed once. There will no longer be assemblies that mistakenly forgot to change the version number.
    • Blackberry 10 is a fairly open (in terms of API) platform. Much is available to the developer, but there is also a “permissions” mechanism that does not allow programs to access important subsystems or data without user permission.
    • There is a regular mechanism for program interaction, similar to Intents in Android. In power it is slightly inferior to the latter, but for the most common tasks it is enough with the head.
    • Easy porting from Android. I translated two applications without a single error in half an hour. This is a great result. Of course, only Android 2.3 is supported and the received ports do not look native (but this can be corrected if you take care of users). It is only necessary to disable Notifications before porting, since there is no similar mechanism in Blackberry 10, and messages will be streamed in the Hub, annoying the user.
    • Support for J2ME, AIR, HTML5


    Market


    The store has not changed at all and looks the same as it was during the old J2ME Blackberry devices. Against the background of an excellent site for developers, he is a pensioner on the basketball court. User convenience is also below average. To top it off, my first application has been “pending” for more than two weeks (a term that even iOS programmers are already annoying).

    Summarizing, I will say that, despite the youth of the platform and a number of obvious shortcomings, it makes a good impression, both by the device itself and by the main tools of the developer. In addition, the list of these tools is regularly expanding, and they themselves are updated. For example, Exporter for PSD graphics was recently released , a plug-in for Visual Studio is under development.

    Also popular now: