08-17-2013 01:16 PM
My goal is not to just complain, but to see if there is any way to salvage 3-4 weeks of (seeming) wasted effort.
I am a very experienced developer and, among other things, have years of c++ and QT experience outside of BB10. I am new to BB10. I read a bunch of docs and concluded that the app I wanted to build was maybe possible in 10.1, and definitely possible in 10.2.
Now that 10.2 gold is out, without any docs or idea what "Hub Integration" actually means, it seems my app simply can't be built on Blackberry 10. I am willing to change quite a bit about the app to find a way to make it work. All I was trying to build was as close to native integration with Google Voice as possible.
What I really wanted: to replace the native dialer with a VOIP one (libjingle-based) via google talk/xmpp/jingle, and to have a "Google Voice" account type in the Hub for both text messages and calls. Once I realized the bb10 OS would never allow intercepting outgoing calls, I came up with compromises. The bb10 invocation framework is more powerful than Android's intents on paper only; in practice, all of the useful things I have tried to do have failed. I basically wanted to make a GrooveIP for bb10, which is impossible.
What I thought I could settle for: a headless long-running app that adds a ton of invoke targets for contacts, phone numbers, text messages, etc., allowing the user to long-press on any such item in the Hub, Phone, and Contacts apps and choose "Call with Gvoice" or "Text with Gvoice". It's an extra step, but it's clear for the user and prevents me from making any real UI. I would much prefer to never make my own address book or dialer or such, and use only the builtin ones, which this approach would allow. According to the docs (https://developer.blackberry.com/native/documentat
What I built: Since I mistakenly trusted the docs, I make a newbie mistake and decided to build a bunch of the business logic and test it before wiring up the (small and simple) UI. I made a few elegant classes that automate authentication to google and calls to google's (undocumented and not exactly public) voice AJAX APIs. I next got code working to find the google voice mapping number for any phone number, and add it to any bb10 contact. I then added a bunch of invoke targets (and actually burned at least a week getting these right; the documentation could use about 5x as many examples here), and eventually found that native apps just ignore 3rd-party invoke targets (something I did not see documented anywhere, and I searched quite long and hard).
The theory was that the first time any contact texted or phoned (in or out) via a google voice mapping number, I would save it to that contact under a special label. Then if you long-pressed on any non-gvoice-mapped number in the Hub/etc., and chose "Call with gvoice", I would check for a mapping number, if not found, looking it up, save it in the contact, and call the mapped number. All the google-related parts are working for me, but few of the bb10 parts.
The question: Please, is there any way to save my app? Is there any way at all to have some sort of native integration for a third party app in the native apps (Hub, Phone, Contacts)? In the beginning I was just going to spend a week making this for myself, since the only thing I miss on my q10 from iOS/Android is better google voice. On Android it's easy with GrooveIP or similar, on iPhone it's easy with a jailbreak or by using Sprint. The Sprint integration is the same for Blackberry phones, but I now have a real need for Verizon's vastly superior LTE coverage in my day job (where I spend a lot of time using SSH on the road in a moving vehicle, which is only feasible on LTE).
Then when it turned into a month, I figured I would release it on AppWorld just so more people could benefit from the effort and give bb10 a potentially "killer feature" for the platform.
Now I just want to find any way at all to make something close to the original goal so I can use my phone with less pain and put this cursed project behind me.
Please, only respond if you have concrete insight or useful ideas/feedback (as in, you either work for Blackberry or are an experienced BB dev). I have already read literally the entire set of documentation on Cascades for 10.0 - 10.2, and built and read through every single example app in the repo.
08-19-2013 03:44 AM
08-19-2013 07:15 AM - edited 08-19-2013 07:15 AM
Thanks for the reply! I think the first questions may actually be a bit higher-level:
You can see a couple of my experimental samples in the thread at http://supportforums.blackberry.com/t5/Native-Deve