I’ve released SwiftMail today, a lightweight open-source Swift framework designed to simplify sending and receiving emails via IMAP and SMTP.
Read moreCategory Archive for ‘Parts’ 
Ziner is using DTCoreText
The developer of an upcoming Google Reader client wanted to share the following with me, and – with his permission – also with you dear reader.
I’m Jay Zhao, the developer of Ziner and I’m very happy to tell you that DTCoreText is great! Thank you for writing such a great library!
Ziner uses DTCoreText everywhere!
DTCoreText is my open source solution for parsing HTML and rendering attributed text from it. Built on top of it is my commercial component for rich text editing DTRichTextEditor.
Time-Limited Demo of Our Components
I’m happy to announce today that we will begin to make available test versions of our components so that you can try them out in your apps. This is possible with the help of our Jenkins build server which installs a “time bomb” on every nightly build of the components. This limits the utility of the static universal frameworks to 30 days of testing. Of course you can download a new copy as often as you like to further extend the testing time. But you cannot publish any production apps with that.
Our best-selling component is DTRichTextEditor and also by far the most complex because of the multiple sub-projects. Here’s a guide how to get set up for evaluating the component.
DTRichTextEditor / DTCoreText News
You might have noticed – if you follow the DTCoreText project on GitHub – that I made many changes on this Open Source project. The most recent change was that somebody donated a CocoaPods spec for the project and thus forced me to give it a version number. The reason being that pods are usually pointing to a specific tag in a GitHub repository. This way people using the project via CocoaPods can be certain that they are getting a stable version.
So I stumbled into this, but when trying to think of a good version number I could only come up with “1.0.0”. DTCoreText has matured sufficiently to call it that. Hey, earlier versions made it into quite a few popular apps, including Float. There are tons of performance improvements, additional features and most importantly the parser has been replaced with libxml2. This makes it both faster and able to deal with any kind of HTML you throw at it.
DTCoreText has two parts: first it creates NSAttributedString instances from HTML, second it displays these properly. CATextLayer would be able to take attributed strings, but it ignores paragraph attributes and cannot draw images. DTCoreText has an ingenious mechanism where you can supply your own UIViews for each attachment.
Component Development Contest

Component Marketplace BinPress announced a development contest for mobile components, running through November 26th. The top three spots are rewarded with $20,000 in cash and prizes.
The judging period will run for 14 days after the end of the contest, and I’m happy to announce that I was approached to be one of 4 judges. So you don’t have to worry about competing against me! 🙂
Of course that does not mean that flattery will get you anywhere, just because you know me.
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.
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.
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.
App Shoutout for May
Every once in a while (monthly?) I like to give a shout out to apps that are making good use of components that came from my store.
- Radar Ticino by Alessandro Rugeri uses DTBannerManager for Ads
- theVault by BestApps uses DTPinLockController to secure the passwords
- ███████████ by ████████████ uses DTClusterMaker to unclutter maps
- Ultimate Password Manager by Jean-Francois Martin uses DTPinLockController and DTSplashExpander.
If you have any released app that I have not mentioned so far, let me know, but please only if you are allowed to do so. I hate receiving mails with information that I cannot publish.