Archive for 'iPhone'

Path 2 UI

So everyone seems to be all excited about UI innovations in this Path 2 thingy — although we ourselves didn’t get past “…that helps you share life with the ones you love…” as we’re not sharing enough to even bother signing up for Facebook yet, never mind go to any real effort — but the good folk over at ManiacDev have rounded up some posts on the subject worth perusal:

Open Source: Library For Creating An Animated Curved Menu Like In The Popular Path 2 App

Round-Up Of Path 2 UI Inspired Open Source iOS Libraries And Analysis

All the links there are worth reading, but note particularly

Attaching an info panel to a UIScrollViewIndicator like in the Path 2 app

That one for sure is a genuinely useful idea your apps could very likely benefit from.

Also on the design side to add to the more technical dissections linked from the second article above, check out

Going down the right Path

for a nicely incisive analysis of just why this app has grabbed people’s attention so. And make your New Year’s resolution to achieve that same level of awesome in your own apps this year!

UPDATES:

UITableview Replace With Information Overlays – Inspired By The Path 2 App

Continue Reading →
0

Code Signing: CertificateHelper

Now here’s a handy tool to add to your bag of tricks for the New Year:

New Tool: CertificateHelper

… As I’ve had problems with Code Signing before, I decided that it’d be a lot more helpful to not have to google around the webs like crazy over and over again but instead have some app that contains the knowledge and gives proper tips.

The result is CertificateHelper, which you can find over at GitHub. Currently it only supports those problems that I was having (no certificates/no private key).

To add new Problems to the app, simply subclass CertificateProblem and implement the following methods…

Not only is that a rather useful tool just as is — why yes, yes our certificates are an utter mess:

certificatehelper.png

… that’s a rather nicely done extension mechanism built in there; looks like this project would make a nice foundation for any kind of diagnostic tool you might find handy.

And in case you haven’t noticed it yet over at the mothership, if you have a harder problem than Certificate Helper knows what to do with, this is the canonical reference for all problems of the codesigny type:

Technical Note TN2250: Understanding and Resolving Code Signing Issues

Continue Reading →
0

Backend Service: Kinvey

Hmmm, looks like there’s another entry we’d missed so far in the increasingly crowded cloud backend marketplace:

logo_ex.png

Kinvey (pronounced Kin-vey, like convey) makes it ridiculously easy for developers to setup, use and maintain a cloud backend for their mobile apps.

We call it Backend as a Service…

Aside from that marketing line sounding like something more suited for the Davie Street scene, these guys do have what looks like a nice feature, hooking up with Urban Airship:

In a nutshell, this partnership will allow us to streamline the process of getting your app enabled for push notifications. Instead of dealing with multiple technology providers, APIs and libraries, and different accounts, Urban Airship’s services will allow the developer to easily integrate push notifications. So easily, in fact, that all you have to do is click a button for your app to become automatically registered with Urban Airship. Push notifications can then be triggered from Kinvey to your app…

Yeah, that’s a pretty strategic fit with a backend app support service, as dissected here. So you might want to give these Kinvey folk a close look when you’re checking out Parse or Stackmob or Cocoafish or whoever the flavour of the moment is by the time you read this. And as always, if you have any experiences with any of these or more options we’ve missed for your simple backend technology stack, please share!

UPDATES:

Applicasa is another option in this space that has a rather compelling pricing structure: FREE until you hit 100,000 users!

Feel like rolling your own backend service instead? Check out

DataKit makes it easy to add web backends to your apps!

RESTful API Server – Doing it the right way

Continue Reading →
0

Face.com API

So you’ve probably noted that there’s a CIFaceFeature available in iOS 5′s CoreImage — and if you haven’t, check out the fine tutorial here — but if you really want to take your face recognition to the next level, apparently there’s this place Face.com that’s

… the best-in-class face recognition software. We offer a platform for developers and publishers to automatically detect and recognize faces in photos using a robust, free, REST API. This API allows third-party developers to create their own original apps that leverage our face recognition technology, algorithms, and database of tagged faces….

