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

Fast Hashing

In DTCoreText there is the DTCoreTextParagraphStyle class which represents an Objective-C wrapper around CTParagraphStyle. This has a method createCTParagraphStyle which creates the actual Core Text object to put in attributes of an NSAttributedString. It also knows how to create an NSParagraphStyle, but since this only exists from iOS 6 upwards and lacks a few features we’re still using the Core Text variant everywhere.

Due to the way how DTCoreText works I need to createCTParagraphStyle whenever I am constructing a sub string of the generated attributed string. This led to an unnecessarily large amount of CTParagraphStyle instances being created. So I had implemented a method long time ago to cache thusly created CoreText objects based on the ivars.

Though this was causing some problems in DTRichTextEditor and so I yanked the caching back out. Now the project has developed much further and so I felt I would want to give the caching another go. Here’s something interesting I learned.

Read more

RFC: DTCertificateViewer

In the past most of my components where first developed for a need that either we had for our own apps for for a client. With the new DTCertificateViewer I want to try something new: Request for Comments (RFC).

Historically those RFCs are the documents that describe how everything on the internet works. But I see no reason why we couldn’t use the term as well to use it what the name describes, namely soliciting comments about the usefulness of an idea.

Read more

ELO App at CeBIT

The current c’t computer magazine has a short snippet mentioning the hybrid iPhone/iPad app we’ve been developing for ELO Digital Office GmbH.

ELO APP at CeBIT

If you come to CeBIT please pop by ELO’s booth at hall 3, F30 to give the app a whirl. Doing so you can do us a favor if you keep mentioning how much you like the slick UI.

Radar: Xcode Should Support Auto Save and Versions

This is a feature request for something that could have used just yesterday. Filed as rdar://13271368  and on Open Radar.

Update: I was made aware by an Apple engineer that Xcode is indeed already autosaving versions of your files as you make changes.  Versions is an OS X feature. But there is no Revert menu option in Xcode to access these saves. As a workaround you can open the source file in TextEdit and do the reverting there! A hidden feature that is so well hidden, it’s even in a different app!

Read more

DTRichTextEditor 1.2

It’s been a while since I last blogged about the progress we are making on DTRichTextEditor, my rich text editor component for iOS. January saw many more licensees that ever before, people are just fed up with not being able to integrate rich text editing into their apps.

Selling many licenses also allows me to dedicate a great deal of time to improving and tuning the component. Now here is Version 1.2.

Read more

Zarra on Locking

In my previous article dealing with Multi-Context Core Data I introduced a 3-context scheme that Marcus Zarra hat shown us in a back room at the 2012 NSConference.

Several people inquired about Locking, take for example Wim Fikkert:

Thanks for the great article. However, like Tom, I was wondering if the main context will not be blocked whenever you perform a save to disk with the persistent store. I am using the last design pattern, and I keep running into my app locking up. I have done some more searching and came across this article. Perhaps you can comment?

I don’t pretend to come anywhere close to being the Core Data expert that Zarra is, so I went straight to the horses mouth and asked him.

Read more

Don’t Complain, Fix It!

The worst thing you can do if you are using somebody else’s code is to complain to them via email about the shortcomings of their software. More often than not you can assume that the Open Source code this person put online is a labor of love. And complaining is as close as you can get to trampling on the other person’s feelings about their “baby”.

Hobbyists and Pros alike, you are a developer and if you have any interest in getting improvements for the other person’s software then you should adhere to these simple steps I am laying out for you to follow. This is specific to DTCoreText, but I am certain that the basic principles apply to any other project as well.

Read more

Urban Airship Commander 1.1

We are happy to announce several big improvements on our Urban Airship Commander app. Besides some features that where not ready in time for 1.0 there are also 2 suggestions of users we implemented.

Contrary to popular belief this app is not a game. It is a tool for developers.

Update Feb 25th: The Update is now approved and available on the App Store after 10 days.

Read more

Individual Learning App uses DTRichTextEditor

iLA Icon

Stefan Zimmermann of CoSciCo kindly provided me with this testimonial about why and how they licensed DTRichTextEditor for their iLA app.

ILA (CS) is the first incarnation of the iLA platform and is designed with deep learning, easy knowledge sharing and project planning in mind. Well, sure you can also just take notes and “beam” them to a friend or colleague.

Excerpt, organize and share, thoughts, ideas, and knowledge topics in a natural way, – simple and fast, without the interruption of the flow of ideas by having to think how to organise it, first.

Stefan’s own words after the break.

Read more

What to Do When Xcode Beachballs

Apple keeps working on making Xcode more stable all the time. While Xcode 4.6 has much improved in terms of simply quitting on you, people report that more often now they see Xcode just hang.

One method to deal with race conditions in a highly parallelized application like Xcode is to add semaphores and locking. Unfortunately locking is not the end-all of all all Xcode problems, even with a liberal sprinkling. A blocked main thread is a blocked main thread.

Spinning Beach Ball

Here is what you should do next time you encounter the beach ball of doom.

Read more