b2cloud wins Mobile Design Awards 2014

Recommended By

We are thrilled to announce that b2cloud has won the Mobile Design Award for Best Wearable Technology for our work with Telstra. The award recognises our innovative work using Google Glass to help empower the visually

Telstra and b2cloud – using Google Glass to improve people’s lives.

Recommended By

We are thrilled to announce some groundbreaking work we have been doing with Telstra for Google Glass. Over the past six months we have developed two world-first Google Glass apps designed for the visually and

#14 in Deloitte Tech Fast 500 Asia-Pacific 2013

Recommended By

What a proud day for the b2cloud team. We have just been announced by the Deloitte Tech Fast 500 Asia Pacific as the 14th fastest growing technology company in the region, and the fastest growing mobile app developer.

Writing an Objective-C wrapper for C++

Guides | Tutorial By 4 weeks ago

Recently at work I completed a C++ library that we’re using in both our iOS and Android apps. To make it easy for our native iOS app to use, I also wrote an Objective-C wrapper

Convenient Swift Features (vs. Obj-C)

Guides | Tutorial By 3 months ago

Swift has made huge leaps over Objective-C when it comes to certain code-level features. This reduces the amount of code needed to be written to achieve the same, and also makes Swift code much more

Transitioning from Objective-C to Swift

Thoughts | Tutorial By 3 months ago

When Apple mentioned Swift dropped the C baggage from Objective-C they meant it. Unfortunately there were many C tricks I used in Objective-C projects that now need a workaround. I’ve been looking at different ways

Obj-C performance week 1: Concatenating strings

Thoughts By 10 months ago

This post will compare the time taken to concatenate strings using common NSString and NSMutableString methods. Often I see people using initWithFormat: to paste together all their strings, but is this the fastest?

Using Private iOS APIs

Guides | Tutorial By 2 years ago

For the most part iOS will let you code anything you want, however occasionally you will find the need to do something out of the ordinary, or reuse an existing class. Trying to do this with public APIs can be a headache, and often requires tons of code. You may heave heard of private APIs, and also may have heard about how apps get rejected from the AppStore for using them. This is often true, but if you know how to safely and properly use private APIs then you can harness their power.

NSNotificationCenter for iOS and Mac

Guides | Tutorial By 2 years ago

If you’ve ever needed to have an object with multiple delegates you may have created an array and then added each of your delegates to it. This does work but there’s a simpler way which is much easier to implement. Using the NSNotificationCenter you can have objects subscribe to the events/messages they want to know about and get called whenever that ‘event’ takes place. The Cocoa framework uses this as well, and let’s you subscribe to things such as an app entering the background, changing orientations, when it’s running out of memory and when the keyboard is presented or dismissed.

Mac framework headers and Xcode

Guides | Tutorial By 2 years ago

When developing on the Mac and using custom frameworks in your application, when you compile the frameworks are copied into your applications bundle then linked at runtime. These frameworks will most likely be bundled up with their headers. Some of the frameworks you include may not be things you want to make public to the world, which you are essentially doing by including the headers with the framework.

Stack traces in Xcode 4.1+

Guides | Tutorial By 3 years ago

Since Xcode 4.1 when your application throws an exception your console just prints a list of function pointers and you don’t get a proper stack trace. This isn’t helpful if you’re trying to find the exact line the error occurred on.

Retain Loops and Delegates

Guides | Tutorial By 3 years ago

When using delegates in an object in Objective-C it is important that the delegate is only assigned within your object, and never retained. The reason for this is to prevent a retain loop, where two objects retain each other; they will never be released. The fix is simple, but can catch you off guard if you want to create an array or dictionary of delegates (using an NSDictionary or NSArray).

UserInfo at NSObject level

Guides | Tutorial By 3 years ago

Many times during development I have needed to attach simple user info to objects in Objective-C, such as a table row, context info and other object pointers. Previously to achieve this I would subclass my target object’s class and add the variables needed to hold the extra information. This worked, but had a couple of problems.