RIM is Doing it Right

Finally someone got it right! RIM is the first company that understood that there is no way you can be successful without having 4 things (and implemented all of those):

  • A good, stable and professional OS that fills the needs from teenagers to business people.
  • Beautiful interface that is everywhere and is extremely easy for developers to use on their apps.
  • Developer support/excitement.
  • Carrier support.

Impressions from The BlackBerry 10 Jam

I just got back from the BlackBerry 10 Jam São Paulo and what I saw there was just awesome! I’ve been developing for BlackBerry since I got my Torch 9800 (just for fun) in March of this year and as soon as I started developing for it I saw that RIM was really committed to developers. They provide all the tools, SDKs, frameworks and support for you to create the most awesome apps.

They saw that if you don’t have a developer community that is excited about the future they just can’t continue with their business since after Apple introduced the App Store consumers got addicted to apps and if a platform doesn’t have the apps the need/want they just go to another one. Everyone at The Jam was extremely excited about BlackBerry 10 and how innovative it will be.

I talked to some people there, from business mans that were there only to see the next step from Rim, to developers from other platforms that were thinking about migrating to BlackBerry. The business people were really excited about the new UI/UX of BB10 and how great it will be for multitasking. The developers were really excited too about the UI/UX, but a lot more about how easy it was to develop gorgeous apps for it.

One interesting quote that I got there was from a awesome Android/iOS developer that said: “I submitted a FREE app to Google Play. It made a good success there, but in about a month there was a exact clone of my app being sold on Google Play and other app stores for Android.” He was there because he loved how RIM really cared about developers (which is not true for Apple and Google).

The Dev Alpha

Another thing that RIM did right.

I was one of the lucky developers that was able to get a Dev Alpha (What is the Dev Alpha?). The idea behind distributing prototypes for developers is just amazing. I’m the kind of developer that hates emulators and only develop using real hardware. That’s why the Dev Alpha was a must for me, so I could start developing for BB10.

This is really a awesome idea that we don’t see very often: OEMs distributing prototypes for developers so they can start building their apps to make sure that when the platform is really for commercial release there will be a great selection of apps available on day one.

Monetization

One of the most awesome talks from the BlackBerry 10 Jam, in my opinion, was about monetization of apps in the App World and how it’s proven (by those analytics and research companies) that BlackBerry developers make more money than the average Android/iOS developer.

I totally agree with this because everyone knows that the piracy rates on Android are absurd and the fact that for some strange reason the average Android user doesn’t like to spend money on apps (even if it’s just 99 cents). On the iOS side piracy is a bit of a concern too, but less than on Android.

When we compare to BlackBerry piracy isn’t a big concern since RIM is very well-known for having the best security on their products, also as they showed on the conference the average BlackBerry user loves to download apps and think it is ok to pay for apps that are good and fit their needs.

Conclusion

RIM is really making their path into the future and will definitely survive this phase and get the 3rd place on the mobile market, since I really can’t see Windows Phone going forward with all these bad decisions from Microsoft, how they can’t get outside developers into their platform, and how they are having problems with OEMs to get onboard. (poor Nokia, no updates for you…)

Using bbUI’s onscreenready and ondomready to Dynamically Change Your HTML

I started playing a bit with BlackBerry development these days and since I’m not the best at Java (also hate how it’s difficult to do simple things with it) I choose their awesome framework for HTML5 native web development called WebWorks. I really loved it because it’s like PhoneGap, but a lot easier to build plugins (extensions on WebWorks) for it to make your native WebApp feel a lot more native.

Another great thing that RIM did to make the life of WebWorks developers easier and create apps that are exactly like native ones is a Javascript framework called bbUI.js, which is like jQuery Mobile, but seriously, it’s a lot more than just a UI framework. It makes it a lot easier to interact with the OS, override the back button for example, and makes your development cycle look a lot with native development by using screens. On this post I’ll teach you how to dynamically manipulate the screen’s HTML before it’s processed by the bbUI library.

One of the first things that you’ll notice after you start working with bbUI is that it’s not just a collection Javascript functions and CSS stylings, it actually reformat and customize your screen’s HTML before it’s shown to the user. As an example, this simple image-list item declaration in your screen HTML source looks like this:

After it’s processed by the library and shown to the user it will look like this:

Hopefully we can easily manipulate our screen elements and other things before and after it’s processed by bbUI. This is done with the bb.init() function (you can always read more at their documentation). This will be called when the application starts and can be used to listen to events like when a screen is loaded. The main ones are onscreenready and ondomready.

onscreenready: This event will be fired before the sources get processed by the library, so here is where you should manipulate, add or remove things from your HTML source using Javascript, so after it’s done the code will be passed to bbUI to be processed.

ondomready: This event will be fired when the screen finished loading and it has been already processed by bbUI and shown to the user. Here you can put things like alerts and other things that will be used to interact with the user, also some little editing to the screen’s source like renaming a field grabbing some information from a field and etc.

Here is a example of a bb.init() call:

The code is almost self-explanatory. The id is the name, second argument, you gave to a screen when you call it to be processed, for example bb.pushScreen(“screen/main.html”, “main”). And element is the screen source code, which is used to be manipulated before the screen is loaded.

A little problem that some developers might come across while using bbUI for the first time is that when you want to append or change the HTML of the screen before it’s processed by bbUI you might write your code like if the HTML was already loaded onto the screen, but it’s not. Here is an example of a code that won’t work, used to populate a image-list and then show a button that was hidden (using jQuery):

The main problem here is that it’s using document as the source to be manipulated. Since bbUI still hasn’t appended the screen into the document it will give you an error. In order to correct this you should replace document with element, that is passed by the onscreenready event. If you have any jQuery code, just add element as a context argument as shown below in the corrected code:

That’s it! Now you know how to use the onscreenready and ondomready events to dynamically insert or modify your bbUI screen’s. Any questions or suggestions just leave a comment and I’ll reply as soon as possible.

RIM is The Only One Thinking About The Developer

Yesterday I made a decision based on how much the company cares about their developers. I bought a BlackBerry PlayBook because RIM (maybe because they are desperate for users/developers) is the only company that cares about there developers choice.

They are the only company that is really looking for and taking time to improve HTML5 app development,. Native support for Adobe AIR, so Flash games and Flex apps can be easily ported to their platform. And as usual Java and C/C++ support for existing BlackBerry developers and new developers looking forward to build fully native apps and awesome games.

Companies like Apple and Google are not thinking about letting their developers have choice, only the user can have it (usually on the Android side it’s causing fragmentation and on the iOS side is just selling older hardware for more affordable prices).

That’s why I bought a PlayBook and that’s why my choice for the next devices is going to be based on how the company cares about my hobby of developing apps for them.

RIM Doesn’t Have a Clear Vision of The Future

I was reading/analyzing The Verge’s StoryStream for RIM and as far as I could understand RIM doesn’t have a clear vision of the future. In my opinion they think that people are going to stick (keep updating) with their Blackberry’s because of BBM. The last Engadget Mobile Podcast has a really good point about it.

In my opinion what RIM needs is a completely redesign of their lineup, put large touch screens, just that London prototype, but the most important is that they must do this before the holiday season of this year or they will be signing their bankruptcy letter.

Gadgeteer21’s comment at a great Verge article about it:

Only Samsung is truly succeeding with Android with even HTC falling somewhat. If Motorola, LG, Sony(Ericsson), Dell, Acer, etc are all struggling with Android, how is RIM going to differentiate their Android from them?

More importantly, do we really trust RIM to be agile enough to integrate their own stuff on top of Android fast enough? They are having hard time doing it with their own platform.

Another great comment, by Fuhrer D, on the same post:

I was an Android guy, Samsung Moment (loved because of the keyboard), Galaxy S (hated because of no keyboard), and a Galaxy Tab 10.1 (before that I was WinM 6.5, man do I miss that phone (Touch Pro)); then I got the Playbook on a whim because of the price and I love tech. I had never owned a BlackBerry before, but I was highly impressed by the hardware (the speakers, the screen), the software (how fluid it runs), and the portability, it easily outpaces my Galaxy Tab 10.1 (which has been regulate to a drawer). A few weeks later, I picked up the 9850. You know what, I haven’t missed a beat. The only two (yes two) apps that I ever used on my Adroids were TunedIn Radio and Google Talk, and guess what, they are both there. I have to say that while I still miss a physical keyboard, the virtual keyboard on the 9850 is leagues better than the one on the Nexus S. Plus, the connectivity between the phone and the tablet are second to none (bridging for free internet browsing can’t be beat).

I’m probably a special case, because I’m not app guy, or facebook guy, or twitter guy. So maybe I would need more phone, if I was into all that garbage. But then again, I could just use the full broswer on the Playbook.

I’ll probably see how the BBX phones are, and if they are like the Playbook, I will probably stick with BlackBerry for a while. At some point however, I’ll be picking up a Windows 8 tablet, and I’ll see if that make me pick up a WP7 phone.

Yes I singed up today, but I just wanted to give you guys a view from a person without tech brand loyalty.