An Exploration of BlackBerry 10's Programming API
Nerval's Lobster writes "BlackBerry 10 is completely different from previous BlackBerry operating systems — with good reason. Its core assets come from a company named QNX, which Research In Motion acquired in 2010. Blackberry 10 features include 'live tiles' that dynamically refresh with new information, as well as a revamped keyboard and security upgrades. But what really makes or breaks a phone is the quality (and quantity) of its third-party apps. Jeff Cogswell pokes through the BlackBerry 10 programming API in a quest to see what app developers can do with the platform, and how it compares on that front to Apple iOS and Google Android. His conclusion? Although some of the underlying components are showing their age, BlackBerry has 'spent a lot of time building up a foundation for a good development community.' He also goes over BlackBerry 10's viability for porting apps and building games. But will developers actually work with a platform with such low market-share?"
Is the API that includes bad_management() public or private? Either way the return value is doomed
This is exactly the reason I haven't learned Android development. Why have me learn new APIs for old things? Give me the same APIs that I'm used to on the desktop to the extent that these are compatible with the mobile environment, and then I'll learn the APIs that are specific to the niche I'm developing for. And that's exactly what BlackBerry has done.
Please correct me if I got my facts wrong.
Being consistent with the API is more or less meaningless if you've only got a few dozen users.
This is exactly the reason I haven't learned Android development. Why have me learn new APIs for old things? Give me the same APIs that I'm used to on the desktop to the extent that these are compatible with the mobile environment, and then I'll learn the APIs that are specific to the niche I'm developing for. And that's exactly what BlackBerry has done.
That depends entirely on what "the same APIs I'm used to on the desktop" means.
iOS includes large chunks of the Mac APIs, making it a great fit for Mac developers. Even if you aren't a Mac developer, you get all the C/C++ chunks. I'm pretty sure there is even a build of Qt for iOS. And if you're a Java developer? Blackberry might as well be another planet compared to Android.
So again, your definition of "new" API varies depending on where you are coming from.
My opinion is like this, but less antagonistic. Developers go to three places as far as APIs are concerned:
#1. Where the money is. Sorry blackberry you missed that train. iOS or android is going to be far better in that regard.
#2. Where it's fun. Something about business oriented phone software doesn't call me in that regard.
#3. Where it's really, really, really easy to whip out applications. Maybe, but I doubt it.
Having a few thousand users is meaningless if they don't pay for you using the API. Blackberry users have consistently shown they have money and are willing to pay for quality apps and games.
Depends on how much those users pay you.
If BB pitch is to corporate clients (still) - how do they plan to attract all these devs who certainly don't care about the enterprise and much, much smaller target market.
Our mobile app, we have built native for Android and iOS. We've had a grand total of one person ask for BB and one ask for WP8. We simply have no interest in investing the money to build for something no one cares about.
A few thousand? Developers don't seem to be having any trouble making money on Android and iOS even with free games. And the good games tend to have a much larger number of people playing them.
Sure it isn't like the early days of the platforms where it was basically just printing money, but there's still plenty of money to be had if you're providing something that people want.
Saying it, doesn't make it true. The numbers were well over a million z10 sold in North America alone. The q10 is expected to do even better.
I really want this to succeed. First of all, QNX is awesome. I had the pleasure of working with it back in the day when they had the 1.44M demo disk (http://www.youtube.com/watch?v=K_VlI6IBEJ0 has a video). At a time when GNU/Linux was working on getting POSIX-compliant and X was clunky and required some expertise to set up, QNX offered an OS with POSIX-compliance, real-time capabilities, a package manager, a GUI that worked out of the box, and managed to produce a 1.44M bootable diskette that showed off the OS with GUI and web browser.
Secondly, I want my software to be efficient. I'm sure you can do great things with J2ME, Dalvik, or even HTHL and JavaScript. But if you want the best performance or resources are at a premium (hello, battery-powered mobile devices!), you can do better by being closer to the metal. And we have APIs and programming languages that allow us to program closer to the metal. BlackBerry allows us to use those APIs and languages. The author of TFA makes fun of the BlackBerry APIs being in C. I see that as an advantage. You can easily build abstractions on top of low-level APIs. Getting efficiency back once it's been lost in someone's abstraction layer isn't as easy.
So, while it seems popular to make fun of BlackBerry these days, I really want them to succeed. I think they've made a great product that deserves our consideration. Of course, they have low market share and strong competitors - but then again, so did Apple when they launched the iPhone, and Google when they launched Android.
Please correct me if I got my facts wrong.
That is QT/QML means that it could be ported (or just recompiled) to Linux, Ubuntu Touch, Sailfish, or other platforms that don't have QT included but that is available (and that means most of alternatives). Is not a dead end, but a good training camp if not successful. Focusing where possible in what is not platform specific will help too.
your definition of "new" API varies depending on where you are coming from.
Yes, of course. I think iOS is good in this respect.
Android, no. Java isn't the native API for anything, and Android's flavor of Java isn't the same as the other flavors of Java. Having said that, it's obviously a viable platform.
Most other smartphone OS announcements start out by saying "you will develop in HTML and JavaScript", and at that point I stop listening to anything else they have to say. While these APIs are universal, they really aren't good for developing applications in.
Please correct me if I got my facts wrong.
Their tablet is really fast and slim but with no update to BB10, devs can only port older droid apps (from what I understand 2.3 and older) Comon bring out BB10 for the PB.
did you know that the US and Canadian versions of the Z10 are different? In the US it's the zee 10 and in Canada it's the zed 10. Amazing!
rewriting history since 2109
It's a programming API. This obviously means that RIM will let people make assemblers, compilers, and interpreters that compete with the likes of C, Objective-C, Python, and Scratch. ;)
You can hold down the "B" button for continuous firing.
It's funny, a study last year from Evans Data Corp (surprisingly?) showed that BB developers earned significantly more than their iOS and Android counterparts -- with a full 13% netting over 100k.
To your comment, a consistent complaint from Android developers is how difficult it is to make money on the platform. You can see this reflected in the results of the earlier mentioned study.
For the big-name players, BB might not be as attractive. For small and medium sized shops, however, targeting BB10 is clearly a smart move.
Required reading for internet skeptics
In a month and a half in the US and 5 months in Canada. The iPhone 4S did that in its first day and the iPhone 5 did 2 million its first day.
The Q10 will be the true metric though. There are a ton of people out that that have been waiting 2-3 years for the next physical keyboard phone. Q2 should be a good one for BB. However, once that initial flood comes through...
Care to name a "universal" API that is good for developing applications in? Something tells me you're fairly young and don't have a strong understanding of lower level systems. Different devices/OSes/systems are different and hence programming them is different.
Surely I can't be the only one that remembers when QNX made their source code available (under a look but don't touch license). It was very educational and useful. I even found a couple bugs and submitted fixes for them. But then they revoked access to the code just before RIM bought them. Too bad. I learned long ago not to depend on closed source operating systems. When Blackberry unlocks the source code, I'll buy one and start developing. Until then, I'll stick to Android.
Do you even lift?
These aren't the 'roids you're looking for.
"But what really makes or breaks a phone is the quality (and quantity) of its third-party apps."
Pundits keep saying this (over and over and over), but I tend to disagree. I and everybody I know who have Windows Phones generally don't see "apps" as a problem. Personally, there aren't any "apps" that are a deal breaker for me, because I use my phone for business. Games and "apps" are for the laptops.
I don't respond to AC's.
Supporting Obj-C isn't much good unless they also have Cocoa-Touch.
Source Link for you
Same study also found that "Android Market" was the most used, so it's attractive for volume (once your app is actually visible on the play store--as noted in the link I provided, that's the largest complaint about it).
This is exactly the reason I haven't learned Android development. Why have me learn new APIs for old things? Give me the same APIs that I'm used to on the desktop to the extent that these are compatible with the mobile environment, and then I'll learn the APIs that are specific to the niche I'm developing for. And that's exactly what BlackBerry has done.
Yeah, it's pretty ridiculous that in this day and age cross platform software developers like myself have to create an OS Abstraction Layer to get their stuff to port programs. I mean, OS's are supposed to BE the Abstraction Layer. Ugh. However, in most cases (Linux and Unix being exceptions via POSIX), the proprietary vendor thinks its in their best interest to create incompatible APIs and leverage vendor lock-in. Sometimes it's just out of sheer ignorance though, other times malice.
Being consistent with the API is more or less meaningless if you've only got a few dozen users.
It depends on who those users are. Believe it or not, not every "app" developer is trying to create some consumer-level app that reaches millions and millions of people. I own plenty of software from companies that may have only a few hundred customers, but they're doing just fine. Not every successful business has to cater to all people In fact, some of the most profitable businesses I know don't cater to all people.
I don't respond to AC's.
Erm... That says the study polled 400 commerical developers. In a random sample of commercial developers I'd be surprised to find a more than 1 Blackberry developer. Lets be generous and say there were 8. What significance then is "13% earn over $100,000? It means one developer earned over $100,000. Statistical significance? None.
Now, was it one of these surveys where they get a list of telephone numbers, and ring them up and ask if they'll cooperate with a survey? Or was it one of those ones where you get a modal pop-up on a web page, before you can access some article? Or was it one of those warez download pages where you have to fill out a survey before you can download the warez?
Are we really just believing any old nonsense that a company said were results of a survey?
Compatibility is a two edged sword. Being able to easily port Android apps makes that the easy path - develop for Android, still get BB support.. why would you bother writing for the BB API? That means your platform gets more apps to start, but very few unique ones - and many that don't make best use of your unique features/APIs.
Let's not stir that bag of worms...
The C standard library is insufficient for writing real user level applications. It is more for low level applications, systems programming, or simple non-graphical applications. Have fun with your CLI smartphone.
If the platform provides additional C libraries to interface with their device you have already lost the "universal" part of the requirement.
I thought some of the same things. I haven't bothered to sign up with EDC to see the details, so I'm not personally sure at all about the details of the study. I just thought I would at least provide a source for the data narcc posted.
Someone mentioned this above, but part of the problem with assuming BB missed out on #1 is in assuming that there's only money in greater market share. Remember that Blackberry's niche is more business than consumer. If someone can come up with an app that's attractive to business they can charge more, making up for the lack of market share.
It's similar to a discussion that cropped up the other week about the cost of medical software. It can often cost 10's or 100's of thousands of dollars because of a small, professional customer base.
Basically, just because you can't make money selling .99 cent games in the BB app store because of lack of market share, doesn't mean you can't make money on a $20+ app that's attractive to businesses who tend to provide employees with Blackberries.
As to what that app is, or even if it exists, I don't know. If I did I wouldn't be wasting my time commenting here.
"Always forgive your enemies; nothing annoys them so much." - Oscar Wilde
Sold one million to one customer alone in North America, that should be.
Given that no-one is admitting to that purchase, is it beyond the realm of belief that they brought those themselves?
Also, that article is from September, 2011... more than a year and a half ago. So how valid is that still today? I didn't find a nice chart for BlackBerry's market share in a quick Google search, and I would think that would be a relevant thing to look at in this. I did find that it was dropping after this article, and reached its lowest in February of this year. If BlackBerry's market share kept decreasing since then, however, it would be a safe hypothesis that app developers probably weren't making as much money on BlackBerry any more either. (I did see that BlackBerry's market share increased in April 2013 now, to 1.51% ... there is some promise there still)
Short answer: NO
Long answer: NO.
It's pretty hard to make money selling $0.99 games on Android too when you're up against hundreds of other games being released per day.
Most of those games are crap, or fun but unpolished hobby projects, but some of them are serious and polished with hundreds if not thousands of man-hours of development gone into them. I suspect few of them come close to recouping their team's time investments even when you consider that many of the teams are working out of India and other countries with similar income levels. There are plenty of fun, quality games with fewer than 100,000 downloads of the free version and fewer than 1000 purchases of the paid version, which means the devs can't have made much more than $2000 on the market, less when you subtract Google's cut and even less when you subtract taxes. A team of, say, three Indians can't live six months on that.
Developing a game is a long shot on any platform unless you're a studio with a proven team of good developers and designers and marketers.
Android, no. Java isn't the native API for anything, and Android's flavor of Java isn't the same as the other flavors of Java. Having said that, it's obviously a viable platform.
True, but if you're a Java developer, what's going to look more familiar: Blackberry's barely OOP C, or Android's Java-like API?
Correct, volume isn't always everything. However, that is only the case when there are large differences in profit margin. In this case, there isn't much difference. The Z10 (which I've used a little bit, not every day) is an average device these days with some neat features. Nothing earth shattering. Its as average as an iPhone or any number of Android devices. The sales however, have been disappointing. The largest factor, is that without any large distinguishing feature, most people have already moved on from Blackberry to other smart devices.
However, as I said above, its all about the Q10 for Blackberry. It has a much higher profit margin, and they will sell a ton. There are plenty of people out there just waiting for their "real" keyboard. With very little competition in that market, and a loyal fanbase in that market, they should do well. In the first quarter. They will probably even pull a million or so iPhone/Android users back with the physical keyboard. However, when you consider that Apple is averaging about 30 million units a QUARTER over the last two years or so, that doesn't really make a dent in market share. The Q10 will get most of its sales from people that have waited 2-3 years for the next generation Blackberry, that didn't migrate away to touch platforms. Blackberry's own estimates are that they will sell multiple 10's of millions of Q10's. Apple does that every quarter. Quarter after quarter. They have such a huge installed base, most of their sales at this point are people aging off of their iPhone 3gs/iPhone4.
My opinion is like this, but less antagonistic. Developers go to three places as far as APIs are concerned:
#1. Where the money is. Sorry blackberry you missed that train. iOS or android is going to be far better in that regard.
And surprisingly you (and most everybody else) would be wrong
#2. Where it's fun. Something about business oriented phone software doesn't call me in that regard.
#3. Where it's really, really, really easy to whip out applications. Maybe, but I doubt it.
If you know C, C++, QT, HTML5, Adobe AIR, or JAVA you can code for BB 10. If you don't want to code for BB 10 specifically but you already publish apps on Android it doesn't get much easier than uploading an APK (yes there are limitations)
"A person is smart. People are dumb, panicky dangerous animals and you know it." - K
A MILLION? Really? With LASERS?!?!
Sold or Shipped? Either are good news for Blackberry (at least in the short term) but developers care more about the actual sales.
I agree with your point, but would perhaps add a few extra bullet points.
#4. Where they already are. Tons of young coders started writing software for whatever type of computer was available in the living room rather than any rational assesment of which platform had the best dev tools. Tons of people will be handed blackberries by their corporate overlords, and have an itch to scratch. Those people already have full time jobs, so they won't be as prolific as full time mobile developers, but a lot of useful things have been generated by soembody who just wanted to scratch an itch.
#5. Where the competition is light. If the BB10 market turns out to be 1/10 the size of the iOS market, but has less than 1/10 of the developer focus, there may still be money to be made in that market.
#6. Where there are users. A couple of whiny users asking for their platform to be supported is sometimes enough to justify developer time. Especially for things like messaging applications, you want to be everywhere so that all the friends of your potential customer will also be able to get the app and interact with them. I buy multiplayer video games on things like Steam primarily because they support cross platform multiplayer. They don't have to be that great of games, as long as I know my couple of friends who have only OS-X will be able to play with the group.
These may all be relatively small factors for BB10, but it isn't quite dead yet. Just sort of pining for the fjords a bit...
BlackBerry support QT4.8, and 5.0 can be compiled. Digia (who now own QT) have ported it to Android and IOS, with Win8 on the horizon.
Finally, portable C++ apps.
And if you prefer something standards-compliant, you can code in HTML5 and embed that as an app.
Btw if you you do create web apps, BlackBerry own and develop the Ripple emulator.
What's not to like?
The zed 10's dead baby, the zed 10's dead.
"But what really makes or breaks a phone is the quality (and quantity) of its third-party apps."
Oy, this makes me feel really old. I remember when what made or broke a phone was its ability to make and receive calls well. What's worse, maybe, it's what I still select phones by.
Well, people develop for Windows Phone, and WE are not that many, either ;P
Blackberry doesn't have idiotic users waiting in line, throwing their old phones in the garbage just to have the new shiny each year because of some software based feature (that's been available on it's own store for every single one of their devices but apparently it's just too difficult to update and so it's arbitrarily restricted to the last 1 or 2 generations of devices.
I can only speak for myself here. I ported my (fairly successful) app to Windows Phone. My reasoning was that MS was big enough, and Nokia committed enough that they would do whatever it takes to make WP work.
It was a very bad use of my time, I get a bit of cash from WP, but it is a rounding error compared to iOS, or even Android.
It may be that Windows and Nokia will do better in the future, but for now, it is an unrewarding platform.
Blackberry have spent a bunch of time trying to convince me to transfer my Android builds over to their platform, but even spending a day or two to make the necessary tweaks feels like a bad investment.
VLC Remote for iPhone and Android
There are 80 million BlackBerry users and growing. You don't think you can sell even a few hundred copies out of 80 million users? Even if you make 10x more money on other platforms, it never hurts to add an extra few % to your bottom line.