Which is all pretty neat, although at first glance we’re somewhat baffled what the revenue model might be, but hey for now it’s FREE. And once you’ve signed up, head over to github for

FaceWrapper for iPhone

which packages up a handy interface. And its tagging seems to work pretty well!

faceWrapper-iphone.png

h/t: ManiacDev!

Continue Reading →
0

Block Drawing

Here’s a so obvious you probably didn’t think of it idea for easily customizing your view drawing (or whatever, really):

Using blocks for drawing to avoid subclassing in Objective-C

It is very common for a designer to ask for a 1 pixel tall bar here, or a small gradient there. This is a small request that isn’t very hard, right? Subclass UIView, override drawRect and do the drawing using Core Graphics. But every time you do this you need to add a file to your project. And all this file does is include 1 drawRect method with likely very little code. It personally bothers me when I see lot’s of these little classes that don’t do very much.

Block Based Solution

Instead of subclassing UIView every time we need to draw something what if we were to have one subclass that allowed us to pass in a block that performed the drawing code? So I’ve created a class called DrawView that does exactly that…

We seem to recall that PowerPlant had a pretty handy ‘Adornment’ mixin class strategy that acted not dissimilarly to this. But it certainly is a great deal more convenient to define a just-slightly-custom behaviour for something with a simple block defined on the fly, ’tisn’t it?

h/t: @deallocatedobjects!

Continue Reading →
0

DETweetComposeViewController

Yep, it’s dead simple to use iOS 5 tweeeting support, and chances are you’ve got a library of choice for tweeting in previous versions already … but does yours have an UI consistent with the System UI? No? Well, you might want to fix that with Double Encore’s Twitter for All library:

DETweetComposeViewController.jpg
  • An iOS 4 compatible version of TWTweetComposeViewController
  • A similar UI to the system Tweet Sheet
  • A favorable open source license
  • iPad compatible

Everything you could ask for, yes? Check it out on github!

(And if it looks unsuitable for whatever reason, you might wish to check out this alternative as well.)

h/t: iosdevweekly!

Continue Reading →
0

SDURLCache Update

So remember waaaay back when we mentioned SDURLCache for your on-disk caching needs? Well, there’s a modernized version of it you may find of interest:

https://github.com/steipete/SDURLCache

This is a fork of https://github.com/rs/SDURLCache, heavily changed to fully embrace GCD, drops support for iOS3, much faster than the initial version…

Of particular interest here is, as @cocoanetics observed,

I will never be a true master, look at how a true master parses HTTP dates 22 times faster than the rest of us:

22 times? How do you do that? Well, take a look at this thread:

Time (in us) for `+dateFromHttpDateString:`-

… before this commit: 69.439us.

… after this commit : 2.993us, over 22x faster.

and observe that … there’s a great big set of lookup tables. For date parsing? Date parsing, really? Gave us pretty much the same reaction as the fork’s author,

Awesome, thank you John

Can you shortly explain how you created those tables? I totally will merge this, but I’d love to understand it :)

Yes, we’d say that late as the entry is, that wins the 2011 Best Github Commit Comment award. Turns out it’s some Ragel source. Even if you have no interest in speeding up your date formatting at all, if you’re as unfamiliar with Ragel as we are, it’s definitely worth a little study here to see how clever people apply it!

Continue Reading →
0

Offline Game Center

This looks like a handy solution to The Offline Problem you’ve no doubt encountered with your Game Center implementations:

Synchronizing Offline Game Center Achievements and Scores

Last post I was talking about removing OpenFeint and using Steffen Itterheim’s GameKitHelper class. As I started testing I came across many issues on my 4.x devices. It didn’t have anything to do with his library, but more to do with the inconsistent error reporting on many of the Game Center callbacks when the device was offline. Thus I would get inconsistent caching and notifications on the game center server. After struggling for 2 days I decided I was going to rewrite the module and take a different approach.

So DDGameKitHelper was born. My version keeps a permanent local cache of all achievements earned and each category’s best score achieved. Then anytime Game Center comes back online I synch between my local cache and Game Center, filling in the missing pieces on both sides. I never remove anything from my local cache. So if an achievement is reported on game center but not locally, I re-cache it. If it’s local but not in game center, I report it. This allows a fresh install of the app to automatically get all achievements and scores the first time it starts up.

