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

iOS Versions in the Wild

Apple sends a clear message to us developers: “Stop supporting 3.x”. They say that most loudly by omitting Simulator 3.2 from Xcode 4.1 which I painfully noticed when I wanted to debug a 3.2 bug in a component of mine. I had updated everything to Lion and installed Xcode 4.1 because that’s the first version supporting Lion.

So if you are basing your operations on the most current “stable” versions of the OS and Xcode then you cannot support 3.2 without jumping through some extra hoops. So I did some research to find if anybody is actually still using 3.2. Unfortunately Apple forbids ad networks from collecting and publishing device data because that would also show us info about future iOS devices.

So what is the trend and current status? Read on.

Read more

Hardware for Developing and Testing

Devin Snipes asks:

1. When it comes to iOS programming, does it matter what type of machine you have? I’m using a 2010 MacBook Air, and everything feels fine, although I’ve heard from some developers that xcode feels sluggish on 4GB of ram and they must get every Mac that comes out.

2. When compiling and submitting an app for 3.1.3, is it best to test your apps on all devices (i.e first generation devices) or would my iPhone 4 and the simulator do the trick?

Thank you for taking the time to answer my questions. Although I could perform a simple Google search for these questions, I’d prefer to get the answer from a well-known, trusted iOS developer.

It’s early in the morning and I am extraordinarily grumpy. But since you asked nicely I’ll try to give you my opinion.

Read more

Announcing Rich Text Editing for Everybody

Today we’re announcing the accelerated availability program for DTRichTextEditorView a view that combines the richness of NSAttributedString+HTML with UITextInput to give you the editing capabilities you need to change text editing on iOS forever.

The component has reached a status where it actually makes sense to have people start implementing it in prototypes and BETAs of their apps to gather the necessary feedback for polishing the API and find out features that are missing to allow for your special use cases to work with that as well. That final stage should be concluding before the end of August 2011.

Find out what features are already implemented, which ones are still missing and how you can get your hands on it today.

Read more

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