Dev Blog

Business Casual Software is now on Facebook

Business Casual Software is now on Facebook

Aachen, Technische Hochschule, Rechenzentrum

Actually, we’ve had a Facebook page set up for quite a while – it was just a matter of remembering to link our blog posts to it.  Now we don’t have to.  Everything that gets posted to the developer blog now gets posted to the Business Casual Software Facebook page.

You’re welcome.  Also thank you.

Sectioned ListView in Android

Sectioned ListView in Android

We wanted our iOS and Android apps to look as similar as possible while following UI design guidelines for each OS. You’ll notice that the Android calendar app, just like the iOS calendar app, uses a ListView with headers:

However, unlike the UITableView in iOS, these headers are not a built-in feature of the ListView class. You have to generate them manually! We searched online and found a number of solutions, but they were either too bulky or completely inelegant. So we set out to write our own.

Read More Read More

Imitating the Calendar app GUI

Imitating the Calendar app GUI

We wanted our calendar to look similar to the list view from the Calendar app on the iPhone. It’s trickier than it sounds, though. Upon close inspection, you’ll notice that the event’s title is centered in the cell if the event does not have a location. If it does have a location, the title shifts up slightly and the location fits underneath it.

We tried to replicate this behavior using table cells designed in XIB files and by configuring standard table cells programmatically, but it just didn’t work. So we wrote a custom UITableViewCell subclass that handles the layout for us.

Read More Read More

JSON Parsing Libraries

JSON Parsing Libraries

The Brewing Co. app gets the band’s calendar of events from Google Calendar. Google’s REST-ful web API returns data in the JSON format, so one of our first decisions when making the app was which JSON parser to use.

Google offers a client library for accessing the Google Calendar web APIs. However, their client is in alpha (not even beta!) and is fairly heavy-weight. We wanted something less cumbersome, since we’re only using a small subset of the features provided by the API.

In iOS 5, Apple introduced a built-in JSON parser, NSJSONSerialization. It’s quick and easy to use. However, we couldn’t use it because we think it’s still too early to begin writing iOS 5-only apps.

So after a bit of study, we decided that JSONKit was the best option. It’s the fastest, lightest library we could find. It’s very self-contained (one .m file and its corresponding .h) and very easy to use. We recommend it highly.