Sending iOS Push Notifications with PushLayer

We’ve just launched a new service, called PushLayer, that makes sending push notifications to iOS devices a breeze.

iOS push notifications with PushLayer

Over the years, we’ve worked on quite a few iOS apps, and more than a few have had to deal with push notifications in one form or another. Unfortunately, dealing with device tokens and communicating with Apple’s Push Notification Service (APNS) is cumbersome, very time consuming, and isn’t tolerant of mistakes.

In the past, we’ve tried using one of the other services out there, but have been very frustrated when we couldn’t effectively debug notifications that weren’t delivered (in fact, on one of our most recent projects, we went months without getting any notifications from our staging builds). We were also always mystified by pricing based on “active” devices.

We’ve also tried rolling our own system for communicating with Apple and managing device tokens. While this gave us the best flexibility in terms of debugging, it required several weeks of intensive development time, and was not forgiving of mistakes (for instance, Apple will blacklist sending notifications if you don’t properly monitor their feedback API). It also leaves us with a long-term commitment to ensuring we update our code to any changes Apple rolls out.

So we come to PushLayer, a service we’ve been working on over the last few months, that makes sending iOS push notifications about as simple as it gets. For instance, to send a notification, you just:

  1. On the iOS device, prompt the user to enable push notifications. If the user accepts, iOS gives you a unique device token.
  2. Store this token someplace safe (such as on your own server as you’ll need to reference it when you want to send a notification).
  3. Send a POST request to PushLayer using our handy RESTful API, referencing the device token you got in step #1. For testing purposes, you can even login and use our handy interface for constructing a notification.

That’s it! PushLayer communicates with Apple, constructs the binary payload, and the notification pops up on the device usually within a few moments.

PushLayer has a number of compelling features we wish we had when we were last working with APNS:

  • Every notification gets an entry in your PushLayer account, allowing you to drill into what the status of each notification actually is.
  • Save time by not having to roll your own communication system with APNS (and avoid having to maintain it later).
  • Pay for the actual notifications you send rather than some vague concept of “active” devices, with prices significantly below other services out there.

If you’ve been thinking of adding push notifications to your iOS apps, give PushLayer a try. It’ll save you a ton of time.

Make music on the iPad with Shapemix

We’ve been working on a fun, powerful, music-making iPad app called Shapemix and are thrilled to see it go live in the App Store!  We’ve been working with Colin Owens and his team to build the app and get it launched, and are thrilled to see some of the positive press it’s already gotten (check out the Mashable article).

The app is designed to help you create music in a fun, intuitive way that anyone – even those without a musical background – can pick up quickly.  The idea is to grab some tracks (at launch, there were over 100 free tracks in the Shapemix store), then mix them together to create completely new songs.

There’s two ways to mix tracks, each giving you different levels of control over your song:

Mix View

Each track is represented as a circle: as the song plays, you’ll see visual cues representing which track is playing and what effects are applied to it.  Tracking these circles around the screen changes the volume and pan of the track.

It’s a great way to get real-time feedback of changes you make for your song.  It also takes great advantage of the multi-touch capabilities of the iPad.

Time View

As you create your songs, you’ll get to a point where you want finer-grained control over what tracks are being played.  That’s where the time-view comes in.  It looks a bit like a traditional music-editing program, but still retains the app’s simplicity.

You can drag clips around, solo and mute, and decide exactly where each clip will start and stop in your song.

We were thrilled to be part of the development team.  Shapemix is made up of a number of great musicians, designers, and programmers.  Be sure to check out Shapemix in the iTunes store.

