Weekend Coder: Navigating developer resources

By Brian Scheirer on 2 Jun 2013 02:38 pm EDT
2
loading...
0
loading...
45
loading...

There are plenty of resources out there to help you develop apps for BlackBerry. The usual go-to spot is BlackBerry’s developer site. The next best place for getting help is from other developers. Developers tend to be willing help other developers, however to receive help you need to go about it in the correct manner. When you go looking for help there are certain do’s and don’ts you should follow, so in this posting I’d like to go over some of the resources available to BlackBerry app developers and how to effectively use them.

The main places to look for help are BlackBerry official docs, official BlackBerry forums, 3rd party documentation, CrackBerry developer forums, and generic resources (books, websites, etc.) for specific coding languages. Let’s go ahead and take a closer look at each of these resources.

BlackBerry Official Docs:

Use of the official documentation is pretty straight forward. The documentation provided by BlackBerry for each platform is extensive, and each platform is broken out into its own microsite: Android, Cascades, Native C++, Air, and WebWorks (HTML)…. Oh and good ol' BBOS Java and Themes. (But nobody cares about these anymore, BB10 all the way!)

Once in your platform of choice, the documentation is further broken out into subsections for finer details on particular topics. You’ll find topics such as UI features, navigation, sensors, and API extensions. Also, there are official BlackBerry open source example apps for each platform. These samples are not only there for you to look at and see how things work, but you are free to use the code in your own apps! Digging a bit deeper into BlackBerry’s github repository you will find additional community submitted open source apps for your platform. Again you are free to use the code in these samples in your own apps. Best of all, these microsites are searchable. The search box on each microsite is restricted to that particular microsite documentation and its associated forum. This is very handy to use if you know the name of the function and/or element you are looking for without navigating through the documentation menus.

Next, I look at the BlackBerry developer’s blog as an extension of their documentation. Their blog spans all topics/platforms. They post a few times a week and it's definitely worth checking these articles because not all of it ends up in the main documentation site. Not only are these articles helpful, but here’s a chance to directly interact with the BlackBerry developer relations team. All the members of the developer relations team monitor these articles so feel free to use the comments in these articles to ask for clarification.

Finally, independent of your platform of choice, BlackBerry has provided a universal set of BlackBerry 10 app guidelines. The topics covered in this section are things like icons (size, shape, colors, etc.), menu uses/placement, and how your app should generally look/feel to give users a familiar “BlackBerry 10 experience.” (NOTE: Games are often excluded from these guidelines.)

3rd Party Documentation:

Most of you guys are probably aware of my sites: www.BBcascades.com and www.bbcascadescode.tumblr.com for examples/write-ups for Cascades. However there are a few others I use (in no particular order): www.twocasualcoders.com (Cascades), www.opensourceBB.com/osbbx (Cascades, WebWorks), www.BoredWookie.net (Cascades), www.Filearchivehaven.com (All languages except Cascades). Beyond what these guys post on their sites, they often have commenting systems/contact info so that you can ask them direct questions for either a clarification on one of their postings or to request other forms of help.

Saving the best for last, be sure to check out all the other articles on the Weekend Coder topic here on CrackBerry!

Official BlackBerry Forums:

Here’s where things may start getting tricky for the novice developer. Maybe tricky isn’t the right word… intimidating? Here’s the low down, developers in those forums aren’t there to hold your hand or have casual conversation. Don’t confuse that with they won’t help you with “basic” or “easy” stuff, they just don’t want to have a lot back and forth before getting somewhere. Let me illustrate this with an example:

DON’T DO THIS:

Title: Button won’t work

Question: I have a Button and I want it to change the color of my background, please help?!?!

Odds are most people will ignore you. They just won’t take you seriously. Also most will assume you didn’t actually try anything and are not willing to learn, you just want answers. A better way to approach this would be:

DO THIS:

Title: Button to change Background

Question: Hey guys, I have the following code:

[paste your code here]

And what I want it to do is have the Button change the color of my background from Red to Blue. Any suggestions of what I am doing wrong?

Few things to note in the correct example, the title is a better match to the question and there is code posted. By showing the code you tried, you let whoever ends up helping you solve your specific problem and give them a frame of reference of where you got stuck. However don’t take this the wrong way and think you can post 3 pages of code and have others debug it for you. The idea is to isolate the issue and ask a specific question with a specific answer.

Next the BlackBerry support forums are set up in such a way that threads can be marked as “solved.” So when somebody answers your question, mark their response as the solution. Only the original author of the thread can mark something as the solution, so if you ask the question it is YOUR responsibility to mark the solution response. This serves a few purposes. First when others search and they come across your thread in the future, they can see the solution to the problem without reading the whole thread. Next, developers (myself included) are a bit vain and like to have their ego’s stroked. So marking the response as the solution makes us feel all warm and gushy inside. Furthermore, post “likes” stroke developer egos too. So if you are not the original author and you found somebody’s response helpful, “like” their post. Post “likes” also give developers Jamzone points that they can redeem for BlackBerry swag. So, not only are we vain but we love getting free BlackBerry swag for helping users in the forums.

