06-29-2010 07:33 AM
I keep running into problems developing BB Apps where my code works perfectly fine on all simulators, but as soon as I make the product live, dozens of reports of being "unable to connect" (or some other bug) come flooding in from a random set of devices (the latest wave is from Tour owners on Sprint, and of course the app works fine on the Tour Simulator for Sprint using the same OS) I'm not able to go out and buy a Blackberry for every model on every carrier, and the manpower to do such testing is beyond what my company can handle anyway.
What I am looking for are tips from some experienced developers. What do you do to circumvent this problem? How do you verify that your code will run on real devices? When you get hit by a real-world only bug, how do you troubleshoot it?
Solved! Go to Solution.
06-29-2010 07:53 AM
i don't recall the name just yet, but there is a company that provides real phones for testing purposes remotely.
other than this, logging goes a long way in finding these problems.
we have also invested a lot of time into our connection management classes (which we re-use for all apps).
06-29-2010 08:11 AM
Agree completely with Simon.
deviceAnywhere is the one that comes to mind, there is at least one other company that was at the last but one DevCon, but I can't remember their name.
Every new customer has a new experience with networking and you slowly build up your code to handle the cases. Have to say we are lucky, because we mainly deal with corporates, so use BES connections mostly. And in the UK, there are only 5 carriers, so it is easy to code a quick test and determine what APN settings to use for each.
Re debugging, one method I would recommend is to write your own log and provide your users with an easy way to email it to you. In fact, offer to send it when you know you have a problem.
06-29-2010 07:27 PM
Thanks for the tips, guys. I'll keep the third party testing providers in mind.
FYI, I found the problem that inspired this thread using logging ... the service book entry for MDS and public MDS info had been renamed in the new version of the OS and my app could no longer find them.
Since you were both nice enough to answer, and I can only tag one reply as "the solution" I'll give the other one a kudo as the consolation prize. :-)
06-30-2010 04:39 AM
well, you can give peter a kudos as well, no harm done
how are the service books renamed? just in case, i think my network code still works fine.
06-30-2010 07:18 PM
The service book entry for public MDS used to be something like:
Blackberry Internet Browsing Service [BrowserConfig]
Internet Browser [BrowserConfig]
That's on Telus Storm devices. The original service book entry was on OS 126.96.36.199 and the new one is on OS 188.8.131.529 I don't know what the naming is on the new Sprint Tour OS.
The problem I have is it sets the precedent that the name does not have to be constant ... and I don't know what to search for in that case. Is there anything wrong with just trying all BrowserConfig entries? My instinct is that this tactic would be a security, spam, and timing problem. Thoughts?
07-01-2010 03:32 AM
i suggest to use attributes of the cid and uid to check for the correct servicerecord instead of the name. i think the network diagnostic tool used this approach: