IKANGAI Solutions. e.u.

Mobile Business Solutions

T F G+ E

Posts Tagged ‘Bluetooth’

iSENDu bugfix – Part 2

December 29th, 2009 by Martin No Comments

After fixing the image rotation bug, we decided to make a proper update and we added a few new features. However, this proved to be a bit more difficult than expected. We encountered a well known problem in computer science, co-called race condition. Simply put, this happens if two or more processes access and update a common resource and this update leads to inconsistencies. This is typically difficult to debug, because debugging itself might change the execution of the program by introducing execution delays. This can either lead to a race conditions or not – it’s a bit like the famous Schrödinger’s Cat.
As you can imagine, fixing such a bug is not easy. In the case of iSENDu we experienced this when sending large amounts of data using bluetooth from one iPhone to another iPhone. The data receiving iPhone used a progress bar to indicate the overall progress of the data transmission while the sending iPhone did not. As a consequence, the receiver spent a bit more time on processing the data (and updating the progress bar). In the meantime, the sender continued to send the data at unchanged speed which lead to conflicts at the receiver (data was received before the data was processed and the receiver simply crashed). The funny thing was, that this behavior didn’t occur always and the insertion of debug messages in the code only made things worse and even less predictable. We noticed that if there are a lot of debug messages on the debug screen, the execution of the application gets slower. As we understood it, the main reason for this is the low level implementation of the delegate method
- (void) receiveData:(NSData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context
This method is called if data from another peer arrives. There is no buffer and data arriving to fast can lead to application crashes – at least we experienced such a behavior. One solution is to implement a raw data handling buffer that waits until all data has arrived. The other solution (as we did it) is to implement sender and receiver in the same manner (both showing a progress bar).
We will investigate this issue further and keep you posted about our findings. Sample code will be available as soon as we’ve submitted the new version of iSENDu.

Your ikangai team

Apple Bluetooth Absurdities

September 16th, 2009 by Martin No Comments

Ever wondered why there are only a few devices that are able to communicate with the iPhone via bluetooth? The simple answer lies in the Apple Bluetooth Accessory Approval Process (ABAAP). In order to connect you device (e.g., headphones) the device must be registered with Apple and you must let Apple certify your device. I do not know about the details about this process (Apple is very tight-lipped on its hompage) but Apple has definitely the last word in this and deciding if you may connect your device via bluetooth to an iPhone or not.
While this might seem not very interesting, there is a small detail which deserves our attention. Believe it or not, Apple – officially- does not certify its own computer hardware (MacBook, iMac, MacPro) to connect via bluetooth to Apple’s iPhone. Wow! Apple is very strict on itself. Who would have thought this?
Strange as it might seem, there is reasoning behind this odd behavior. This trick prevents people from building software that directly accesses the iPhone over bluetooth (or USB). Using the iPhone as USB stick is one of the features, probable everybody would want. But, Apple has a strong grip on this and wants to control the content which is exchanged between the iPhone and Apple computers (I hope, I’ve written Apple computers in the correct way. There is an official Web page by Apple that defines how to use these trademark words properly. For instance, your are not allowed to use the word Macintoshes… Apple isn’t very tight-lipped on these things).

Your ikangai team

Another week of waiting is about to start

September 14th, 2009 by Martin No Comments

The weekend is over and we are heading towards the end of the third week since we resubmitted iSENDu. We can only speculate why the review of iSENDu takes so long, and Apple’s answers are not very illuminating.
(more…)

The new iPod is here…

September 9th, 2009 by Martin No Comments

… and a new version of the firmware. We already made a quick test with iSENDu on the new firmware. The good news first: everything works just fine. The not so good news: the sometimes strange behavior (codeword ghost peer) is still occasionally experienced. However, it is too early to tell, whether Apple has improved their Bluetooth implementation considerably or we are going to experience similar Bluetooth problems with this new version of the firmware. In any case, we will continue to investigate this and keep you posted.

Your ikangai team

IKANGAI website online

August 4th, 2009 by QDV 2 Comments

It’s finally done!

After countless weeks and hours of work, our official website went online! Take a sneak peek at our first iPhone and iPod Touch Application in the promo video on YouTube. (more…)

iSENDu submitted

August 4th, 2009 by Martin No Comments

After several months full of hard work, we finally submitted iSENDu to the iTunes App Store. We are currently waiting for the approval by Apple. In the meantime, you can check our wonderful Youtube video. Don’t forget to subscribe to the news feed, to be among the first who are informed about new developments.

Your ikangai team