Another portion of the BlackBerry forums is the Knowledge Base section. Here developers (including BlackBerry employee developers) write how-to articles on various topics.

Last thing to be aware of in the official BlackBerry forums is that there are not only platform specific subforums but a few others for things like Advertising Services, BlackBerry World, and Built for BlackBerry, so please make sure you are posting in the correct forum. Wrong forum topics often get ignored/buried (and usually not moved to the appropriate forum).

 CrackBerry Forums:

CrackBerry developer forums tend to be a bit more casual than the official forums. But the general rules/etiquette explained above still apply. Please be specific with questions, comments, ideas, requests, etc. And since the CrackBerry forum is more casual, feel free to have a bit more small talk here, just keep it developing related. One nice advantage here is that developers of all platforms check these forums so it is a good place to discuss general developing topics, whereas someone like me never really goes too far outside of the Cascades forum on the BlackBerry site.

Generic Sources:

One of the things BlackBerry prides itself with developing for BlackBerry 10 is the use of standard languages. For instance, Cascades is C++, Qt, QML, and JavaScript based. Native is C++ based. Air is ActionScript based. WebWorks is HTML5, CSS and JavaScript based. For the most part all of those languages can be easily found outside the world of BlackBerry. That means there are plenty of resources out there for each of these languages, so pick your favorite search engine and type in your language to find plenty of sites.

One great generic resource is www.stackoverflow.com. This site is a Q&A forum for all types of topics on all languages. I see plenty of BlackBerry related questions/answers posted there too. Just be sure to tag your question appropriately so you get the right audience to find/answer your question.

However, realize these generic resources won’t necessarily be geared towards BlackBerry apps. Furthermore, they may not even be geared towards mobile apps, as these languages are relevant in the desktop space too. So just be aware of this when using these resources.

As a recap I hope this post helps answer the age old question, “Where can I look to get started in developing (for BlackBerry)?” I feel like we’ve gone a step further today to not only point you in the right direction, but how to effectively use these resources. If there are any topics and/or resources I’ve missed feel free to post them up in the comments. See you guys next weekend!

Reader comments

Weekend Coder: Navigating developer resources

32 Comments

Can't wait to get coding. This will surely assist at some time. Thanks for taking the time has post this.

First of all let me say I have really been enjoying this series as a "weekend developer " second, are there any recommendations for a good qml reference? I haven't found the online tutorials very good and can't seem to find a good book either....

Posted via CB10

Thanks! Have started trying to find resources to get coeding some apps that I have somewhat rough idea of what I want to do. This should help a lot.

Hey, Brian. Warning: No one ever expands on C++ code utilizing QT goodies. It's always, 'here's qml, and here's just one little c++ thing, maybe a couple signal/slot things' but that's it. We need an advanced tutorial of multiple qml screens doing lots of calls to the c++, and c++ pushing a lot of data back to the qml.

That is all.

Anyway, still super happy that you write this column.

Posted via CB10

Agreed! I would very much like to see such a resource. Wading backwards through the examples can be tiresome.

Posted via CB10

Hi Brian!

I really like the weekend coder a lot. The idea is nice, the writing style is very good. Good job and go on doing this, please.
You know what I'd really like? If you'd take us from a blank desktop all the way to getting started with our first app. Including anything we need along the way from the IDE to the emulator to the first lines of code and what they mean to actually testing it on a device. From there you could give us code examples of different UI elements etc. I would totally love it. I used to code a lot and even on mobile devices (J2ME) and good tutorials with working and well-documented (comments!) code is the best to learn!
Thanks,
-pac

Good write-up, Brian. A few useful additions:

The recordings of the JAM sessions are a good way to get an introduction to a specific feature or platform:
https://bblive.blackberryconferences.net/2013/connect/search.ww#loadSear...(10367)=11586

Some generic video tutorial series:

Introduction to generic C++: http://www.youtube.com/playlist?list=PLnE1jOYUw8i4wr4RY8RRbeT4Gnn-Gt665

Introduction to C++ with Qt: http://www.youtube.com/playlist?list=PL2D1942A4688E9D63

AIR topical tutorials: http://gotoandlearn.com/

The Dev version w/ the keyboard looks way better then the Q10 IMO. I'd buy one over my Z10 in a heart beat.

Spot on with how and how not to use the developer forums.

When somebody waltzes in with their first post and says "I want to do xyz non-trivial coding task and I flailed around with zyx vague description of pasting in some semi-random code I found somewhere, and it 'didn't work', but I'm too 'busy' to paste in so much as an error code - so will somebody please help me right this minute with a fully implemented and commented and tutorialized canned piece of code, because I need to get this app done tomorrow", and then 4 hours later they post "Why has nobody responded?!?!"* it totally screams "I am lazy beyond the pale, and I want others to do my work for me".

*This happens in the dev forums; the language is only slightly dramatized.

It's nice to see these kind of posts specifically targeted at developers, I am no developer but these type of posts really encourage developers to start creating great apps!

Posted via CB10