HackerSpace.sg: iOS Developer Meetup

Subhransu Behera was very persistent in inviting me to his iOS Dev Scout events in HackerSpace.sg — his fourth invite convinced me to come and see what it was all about. Personally my reason of coming was to network, mingle, and generally “show up”, which I haven’t been doing much lately. Not to mention that I’m a poor networker.

Today’s meetup at 26-Mar-2012 brought forward two topics:

In-App Purchases

Michael Del BorelloMichael Del Borello put together a nice-looking presentation about how to use StoreKit on iOS, Apple’s primary interface for enabling additional application functionality that requires payment. It was quite apparent that programming StoreKit requires writing quite a bit amount of code and he also talked about this issue.

What’s strange is that Michael (del Borello) sound like he was unaware of Lodsys’ lawsuit spree where the patent troll sued a non-trivial number of small application developers that uses in-app purchase. He then notes that it’s a “good problem to have” – which on my opinion reflects either his experience in handling legal issues or merely he just being human and over-simplify stuff that he does not understand.

Reflecting from the difficulties of programming StoreKit, BonoboLabs publishes an open-source library for in-app purchasing. There wasn’t any existing open-source library that met their needs and thus the reason why they wrote yet another one. Michael promises that their library will:

  • Apply the singleton pattern
  • Apply the observer pattern
  • Unit tested
  • Easy to integrate

Michael also passingly mention about a customer feedback UI widget that they’re writing. Essentially it’s a better version of Appirater that annoys many iOS users. Michael’s component only takes the user to the App Store if she said that she’s happy about the app, but instead asks for feedback when the user is less than delighted. The widget is meant to be tidily placed in the application’s settings screen. Unlike Appirater that abruptly interrupts the user’s workflow. It does sound like a nice application of psychology – don’t let the user rate the app when they are pissed by it. Unfortunately Michael didn’t point out any Github link to the project and I couldn’t find the project published in Bonobo’s Github account as of this writing.

Unit Testing

Specta ios unit testPeter Jihoon Kim wrote Specta as what looks like a domain-specific language for unit testing, implemented on top of Objective-C using a set of preprocessor macros. He argued that current breed of open-source Objective-C unit testing libraries (OCUnit, Cedar, Kiwi) are either too hard or too difficult to use and thus came up with his solution of a “test-specification language” of some sort that compiles down to Objective-C.

At a glance Specta looks promising and usable for writing unit tests. But personally I’m not keen of domain-specific languages. Primarily those that tend to be “yet another meta programming languages” – that is, a programming language on top of another language.

For one, these meta-languages adds unnecessary complexity. Sure it looks nice when everything works fine but if things break, it’s going to be so awful to debug; remember Joel Spolsky’s law of leaky abstractions. If you make a slight syntax error somewhere, the compiler won’t be able to point the exact problem for you since it knows nothing about the semantics of your “programming language” (i.e., a set of macros). I ran into this problem the first time on Borland C++ ObjectWindows library – a slight mistake on its dispatch table will spew out gobs and gobs of compiler errors. A more recent example was about two years ago when I played around with Objective-J (Cappuccino Web Framework), there was no syntax-highlighting and no compiler that can alert me of simple syntax errors (Cappuccino’s JavaScript preprocessor was unhelpful at the time), and I had a terribly tough time correlating the error messages that I get from the JavaScript interpreter back to my Objective-J code. Not to mention the daily havoc caused by leaky abstractions of XML-thingies that generates C++/Java code in my current dayjob (though I can’t talk much about those; closed-source framework and general corporate confidentiality).

The second issue is that polyglotic projects tend to be hard to maintain and support. At one part of my career I supported a rather Rube Goldberg of an application, written in a hodge-podge of Java Swing, Servlets, ASP, ASP.NET, Transact-SQL, and some kind of XML-based BPEL workflow engine. It wasn’t a hugely popular web application with millions of users, but an internal application used by a few hundred salespeople.


The networking session at the end of the talk was quite short. Probably because the event ended quite late in the night and a lot of people still need to go to their jobs tomorrow.About half of the 20-or-so audience looks like that they’re recent graduates. Probably most works as employees in early-stage companies or claims to be a “freelance consultant”. Only one other guy confirmed to have a dayjob at a MegaCorp.

I did met with Michael Cheng‘s school friend: Yong Sze Yuen Kelvin, who said to be a self-employed branding consultant. He prowessed about his knowledge of marketing. In retrospect his business is probably more brick-and-mortar since his website is un-SEO, being mostly images, and terribly difficult to type. Anyway he then talked about a class that he attended where the instructor hands out class assignment to design a “breakthrough” operating system. On the latter part he then commented that a lot of the interaction designs that came out actually inhibit interaction instead of facilitating it. He also cursed the difficulty of using the Facebook app and the UI wonders of the Path app.

Event Details

Mon Mar 26 7:30pm – 9:30pm Singapore
HackerSpaceSG, 70A Bussorah Street, Singapore 199483 (map)

Here are my LiveScribe notes taken in the event:

Avoid App Review rules by distributing outside the Mac App Store!

Get my FREE cheat sheets to help you distribute real macOS applications directly to power users.

* indicates required

When you subscribe you’ll also get programming tips, business advices, and career rants from the trenches about twice a month. I respect your e-mail privacy.

Avoid Delays and Rejections when Submitting Your App to The Store!

Follow my FREE cheat sheets to design, develop, or even amend your app to deserve its virtual shelf space in the App Store.

* indicates required

When you subscribe you’ll also get programming tips, business advices, and career rants from the trenches about twice a month. I respect your e-mail privacy.

0 thoughts on “HackerSpace.sg: iOS Developer Meetup

Leave a Reply