Google Analytics

Readability

BuySellAds.com

Our DNA is written in Objective-C
Jump

Category Archive for ‘Parts’ rss

Component Development Contest

Screen Shot 2011-10-28 at 10.39.23 AM

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.

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

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

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

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.

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.

DTCards – Universalizing an iPhone App

Ever since the iPad came out I’ve been giving the occasional thought as to how I could universalize my existing iPhone apps. Generally the problem is that you have view controllers that work well on the resolution of the iPhone, but if you simply display them full screen on iPad they look weird.

So I’ve started to work on a view controller that would allow me to reuse my iPhone view controllers by displaying them not in full screen but as distinct cards. The idea is that you would use the same DTCardsViewController as root in your app and then depending on which device it runs on will either show the cards filling the iPhone screen or by laying them out to better fill the iPad screen.

In this article I want to give you a brief demo of where my R&D stands so far.

Read more

Rich Text Editing on iOS

For the past few days you’ve see me go on and on about this Open Source Project of mine. Sorry if this got a bit annoying to you but I am very passionate about bringing this functionality to a broad audience because I feel that UIWebView should not be used as much as it is. With the DTAttributedTextView from the GitHub project you can replace most of these and have way more control over the outcome.

Apple might finally add support for Rich Text Editing in iOS 5, coming Summer 2011. I suspect that the Pages app on the iPad might be a glorified test case for Apple for that. But even if that indeed comes to our Xcode, it will be end of 2011 that customers will have widely deployed iOS 5

.

Today I want to show you something completely different that is using the aforementioned project as a base and extends it to provide Rich Text Editing capability.

Read more

DTBannerManager 1.3

After having worked on the official MobFox Framework it was only logical that I would add support for this new ad network to DTBannerManager as well. Well honestly, I actually developed the framework inside of DTBannerManager and when it was done, I made it a static universal framework.

And then there was the goal of having a method to allow customers to purchase “Ad-Freeness” via an InAppPurchase. As with all IAP stuff you have to create your own UI for it, so I had a friend and designer create dual-resolution artwork for an X-button that you can link with your own IAP code or use DTShop.

Have a look at a video demo of these new features that I put on YouTube:

If you have purchased DTBannerManager source code access before then you find these updates in your repository if you refresh it.

DTChartView 2.0

I had originally begun development on my chart class for BabyBubbles, which required customizable charts to display various statistics on whatever babies you might have. At that time all of the view building and logic was contained in a view controller, DTChartViewController. This app was the first to launch with the 1.0 version and I’ve never had any complaints.

When I continued work on iWoman 2.0 I realized that it would make more sense to make the box with the chart a view of its own. Especially because I wanted to have the ability to show a small chart which would zoom to use the full screen when rotating your device. So I got to work on 2.0. Amongst other polishing I wanted to clean up the delegate/datasource interface to use method names that inform the developer that they belong to DTChartView.

That’s how the datasource protocol turned out. You can see that very little is required to get a chart to show, but there is a boatload of options to customize the appearance of the columns and lines.

@protocol DTChartDataSource
 
@required
- (NSUInteger)numberOfPointsInChartView:(DTChartView *)chartView;
- (CGFloat)maximumValueInChartView:(DTChartView *)chartView;
- (CGFloat)chartView:(DTChartView *)chartView valueForPointAtPosition:(DTChartDataPointPosition)position;
 
@optional
- (NSInteger)numberOfLinesInChartView:(DTChartView *)chartView; /* default 1 */
- (CGSize)unitSizeInChartView:(DTChartView *)chartView;; // default: automatically calculated
- (CGFloat)minimumValueInChartView:(DTChartView *)chartView; // default: 0
- (NSArray *)chartView:(DTChartView *)chartView arrayOfValuesForBarsAtPosition:(DTChartDataPointPosition)position;
 
// column grouping
- (NSUInteger)chartView:(DTChartView *)chartView groupForColumn:(NSUInteger)column;   /* column grouping */
 
