Archive for May 6, 2014

Tuesday, May 6, 2014

App.net State of the Union

Dalton Caldwell:

The bad news is that the renewal rate was not high enough for us to have sufficient budget for full-time employees. After carefully considering a few different options, we are making the difficult decision to no longer employ any salaried employees, including founders. Dalton and Bryan will continue to be responsible for the operation of App.net, but no longer as employees. Additionally, as part of our efforts to ensure App.net is generating positive cash flow, we are winding down the Developer Incentive Program.

[…]

Today we are launching a new open source page at opensource.app.net. The first new piece of software we are open sourcing is our microblogging web application, Alpha. The source code to Alpha is available here.

Marco Arment:

They’re putting on a good face, but it sure sounds like it’s over. It now has no full-time staff, very little money, and even less motivation for developers to write apps for it — and that’s just after the first major renewal period.

Christopher Poole:

I found myself in the same exact position with Canvas/DrawQuest earlier this year. Everyone (including myself) was laid off a few months ago, but we'd hoped to keep the app running with the remaining revenue/cash-on-hand and volunteered time (cut short by a recent hack).

Stopped Using NIBs Thanks to Auto Layout

Kirby Turner:

Because I use Auto Layout in code I realized overtime I was using Interface Builder only to define the UI elements that made up the view. I would define all the Auto Layout constraints in code. This got me thinking, why do I need to define the UI elements in IB? So I did a small project with no NIBs or storyboards, and I loved it. I felt more productive, and I was banging my head against the wall a hell of a lot less.

[…]

I’ve now done a number of iOS projects where I don’t use a single NIB or storyboard, and I’m convinced this is the right approach for me. I see everything regarding a view and its subviews explicitly defined in source code, which makes it easier to see what’s going on and to make changes. No more bouncing between inspectors to figure out what is causing a problem or to understand how a view is rendered. I see it all in the source code defined in a single .m file.

Code is also much better at factoring out common sub-layouts and localized strings.

Aspects

Aspects:

Delightful, simple library for aspect oriented programming by @steipete.

Think of Aspects as method swizzling on steroids. It allows you to add code to existing methods per class or per instance, whilst thinking of the insertion point e.g. before/instead/after. Aspects automatically deals with calling super and is easier to use than regular method swizzling.

[…]

An important limitation is that for class-based hooking, a method can only be hooked once within the subclass hierarchy.

[…]

KVO works if observers are created after your calls aspect_hookSelector: It most likely will crash the other way around.

Frax for iOS

Frax (App Store: iPhone, iPad) from Kai Krause et al. (via Michael Yacavone):

20 years ago this team created a fractal explorer called ‘Frax’ and became curious “What could we do on an iPhone today?“

The reborn Frax, now orchestrating new algorithms in an intricate dance between CPU and GPU is literally… 400 times faster!

Totally immersive in realtime you can now zoom into more than a trillion-to-one depth range of the classic Mandelbrot set and, for the first time ever, the more self-similar Julia sets can be zoomed… infinitely!

The rendering and interactivity are striking. It also has an interesting use of In-App Purchase:

The Frax Cloud is the online counterpart of the Frax app. The cloud provides access to the Frax Render Farm, which is used to create high resolution images from your Frax presets at a much higher quality and size than is possible from within the app.