BuySellAds.com

My book Barcodes with iOS 7 is nearing completion. Buy it now to get early access!
Our DNA is written in Objective-C
Jump

Start Floating

You might have noticed that I blogged much less during the past 3 months, that was for the most part because almost all of my programming time went into a secret project for Scribd. Something that is finally revealed to the public on July 19th 2011.

Preempting the next question I am usually asked at this point: “What is Scribd?” Scribd is often described as “the  YouTube of Documents”. You can upload and share any kind of document on their network and they have an HTML5 reader that you can embed on your blog.

At the time the official statement was that Scribd is working on a mobile reader for iOS and they needed much more control over the rendering and interactivity of HTML-based content than UIWebView would afford them.

Let me tell you how Scribd has completely ditched UIWebView and is revolutionizing the way you read on your iPhone. Introducing Float.

Read more

Apple Earnings Call

Apple had their quarterly earnings conference call yesterday, here are the highlights:

  1. they continue to far surpass analysts expectations
  2. for the first time iPad sales revenues surpassed the Mac ones
  3. there is some accounting magic necessary, something to do with the expected earnings from people upgrading to Lion
  4. Lion ships today
  5. AppleTV continues to be a “hobby”, but they continue to invest in it because they believe there’s “something there”.
  6. Regarding patent disputes, all they said ways they “like for people to invent their own things” and they will continue to protect their portfolio
  7. A note that there will be a “product transition” (which they are not discussing yet) that will the affect the earnings of the coming quarter.

Read more

We’ll be back soon.

After working full throttle on the scribd app and struggling to keep two more deadlines the past few weeks where really taking their toll. So today begins a week of downtime for me. We – that’s me, my wife and our dog – have rented an apartment and I had to promise not to bring any devices…. except the iPhone.

“Honey, what if we get lost? I need the maps app to steer us back to civilization!”

You get the picture. :-) See you on the other side.

Calculating Area Covered by Keyboard

If you show something that contains scrollable content, i.e. UITableView, UIScrollView etc. then you want to make an adjustment when the keyboard shows so that the user can still scroll to the entire content. He wouldn’t be able to do so if you didn’t do anything.

I’ve seen several approaches to this so far, but they often hard code a certain position of the view or sizes. Like assuming that the covered view always reaches towards the bottom of the screen or always has a certain amount of space taken away from it by the status bar, navigation bar and possibly toolbar.

The whole thing gets even more complicated by the fact the the coordinate system of the app’s window is always in portrait even though your app rotates. So is the frame of the keyboard which you can get from an info dictionary in several notifications. I’ll show you the most universally working method I was able to come up with.

Read more

NovelRank App Shows Off DTChartView

Similar to us developers who keep scouring  sales rank information on sites like Applyzer there is a service for book authors. It goes by the name NovelRank and it lets authors track their book sales on Amazon.com.

Dave Wooldrige from Electric Butterfly (also a renowned book author in the iOS sphere) took it upon himself to create a beautiful iPhone client for the NovelRank service and released this just today, for FREE.

I’m specifically mentioning this here on my blog because Dave implemented my DTChartView component to get interactive scrollable charts for the ranking data.

Read more

Moving to Lion

One of the perks of paying for both the iOS as well as the Mac development program is that you get early access to the latest OSX beta versions. (Apple abhores the term “BETA” and thus calls everything “Developer Preview” lately)

I’ve been running my MacBook Air on most of the preview builds of OSX 10.7 “Lion” and so I was exited to move to the Gold Master version as well. My SSD was partitioned in two halves, one for 10.6 “to be safe if I need it” and one for 10.7. Now with Lion being final and working well I wanted to reclaim the entire SSD for the new and shiny cat.

But something went horribly wrong. Let me tell you about that and raise your awareness for a couple of precautions.

Read more

DTLoupe – Reverse-engineering Apple’s Loupes

I am working on a CoreText-based rich text editor at the moment. That means employing two primary technologies: the UITextInput protocol as well as rendering the formatted text with CoreText. Unfortunately Apple has forgotten to add selection and loupe mechanics to UITextInput, so we have to build these ourselves if we want to get the same look&feel as the built-in stuff.

So to get the selection handling and loupe we see developers go two paths: either they distort UIWebView with fancy JavaScript or they struggle with implementing their own code. These approaches lead to a wide variety of differently looking and behaving loupes and selection mechanics. I have contacted Apple by all means available to me and I’m hoping that there will be an official method to get the selection mechanics and loupe down the road.

But until there is, I let me present an interim solution for this problem. This will be a component I call DTLoupe and it have many potential applications besides being used in an editor to select text. Like providing a magnifier in a context when pinch-to-zoom does not make sense.

Read more

Releasing release

One of the new developer APIs presented at WWDC was something called Automatic Reference Counting. This term also was on this slide visible during the Keynote, so it’s no longer a secret.

ARC might just be the single piece of technology which excited WWDC attendees the most. We cannot discuss the details of what was presented during the conference, but there is already quite a bit of public information available. Enough to get every iOS developer excited.

Read more

Gamification of Bug Reporting

I’ve been recently submitting a great deal of bug reports for iOS and OSX. I asked myself: “why does submitting these reports have to be so tedious?”

So I submitted the following as feature request for Apple’s bug reporter as Radar #9622340.

Problem: currently submitting bugs is a tedious process, browser based, non-social and you rarely feel that a bug report or feature request has made any difference.

Solution: A suggestion with the goal to make submitting bugs and feature requests more fun. More fun = better quality and more buy in from developers and users.

Read more

How to Simulate Cellular Connections on Your Mac

If you are making your application real-life-proof you will also have to deal with diminished or dropped connectivity. I already discussed how to detect the kind of connectivity your app is having at present.

But another real-life restriction stems from slower bandwidths available over cellular connections, especially if you have no 3G reception. Even Long of Scribd showed me this trick I am about to explain here. This enables you to artificially create a bottleneck on your connection so that you can test how the app behaves when only cellular bandwidth is available.

This helps you to see if your custom progress bar is showing nicely or possibly if your progressive image is indeed progressive. Also this might reveal synchronous URL loading operations that you should never ever do in production apps.

Read more