I'm Drew Breunig and I obsess about technology, media, language, and culture. I live in New York, studied anthropology, and work at PlaceIQ.


Posts tagged Dev

Quick Sunday experiment: using an iBeacon to protect application data. If the beacon is more than 4 feet away the app locks up.

Here’s the code if you’re curious. You can pick up a beacon at Red Bear.

Objective-C: Decaying Time Interval 

In iOS 7 apps, color and animation provide the user with cues to an app’s function and data organization. An animation situates the user within the interface context, acting as a clue to the app’s inner workings.

But apps don’t usually evolve with their users. Animations move at the same speed during the first day of use as they do six months later. The user’s knowledge of the app has significantly improved. But the app gives the same day-one cues, like a heavy handed teacher ignorant of a student’s progress.

Maybe animations should speed up over time.

Here’s a quick function which allows you to specify an initial animation duration and an eventual duration. Over the decay period (14 days, in this snippet – adjust as needed) the animation duration quickens to its eventual speed.

Pass this to your animation calls and let your apps keep pace with their users1.

  1. This Gist is a late night sketch, so use with a grain of salt. Using the date since initial launch is a hack; perhaps a launch counter would be more apt. Also, you shouldn’t be hitting the disk every call. A time factor should be loaded in memory on launch.

Apple has Released the Source for TextEdit 

Great way to learn about Mac application structure.

The iOS 6 App Opportunity: Transit

Apple’s new maps application ships without public transit directions. Transit directions was a service provided by Google, whom does a mostly fantastic job at aggregating disparate public transit data into a unified format. While Apple has focused on delivering a great in-car experience, they’ve punted on local transit.

As a compromise, they’re recommending apps that provide transit directions from within the Maps app itself. A cany developer or team could be ready on launch day with apps for the top metro areas, which implimenting the new API hooks, and skip the hubbub of the App Store entirely by selling an app for a few dollars within Maps’ recommendation space.

Or you could make the app free and use it as a beachhead to promo additional apps. Shops with lots of apps (game companies, media outlets, etc) hugely benefit from being able to cross-market their other apps from within successful apps. For example, when Zynga launches a new app, they promo it within their existing install base to guarantee initial attention. One could use a transit app, ready on day one, to build a wide base of users for an larger suite of apps.

Personally, I prefer the pay case (and am anxiously awaiting such apps before I upgrade). Either way, it’s a big opportunity for the developer who can craft a sharp app quickly but is often stymied by the App Store.

Shell Apps and Silver Bullets 


Web technology is great for many things. Replicating a native app experience is not one of them.

If you’re thinking of going with HTML5 for your company’s app, read this and think again. Great arguments from someone who seems to know their ass from a hole in the ground.

AKA: don’t judge a framework/language/technique by its demo app.

This not only applies to HTML5, but also to bridge efforts like Ruby Motion. Sure, it’s crazy simple to write an example app, but once your app grows to a practical size, and you start spelunking in the API, the benefits of the bridge becomes moot.

However: the writer’s Facebook example is poorly chosen. FB’s app is largely HTML5, and for their specific situation this makes a lot of sense.

Update: Pete Warden (who is much better qualified to address this than I) responds much more vigorously (and convincingly) against this article’s claims, especially with regard to HTML5 performance claims.

Mike Krieger explains why Instagram uploads photos so quickly.

It’s slight of app.

More specifically, Adobe will require developers to share 9 percent of net revenue beyond $50,000 for using the premium features, Adobe announced today. The premium features are Stage 3D for hardware-accelerated graphics and domain memory for better conversion of games previously written in C or C++.

CNET on Adobe’s upcoming payment terms for premium Flash features. Adobe’s Emmy Huang explains the motivation behind the charges, “We’ve designed this pricing to encourage the kind of innovation and experimentation that often helps to spark inspired and inventive games.”

I’m a bit confused: asking developers to pay to keep a waning language competitive helps innovation how?

If this works, Sony will start taking royalties from filmmakers for an HD version of BetaMax.

PeteSearch: Twelve steps to running your Ruby code across five billion web pages 

Using CommonCrawl’s web archives, Ruby, S3 and Elastic MapReduce, Pete Warden shows you how to crawl 5 billion web pages for a few dimes.

Absolutely demystifying.

Build task claims to succeed in spite of generating error messages.
Best Xcode error message yet.

A Plea for Better iOS Text Facilities 


Some (e.g. Facebook and Instagram) have dealt with this problem by abandoning fully native apps and instead building hybrid apps that rely on UIWebView for all but the simplest content presentation. Other, less ambitious companies have dealt with it by essentially distributing 200 MB PDFs disguised as general purpose software. The really crazy ones, like Joe Hewitt with his Three20 framework, have essentially reimplemented their own rich text rendering frameworks, complete with CSS-like style functionality, but while I’ve certainly never been one to shy away from a megalomaniacal engineering challenge, I’m pretty sure that way lies madness for anyone without Apple-level engineering resources (it’s telling that three20 was created by Facebook and even they are now relying on UIWebView).

Second. Unfortunately the crazy, CSS and ePub forking iBooks Author files don’t inspire hope.

Next page Something went wrong, try loading again? Loading more posts