It would be nice to have a standardish solution for 4.x + 5.x support here rather than everyone rolling their own, so we certainly encourage you to check it out on github and adopt it if convenient!

Continue Reading →
0

Assembly Dissembling

Yowza. It has been quite a while, hasn’t it? No, we haven’t been off on one of our little jaunts, or been indisposed for any reason; we’ve made some sea changes that kept us so busy the last 26 days that no, we actually could not spare ten minutes anywhere to splatter out a note of the day tidbit for you.

See, for a little while now we’d had this feeling of … not dissatisfaction exactly, perhaps “languor” would be the most apropos, that we were pretty much at the limit of what a single developer can manage; and couldn’t really see a way forward that didn’t involve spending more time as management and less time on the fun stuff. A conundrum, indeed. And, well let’s just skip right ahead to now: for the last month and a bit we’ve been working full time at Atimi Software, purveyor of development services behind a great variety of iOS (and those other, lesser, mobile OSes too) apps. And quite entertaining it has been on a wide variety of fronts; won’t be able to share client work there as freely as our own, but we can tell you that the just released Canucks iPad app had a smattering of our tweaks make it into the release, which gives you an indication of what the plans we’re going with there are. And those plans are grand.

(And hey, if Atimi sounds like a fun place to work to you too, why yes they are hiring in every department. And we personally guarantee your utter lack of boredom, going by all indications thus far.)

But enough about us; you’re here for the iOS tips, we know, and the standouts we noted during our little hiatus are — as always, really — from the blog of Mike Ash, where there’s been three in a row worth reading to get your head waaaaay down as far as one can go into code:

Friday Q&A 2011-12-02: Object File Inspection Tools

Being able to see all stages of your work can be immensely helpful when debugging a problem. Although you can get a lot done only looking at the source code and the app’s behavior, some problems benefit immensely from being able to inspect the preprocessed source code, the assembly output from the compiler, or the final binary. It can also be handy to inspect other people’s binaries. Today, I want to talk about various tools you can use to inspect binaries, both your own and other people’s…

Friday Q&A 2011-12-16: Disassembling the Assembly, Part 1

My last post touched a bit on disassembling object files, and Gwynne wanted to dive deeply into just how to read the output in detail. Without further ado, I present her wonderful in-depth look at reading x86_64 assembly…

Friday Q&A 2011-12-23: Disassembling the Assembly, Part 2

In last week’s article, I discussed the x86_64 architecture and the disassembly of the main function of Mike’s example code. This is part 2, in which I look at the differences in optimized code, disassembly of the rest of the sample code, the start runtime function, and some functions that work with floating-point values…

Yep, the idea of reading x86 assembly has a certain Back To The 80s vibe, but hey sometimes nothing else will do!

h/t: @objectivec!

UPDATES:

Friday Q&A 2011-12-30: Disassembling the Assembly, Part 3: ARM edition

Friday Q&A 2012-01-06: The Hopper Disassembler

Continue Reading →
1

Crashlytics

Looks like there’s another newcomer to the increasingly crowded iOS bug reporting scene worth looking at:

Crashlytics Knows Why Your iOS Apps Crash

Crashlytics is a cloud-based crash reporting solution that aims to boil crash reports down to the simplest common denominator. It works by writing a simple line of code that activates its lightweight SDK (about 75KB) that taps its cloud solutions to run crash reports through Amazon Web Services and return a simple report honing in on exactly the line of code that is making your app crash. It is one of the most simple yet powerful crash report systems for mobile developers available…

Looks like they plan a deeper set of metrics than anything available so far, so you might want to keep an eye on that. In the meantime, there’s still all the ones mentioned in the ad hoc survey linked above plus the Battle of the iOS Crash Reporters article has been updated with some new ones and seems exhaustive … no, wait, a quick google finds at least one more, Airbrake. Just popping up like weeds all over, they are!

Continue Reading →
1
Page 5 of 85 «...34567...»