On August 14th, QR+Emoji will be end-of-life and removed from AppStore completely.
QR+Emoji is the only app on AppStore that could generate QR Code with Emoji icon. If you want to keep this app, better get it now before it’s too late.
One consideration, time. I don’t have enough time to keep developing for the next major update of QR+Emoji, especially when I will be very busy for the next few months, I need to cut down some of my projects, like this one.
And for existing QR+Emoji users, thanks for your supports. Hope you enjoy the app as I do.

The new QR+Emoji 1.3 is out, this is a major update with lots of enchainments, bug fixes and new features.
Now users allow to share their QR Code image to four different web services:
And my previous open source project, DDShareViewController, is modified and integrated into this part.
With helps from iOS 4, QR+Emoji now comes with a super fast camera scanner for every iOS device that has camera, included iPhone 3G, iPhone 3GS, iPhone 4 and iPod touch 4 gen.
If you’re using iPhone 3GS or iPhone 4, the camera comes with auto focusing ability, and you can use your finger to tap screen to get POI focusing; if yours are iPhone 3G or iPod touch 4 gen., QR+Emoji 1.3 is still available with same super fast QR Code auto scanning ability.
A lot of QR Code utilities users on AppStore are asking for iPhone 3G or iPod touch 4 gen camera support, but most of apps are not able to deliver this feature due to old camera lacks of auto focusing. But that’s not a problem for QR+Emoji 1.3, we support that.
QR+Emoji 1.3 is available on iTunes AppStore worldwide for USD$2.99.
If you like this app, please leave a 5 stars review on AppStore. With your supports, I can provide a better QR Code solution for iOS platform.
Thank you!
It’s been almost 6 months since the last update of QR+Emoji. Since then, I’ve been working really hard to improve the overall performance and tons of bug fixes. And today, I’m giving away the test seats for you to test drive the QR+Emoji 1.3.
The upcoming QR+Emoji will mainly focus on the performance improvement and few additional new features. With release of the beta version, I hope to receive the feedback from different iOS devices and to get rid of the bugs that happened in version 1.2.x.
To apply to be a QR+Emoji Beta Tester, you simply need a device running iOS 4 or later.
The qualified devices included:
* iPhone 3G, 3GS and 4.
* iPod touch generation 2, 3 and 4.
Sounds cool? Click here to join the brigade!
I plan to release the first beta at the end of January, the recruited members will get the notification from TestFlight.com and start the testing.
See you soon!
The recruiting has ended on Jan 24, 2011. The first beta of QR+Emoji 1.3 also released to beta testers.
Since the long waiting version 1.2 got rejected by Apple later this evening, you get the advantage by downloading QR+Emoji for free, for another week(s).
The rejection this time is the private-but-once-being-allowed API: UIGetScreenImage. This function allows you to capture a screenshot on a device, regardless of the contents of the screen, and I use this function to capture camera screen for real-time QR Code scanning on iPhone OS 3.x.

However, Apple sent out an email this afternoon, saying the UIGetScreenImage API call is no longer allowed, and requesting for a fix on this one, though I had already submitted QR+Emoji version 1.2 last week, and still waiting for the review. After bargaining in the email, they changed the review status to “In Review” 30 minutes later (that’s FAST, I must say), and rejected in 3 hours later. Same reason: “no UIGetScreenImage allowed.”
Basically, I can fix this by removing UIGetScreenImage, changing deploy target to iOS 4, and only allow iOS 4 users to use QR+Emoji. But, I’m not going to do that, cause I believe most of the QR+Emoji users are still using iPhone OS 3.x, and I would like to support these users for a little while.
So, here’s my plan:
The version 1.1.2 is not perfect, crashed at some situations, but I promise you for a better version in the next few weeks, and thanks for choosing QR+Emoji as your best and funny QR Code utility on iPhone OS/iOS, really appreciated.
— digdog
Version 1.2 is waiting for review for almost two weeks, and still waiting. It comes with some iOS 4 fixes and high-resolution artworks for iPhone 4, sharp and sleek.
But I’m not stopping right here. The next major update, 2.0 to be specifically, is under working. It will be completely rewritten from scratch, new UI design, and support iOS 4 only.
QR+Emoji is currently FREE on AppStore worldwide. I thought it might only take for one week for new version to get approved, so 7 days of giving away should be okay. But it’s been almost two weeks now, I’m still waiting in the reviewing queue, should I just change the price back?
I haven’t had a chance to talk about my DDBadgeViewCell last week, though it’s been used in my app for a while.