What We Do Here (And, We're Looking for Work!)

I’m not sure if all of you are aware of exactly what we do here at Draconis Software.  I thought now would be a good time to let everyone know, since we’ve got some availability for new work.

Here are the three main types of work we do, and why we do them:

  1. Web (Rails, Grails, et al): Our bread-and-butter remains in doing web development.  Despite the complexity that HTTP brings you when trying to build an application, there’s still something exciting about the dichotomies that web development brings: web framework and database, server-side and client-side, function and design.  And clearly web companies aren’t going away anytime soon.  For a while now (probably over a year) most of our clients have tended towards Rails, and it’s also our defacto suggestion for new clients.  Lately though, we’ve been doing a bit more work with Grails, which I think is becoming an exciting framework.  We’re also open to some of the older web technologies, like Java or PHP.
  2. Mobile (iPhone): Our decision to branch into mobile development was influenced by one main factor: we’re in love with the iPhone!  Luckily, the iPhone is also a pretty good platform in which to develop, and many of the methodologies from web development can carry over.  Our most recent iPhone project was creating an iPhone interface for Invotrak, which shows how web and mobile development can be bridged.
  3. New Things!: We pride ourselves on being able to tackle new technologies (see #2 above).  For example, as much as we love Rails, we’d jump at the chance to play more with one of the other Ruby web frameworks, like Merb.  I don’t know what the Next Big Thing will be in a year or two, but I hope that we’ll be playing with it when the time comes!

We don’t limit ourselves to any one type of client.  We’ve worked with public companies, pre-venture startups, individuals, and everything in between.

For anyone interested in talking to us, there’s plenty of ways to contact us, including our website, email, or just leave a comment on this post.

Also, I’m curious if anyone reading this has consulting firms of their own (and/or does freelancing)? Let us know in the comments!

New Draconis Software Site Design

Just a quick note about our new site design (if you haven’t noticed already).  We’ve put a lot of effort into redeveloping our site, hopefully conveying a fun, bright feel.  The main change, though, is what’s no longer visible: our network monitoring system RSP.  As a company, we’re moving in a different direction and have decided to make our site focus on our consulting efforts.

The Draconis Software website has gone through many different iterations over the years, and I’m particularly happy with the direction it’s going in.  As time goes on, we’ve worked hard to simplify our web presence, putting up only the most interesting and necessary information about our company and what we’re up to.  This has been one of the principal tenets of the web 2.0 design movement, and we’ve certainly practiced this with our clients.

But, enough about our thoughts on the site: we’d much rather hear what you think!  What do you like/not like about the new design?

Happy Thanksgiving

Sorry for the lack of posts lately – we’ve been pretty busy. We hired another software developer, and we’ve been working to expand our consulting business a bit. Unfortunately, the blog suffers for this, but it’s not for a lack of interesting stuff! Over the last few days, we’ve had the fortunate experience to work with memcache and a number of other performance-related tools to help fine-tune a very large PHP codebase.

In addition, we’ve been putting efforts into invotrak (our invoice-tracking tool) along with other projects we’re pretty excited about. We should have some details on at least one new site being launched soon, so stay tuned!

Moving on up….

We’ve just “completed” our move to new offices.  It’s a little larger, a little nicer, and so far, I’m very happy with it.  We’ve got the place wired for gigabit Ethernet, VoIP, plus wireless for the laptops, and it should be pretty slick.  Only snag, thus far, is Verizon (our ISP).  We’ve got our telephone line installed, which is really only used as a dedicated line for faxes, but the DSL connection still isn’t syncing.  So, for the time being, we’re working from home.

Sorry posts have slowed down recently (though, when have we ever posted fast?), as we’ve been taking vacations and getting this move pushed through.  Hopefully we’ll be returning to normal soon!

The invotrak blog

The invotrak blogJust a quick note to let you know about the new invotrak.com blog, launching today. If you’re not already aware, we launched a new online invoice-tracking service recently, which helps freelancers and small-businesses keep track of the invoices they send to clients. The service is free, and we’ve seen quite a few people join up.

The blog is to keep much of the invotrak-related content in one place (without cluttering up this blog). It’ll have invotrak-related news (new features, notices, etc), as well as original content we think is of interest to users. If you’re interested in freelancing/entrepreneurship/etc, you may find the invotrak blog interesting.

Updated Draconis Homepage

Check out the updated Draconis homepage – it’s quite a bit different from before, with no flash!  The remaining RSP pages and other related content is still the same, but that will be converted over at some point in the near future.  I spent quite a bit of time on this design, so be sure to let me know your thoughts!

Bad Webapp Names

There’s a funny article up on ReadWriteWeb about some of the worst webapp names, though only 10? Almost every day there’s a stupid name coming across the TechCrunch wires. But on the flip side, you have to give a lot of these people credit: coming up with a name for a product is very difficult.

Case in point: for a long time, we’ve been calling our monitoring software RSP (which, for those paying attention, doesn’t stand for anything). The name is forgettable and boring, and really doesn’t convey what the product is all about. So, in a teaser for the future, we’ll be ditching the name RSP in favor of something else. It’s a bit more web 2.0-ish, it’s kind of fun, and it’s different. I won’t say just what it is yet, but it’s coming soon. :)

(Further) cutting down on the spam

As I mentioned recently, this blog is just inundated with spam on a regular basis, and keeping it from making it into comments is quite a chore. The first step in fixing the problem was to install a CAPTCHA system (in our case, we used a simple math question rather than a hard-to-read image), but it doesn’t solve all the problems. For instance, the other source of huge levels of spam was fake trackbacks. Solving this, however, was so simple I should have done it from day one.

The solution was to install a simple WordPress plugin to check for a legitimate link to our blog – it loads the referenced page from each trackback and searches for a link. If there isn’t one, it marks it as spam. Simple – and it’s reduced the number of spam comments that reach our moderation queue to near-zero.

Between the trackback checker and the CAPTCHA, blog spam is much more manageable.