// customizing look
- (UIColor *)chartView:(DTChartView *)chartView backgroundColorBehindPointAtColumn:(NSUInteger)column; /* no fill if not implemented */
- (UIColor *)chartView:(DTChartView *)chartView colorForLineAtIndex:(NSUInteger)index;  /* default colors are provided */
- (BOOL)chartView:(DTChartView *)chartView drawCustomBarInRect:(CGRect)barRect onContext:(CGContextRef)context forLineIndex:(NSUInteger)lineIndex; // custom drawing of bars
- (BOOL)chartView:(DTChartView *)chartView drawCustomBackgroundInRect:(CGRect)barRect onContext:(CGContextRef)context backgroundType:(DTChartBackgroundType)backgroundType;
- (BOOL)chartView:(DTChartView *)chartView drawCustomDataPointAtPoint:(CGPoint)point onContext:(CGContextRef)context position:(DTChartDataPointPosition)position;
 
// horizontal axis customization
- (NSString *)chartView:(DTChartView *)chartView textForLabelInColumn:(NSUInteger)column;
- (BOOL)chartView:(DTChartView *)chartView customizeColumnLabel:(UILabel *)label;
 
// vertical axis label formatting
- (NSString *)chartView:(DTChartView *)chartView titleForLabelAtValue:(CGFloat)value; // custom formatting for y-axis labels
 
// legend
- (NSString *)chartView:(DTChartView *)chartView titleForLineAtIndex:(NSUInteger)index; // name for legend
 
// display of placeholder for empty chart
- (UIView *)viewForEmptyChartView:(DTChartView *)chartView;
- (NSString *)titleForEmptyChartView:(DTChartView *)chartView;
 
@end

In the meantime another customer found DTChartView and purchased it. Every time this happens, this invigorates me and prompts me to to polish just a bit more. Helmut Neumann took it upon himself to take the 2.0 BETA and add it to the latest version of his successful cellphone usage tracking app.

Without any fear or reservation he pointed out all the shortcomings and drove me to iron out all those kinks. So finally, when he got the update approved it was at the same time the seal of approval that I wanted to get to allow myself to release version 2.0.

I’m always happy to hear when customers of the Dr. Touch’s Parts Store report on how happy my work made them.

“Two months ago i wanted to add Charts to HandyEtat, my well settled cost control app for T-Mobile Germany. I was already using My App Sales and liked the integrated charts. So I was quite happy to find DTChartView in Olivers parts store, espacially when noticing the unbeatable price and license conditions. DTChartView is feature rich, highly customizable and rock solid in execution. Integrating it into my App was “a piece of cake”. Oliver showed a great performance on taking over and implementing enhancement requests. The new version of HandyEtat got an overwhelming response from my customers, so I am very pleased with my decision to use DTChartView.”

DTChartView 2.0 is available on my Dr. Touch’s Parts Store. I’ve priced it so high because of the enormous amount of work that went into it, knowing well that this would limit the number of apps using it. But on the other hand it makes it a charting solution that can make your app stand apart from the competition.

Augmented Reality Plane Finder Trumps Charts

Pinkfroot is a small iOS dev shop in the UK who specializes on apps that show planes and ships on maps. I had the author Lee Armstrong on my podcast a while back explaining how they are getting the vehicle telemetry. Increasing numbers of airlines and ships are outfitting their vehicles with transponders that are transmitting data like current speed or destination and there are boatloads of volunteers worldwide who have receivers for these airwaves and share them with Pinkfroot.

They had already used my DTAugmentedRealityController part with a bit of success on a Shipfinder app Ships Ahoy!, but naturally this is only interesting for people who at least sometimes have water nearby to gaze at ships on. Most of us iPhone users are living inland and so for every ship we see, there are dozens of planes that pass over our heads.

Enter Plane Finder AR. For the first time there is an Augmented Reality app where it actually makes sense to point your iPhone at something and get augmented data for what you are looking at. Granted there are apps showing you names of mountain peaks, but – honestly – those don’t move so much and thus are way less interesting as something that happens to pass over you right now.

Plane Finder AR gives you a rotating mini map and labels for the individual planes. These tell you the designations of the planes, ground speed, altitude, origin and destination, and distance from you. It proves to be a great use case for my AR component. If you have the data (the more live the better) you can easily build an enticing app.

Just how enticing? Well, let’s check the charts (courtesy of Applyzer)

The audience is downloading this app more than the likes of Tom Tom or CoPilot who had been leading the Navigation Category. Which in my humble opinion makes perfect sense because while navigation is something that you might use every once in a while when driving somewhere, this app makes the air above your current location a more interesting place.