There are many projects and samples trying to do the similar thing, they all want a customizable colored round view, and DDBadgeViewCell does too.
DDBadgeViewCell is an UITableViewCell subclass with one badge view on the right. That badge view is customizable. You can change colors, including text color, badge color, and badge color when cell is hightlighted. You can also change text, it can be any characters, and the badge width will update along with text length.
And my approach for creating round colored badge view is inside drawRect: with CGPath and Blending mode. the whole drawRect: can be seperated into several parts:
First, get the current graphics context from stack by calling UIGraphicsGetCurrentContext().
CGContextRef context = UIGraphicsGetCurrentContext();
And I define some colors that need to be used later.
UIColor *currentSummaryColor = [UIColor blackColor];
UIColor *currentDetailColor = [UIColor grayColor];
UIColor *currentBadgeColor = self.cell.badgeColor;
if (!currentBadgeColor) {
currentBadgeColor = [UIColor colorWithRed:0.53 green:0.6 blue:0.738 alpha:1.];
}
And update colors based on cell status, like isHighlighted or isSelected.
if (self.cell.isHighlighted || self.cell.isSelected) {
currentSummaryColor = [UIColor whiteColor];
currentDetailColor = [UIColor whiteColor];
currentBadgeColor = self.cell.badgeHighlightedColor;
if (!currentBadgeColor) {
currentBadgeColor = [UIColor whiteColor];
}
}
Calculate badge text CGSize with sizeWithFont:, and defined badge frame size with some hardcode values.
CGSize badgeTextSize = [self.cell.badgeText sizeWithFont:[UIFont boldSystemFontOfSize:13.]];
CGRect badgeViewFrame = CGRectInset(CGRectIntegral(CGRectMake(rect.size.width - badgeTextSize.width - 20,
(rect.size.height - badgeTextSize.height) / 2, badgeTextSize.width, badgeTextSize.height)), -7, -2);
Here comes the point. Save the current graphic state onto context, so we can restore it and do the blending things later.
CGContextSaveGState(context);
Set the color for filling the path later.
CGContextSetFillColorWithColor(context, currentBadgeColor.CGColor);
People usually do drawing directly on CGContext, like using CGContextAddLine() or CGContextAddArc() etc. But I prefer the other way: creating a mutable graphics path (CGPath) first, add line or arc to it, and add final path into context, then ask contect to darw it.

The good thing about using mutable path here is: you can easily create a closed round path only by calling ONE function TWICE, CGPathAddArc(), one is the left arc, and the other is the right arc. And you don’t have to fill the lines between these two arcs by yourself, it was already done when second arc was added. Sounds cool, huh?
Once path drawn to context, we restore the graphic state, back to the state we haven’t drawn the round badge path.
CGMutablePathRef path = CGPathCreateMutable();
CGPathAddArc(path, NULL, badgeViewFrame.origin.x + badgeViewFrame.size.width - badgeViewFrame.size.height / 2,
badgeViewFrame.origin.y + badgeViewFrame.size.height / 2, badgeViewFrame.size.height / 2, M_PI / 2, M_PI * 3 / 2, YES);
CGPathAddArc(path, NULL, badgeViewFrame.origin.x + badgeViewFrame.size.height / 2,
badgeViewFrame.origin.y + badgeViewFrame.size.height / 2, badgeViewFrame.size.height / 2, M_PI * 3 / 2, M_PI / 2, YES);
CGContextAddPath(context, path);
CGContextDrawPath(context, kCGPathFill);
CFRelease(path);
CGContextRestoreGState(context);
Then we save the graphic state again, set the blending mode, and draw the text on top of the badge where we done previously. And since we use kCGBlendModeClear, the CGPath we previous drawn and filled with color will have text on top that can be seeing throguh clearly.
CGContextSaveGState(context);
CGContextSetBlendMode(context, kCGBlendModeClear);
[self.cell.badgeText drawInRect:CGRectInset(badgeViewFrame, 7, 2) withFont:[UIFont boldSystemFontOfSize:13.]];
CGContextRestoreGState(context);
And below are for the summary and detail drawning, which is much easier compare with above.
[currentSummaryColor set];
[self.cell.summary drawInRect:CGRectMake(10., 10., badgeViewFrame.origin.x - 15., 22.)
withFont:[UIFont boldSystemFontOfSize:18.] lineBreakMode:UILineBreakModeTailTruncation];
[currentDetailColor set];
[self.cell.detail drawInRect:CGRectMake(10., 32., badgeViewFrame.origin.x - 15., 18.)
withFont:[UIFont systemFontOfSize:14.] lineBreakMode:UILineBreakModeTailTruncation];
You can download DDBadgeViewCell project from my github.
DDBadgeViewCell can be used on iPhone 3.1 or later, but the sample program was created on iPhone SDK 4.
First, you create it by hands, yes, it’s a handmade 3D icon:

Then, make studio shots like a pro …on your desk:

And use Photoshop to do the make up:

With numerous tries, you can use in your iPhone app, proudly:

QR+Emoji — QR Code scanner, reader and generator for iPhone and iPod touch
To create QR Code bookmarks, you need to have URLs. And most of the QR Code generators only provide you the form to create bookmarks, and you have to fill out the URL field by yourself. How comes this could be useful?
In QR+Emoji 1.1, you are allow to create bookmarks in brand new way: through social bookmark websites.

In the settings panel, we have pre-defined 9 different social bookmarks that were famous around US, Japan and Taiwan. You are able to pick one as your favorite, and to create QR Code bookmarks from there.
If you prefer English or national wide sources, we have digg, reddit and delicious.
If you prefer Japanese sources, we have hatena bookmark, livedoor clip and Yahoo! JP Bookmarks.
And for Chinese or Taiwan local sources, you got HEMiDEMi, funP, and MyShare.
Just like the UI design you saw in the previous version, QR+Emoji extended usability of bookmark editor, you are able to switch between popular and upcoming bookmarks, and pull the table to reload the bookmarks.

If you are not sure about what the bookmark is, you can tap the blue button on the right to have website preview, it just loads like any in-app web browsers you know on iPhone OS.

Nice? You will find out more when you tried.
loading…