UICollectionView with UIKit Dynamics

I’m working on my next iOS app project and was looking into integrating UIKit Dynamics (2D physics engine for UIKit) with UICollectionView. Found this old-ish cool project by Ash Furrow on GitHub. I was thinking of using it and ported into Swift (since then I changed my mind).

Check out the work on GitHub: ronaldwidha/ASHSpringyCollectionView

Thought I’d share the port to the rest of the world. All UI logic and optimization are derived from Ash Furrow’s work.

How to debug WatchKit and iPhone Parent App on XCode

So you made your Watch app, needing a network call, you put the call in the Parent’s app delegate handleWatchKitExtensionRequest. boom, you’re getting error and cannot seem to debug the parent app. ANd here you are.

At first it looks as if you cannot debug a running Watchkit app and Parent app (both on simulator at the same time using XCode 6.3. But actually you could

Step 1

set a breakpoint on the line where you make the


and run the watchkit app


Step 2

As the execution is paused on the specified breakpoint, go to the iPhone simulator and manually launch the parent app.

Step 3

Go back to Xcode, head over to the menu bar and select Debug > Attach to Process > Your parent app . Press resume and you should be hitting the breakpoint on the parent app.


I really hope on XCode 6.4, they would just attach to the parent process automatically.

The Magic of the Apple Watch


I don’t consider myself fashion conscious, far from it. Though like most, I occasionally see a piece of clothing, a pair of shoes or even a camera (the X100) that would make me dream day & night how my life would be so much better owning that very thing.

Apple is very good at crafting such desire for their product. You could totally see yourself be the subject of envy to the people around you, “Is that the latest Apple thing? That looks so cool. Can I see it?”. It happened with the phone, the pad, the air and most definitely with the Watch.


Clouded by the fantasy of owning one before anyone elses made me wonder – is this a reflection of the quality of the product or just the hype.


So, are you getting one?

XCode timeline editor for keyframe based animation

Flash Professional Timeline Editor

Don’t you just miss Flash?

As some of you may know, I am currently building an iOS app with Wita from Design Is Yay!. The app is called Kuko. It’s a sleep trainer app with hooks to Apple Watch. It’s a simple enough app for me to learn the ins and outs of Swift and Core Animation. The first thing I miss about working on this app is that XCode does not have a keyframe/timeline based editor. Interface Builder is far from being one, and as far as I’m concerned, it doesn’t even try to be one.

QuartzCode is the missing piece from XCode. Apple, just buy these guys already!


QuartzCode is the keyframe based timeline editor that we all wish XCode comes built in with. You can do most of the things that you come to expect from a keyframe based editor. Create keyframes before, after. Figure out the tween, motion, opacity, easing. At any point in time let me play, scrub and tweak. The final output is a series of classes you can copy paste into your project.

Already using Swift? not a problem, it speaks the language.

Since it spits out code, it does beg the question if I have to create multiple views for all screen sizes and orientation.

Unlike on a Universal Storyboard with auto layout constraints and sizes, when using Quartzcode we’re really creating all our UI controls programmatically. This does mean we’re hard coding the positions, width & heights of our controls. So do we need to have one view for each one of the devices …errr… all those screen sizes, really?

Fear not.

QuartzCode has an option named Relative Frame which converts all the layout and sizes value as a relative number against the screen width. You could then amend manually, if you like, to either scale, fit to width or do your own fancy anchoring calculation to work out the maths of the final value.

QuartzCode is nearly perfect. But the problem stems from the fact that it isn’t a feature inside XCode, but a separate app.

The biggest drawback of using Quartz Code for 2 months now is that it forces me to modify my UI element on QuartzCode, even though I already have them in XCode. It’s somewhat of a pain, but to me it’s still worthwhile having the preview capability than just guess, compile and pray that I got the coordinates right.

Another issue I encounter is the awkward workflow when working with different animation states (e.g. entry, jump, walk, run). QuartzCode does not support multiple timeline. As a work around, I have to create multiple project for the different animation state and really just organize them by carefully naming the files in a certain way (e.g. kuko-entry, kuko-jump, kuko-walk).

What happens when you have changes that affect across all those different files? Yes, it’s a manual painful process.

Just like any other development/design tool, this app looks deceivingly simple yet layered like an onion.

No I don’t mean that I have bad breath after using QuartzCode. What I meant to say is that QuartzCode is quite a comprehensive little tool. I continuously stumbled on new feature every time I use it (I just saw a tick box to reverse all animation. woot). This post haven’t touched the full potential of what one could do with it. If you’re interested to use it I encourage you to check out the examples page. If you have higher Cocoa Touch/Core Animation mileage, I’m sure you’ll notice more things right away. I’ll share my thoughts as I use it more and more.

Suffice to say that if you’re making money in the App Store, QuartzCode is definitely one of the tools that you want ot have under your tool belt. Unfortunately I think people like me who is starting out would probably find more use than the Pros, and the $89.99 price tag can be of a hinderance. I would suggest to drop the developer team an email, and maybe they can hook you up with a promotion. You never know.

Smart phone powered VR goggles


VR had been trying to make a comeback. Starting with the hype of Oculus then quickly followed by the Google cardboard project.

Despite the interest of large companies to push the VR and 3D bandwagon, the form factor has not quite reach the mainstream audience yet. Though I do like the direction where things are going, to make these goggles lighter, cheaper albeit they are of a lower quality than what the technology allows.

I had the chance to try the cardboard goggles on today. A little late I know. I had access to the Oculus Rift and Samsung Gear VR at work. When compared to the Oculus, these iOS powered goggles offer a much lower resolution. But they’re not too far off from the likes of the Samsung, since they’re practically the same thing (despite the obvious additional features that the Samsung Gear VR offers).

Photo: Converse  is using VR content to promote the Chuck product line on the Flat Iron plaza. The experience was done on a pair of VR cardboards(with an iPhone 6 inside.

I really can see this form factor or a slightly more durable variation could be the panacea to enter the home for an entry level VR experience. These cardboards go for around $7 on Amazon ($30 for the sturdier version), while many already have or at least access to a smart phone.

Now all I need is a pair of GoPros (or maybe the $60 Xiao Mi Yi action camera) and start creating stereoscopic content.

How Retail Banking should take a few cues from the software industry

Original image from @tomloverro Original image from @tomloverro

Like the software industry, Retail Banking has been disrupted by smaller niche players. In both cases, fingers are being pointed at the changing customer behaviors and shifting demographic. The software industry has been lucky having the right environment for it to go through a little trial by fire. Are there anything banks can learn from the software industry?

Banks are more like Software than Apps

What is the difference between computer software and Apps? By definition, Software and Apps are different words for the same thing; a collection of binary that gets executed on a chip. However each term carries massive philosophical differences.

You need to be invested in Software

Remember the days when we had to take lessons and get certified to use a word processor, those days are far gone. If I can’t work out how to use an app (or if the app simply don’t align to my values), I’ll trade it with a better, simpler, bigger, smaller, faster or open source option. And I bet you, there is an option out there for me.

Apps do one thing and one thing well. I take photos with the iOS camera app, edit them in VSCO, fix a few things with Skew then share them on Instagram. They are more focused than their older siblings, and because of this limited functionality, I need very little time to start getting the most of it.

Traditional banks are like Software, they have all sorts of trick up their sleeves. This however, just like sofware, makes it almost impossible for its customers to make the most of it without proper training.

On the other hand, smaller services like Venmo, Robinhood, Circle do one thing and one thing (arguably) very very well. Because of that, they are just much easier for us to get familiar with. Each one of these companies are focused on making sure their service is indeed easy to understand.

Maybe I should switch camp,
but I can’t

Whatever the software maybe (Powerpoint vs. Keynote, FCP X vs. Premier, Aperture vs. Lightroom, Cubase vs. ProTools, the list goes on), there are moments where we probably thought – I am so missing out right now. I can’t believe I still don’t have that feature. The guys on the other camp have it so much better.

Apps need to be the best as they can be in the only thing it offers. And for everything else, Apps often play nicely with other Apps. They wouldn’t necessarily offer mediocre features, implemented just for the sake of ticking a checklist for some RFP or product reviews. Apps let their customers pick, choose and string different services together exactly to their preference, which is a win-win for everyone.

When my bank say “we’ve got the same thing as what Mint offer”, well yes – but you forgot that I also have money in my Paypal, Venmo, Circle and Amazon accounts. Before you start becoming amazing on all fronts, or start to augmenting what you lack with offerings from your “competitors”, I would stick to using those smaller best of breeds in their own little niche, thank you.

But you need serious tools for a serious job

There are obviously cases where we just need that almighty computer software that can’t quite be replaced with anything else. Cough … Photoshop. But for many, we don’t even know half of the features Photoshop offer. All we know is that it’s a powerful tool that takes a lifetime to master.

Banking is the same. Unless the bank is committed to educate me in every single part of my financial life why not stick to the ones they’re really committed to?

Banks need to open up like the software industry

Giant software companies like Microsoft are starting to realize that the only way for them to be amazing is to be a collection of startups. Microsoft cloud offering can’t just run Windows in this world full of Linux servers. Microsoft Office can’t just run on PC, while the rest of the world is moving to the web, mobile and Macs. Companies like Microsoft, unbundle, innovate and start becoming good members of the ecosystem in each of the different areas they choose to be a part of.

It’s time for banks to be amazing in every single way … or start unbundling.

Redeeming iTunes gift card with camera is quite a spectacle

In the era of “plastics” (read: credit card), redeeming a gift card isn’t something that one might do frequently. I was surprised by the fact how cool the process of redeeming an iTunes voucher on the iPhone.


The redemption feature is hidden inside the iTunes Store app under music. After tapping on a  little link to redeem voucher, I was prompted with the option to use the camera to scan the card.



I was expecting that the app would scan the barcode like any other QR reader, but instead the app recognizes the actual code with a little glowing animation.

P.s. if you are thinking of trying to redeem the gift card code, you’re a little too late.

OK Google Glass

Me in Google Glass

photo by Andrew Mistophiles

The office just received our shipment of Google Glass today. And it’s hard to not be excited about this piece of hardware. The direct to retina projection system, bone-conduction speakers, not forgetting all the innovation (and data!) that Google have accumulated throughout the year building their meta-services. If this piece of gear isn’t the present, I sure hope it is the future.

I’ll be posting more of my thoughts around Google Glass in the coming days as I get more experience with it.

Cannot sign in to Yammer on iPhone

Yammer on iPhone blank screen after login

Trouble signing in to Yammer app on the iPhone and getting nothing but blank screen?

Most probably your company’s Yammer has corporate single-sign-on turned on (so you can use your corporate password to login). The Yammer app seem to not let you login using the Http digest pop-up (a popup dialog to put in your username and password) unlike within a normal web browser.

The solution is simple.

  1. login to http://yammer.com
  2. on top right, click the “…” (elipsis icon)
  3. select apps
  4. scroll down and find iPhone
  5. click on the ‘iPhone’ link (not learn more)
  6. you will get a temporary password, use this password within the Yammer app. Password is case sensitive


You need to do the same for Yammer on iPad and Yammer Now (the chat).

The Apple Store iBeacon experience

Apple Store SOHO

I’m spending a few weeks in New York, so I thought I would check out the new iBeacon roll out in the Apple Stores. I went to the closest store from work which is at SOHO.


Before I went to the store, I installed the Apple Store app on my iPhone 5. During the induction process, the app prompted me to subscribe to in-store notification. From this point on, I had given the permission for (and also subscribe to) Apple’s iBeacon push messages.

Ibeacon in the Apple Store App

As I enter the store, I was greeted with the iBeacon notification and provided access to some information like the next Genius or Workshop events. Unfortunately I didn’t receive any of the marketing promotions (to upgrade my iPhone) or what not.

It seems that Apple still rely on the EasyPay (scanning using the iPhone camera and then letting me pay using the credit card associated to my Apple account) to handle contactless/self-service payments. No additional iBeacon support here.