The short list of our specialties can be summed up in a single sentence: We specialize in Macintosh Desktop Publishing-related programming.
What this means is that we want to help you help people communicate. Specifically, we can help you make your Mac application print better, work better with fonts and typography, exchange information with desktop publishing applications in formats they use, such as EPS, TIFF, and PDF, and can help tie all the pieces together.
Since 1999 we’ve mostly been helping companies move their applications from “Classic” Mac OS to Mac OS X, so most of our experience is with Carbon. We think Cocoa is a good way to go if you’re starting from scratch, but we’ve spent more time helping companies move existing applications forward than building new applications from scratch.
Specific technologies we support are:
- Printing, mostly from the application side, but we’re also familiar with classic printer drivers. We’ve been working on printing stuff almost all of the time we’ve been working on the Macintosh, and it’s probably our strongest suit. If your application still calls AppendDITL before displaying its print dialog, you need to talk to us.
- Text & Fonts are important, since if you need to print, you almost always need to print text. Providing your users with a good way to work with fonts can be very important, especially if your application is cross-platform and you want to maintain the correct fonts in documents. We’re also familiar with font formats, and have written code to read TrueType and Type 1 font data, as well as a TrueType to Type 1 font converter. We’ve looked into OpenType and are excited to see that it’s finally just about ready for prime-time.
- Typography is important to make those fonts look good. Apple’s ATSUI is pretty neat stuff, and we have experience in using it to both make typography look better as well as making typography look just like it did in older versions of applications, since that can be important to users. Sure it’s neat to be able to automatically add ligatures to your application, but not if your users have already spent a bunch of time making their text lay out just so and don’t want their text to reflow.
- Graphics & Imaging in general, but specifically we’ve worked with various graphic file formats. We also have some experience in making those graphics draw and print as quickly as possible so your application will feel faster to users. Sepcifically, if your code still calls PicComment, you need to talk to us. We know PostScript graphics well, and this has been useful in converting applications that used mixed QuickDraw and PostScript graphics into applications that are purely Quartz. The code generally cleans up nicely (I have fun every time I spot code from the 80s that decomposes a spline and draws it as a series of LineTos and turn it into one or two Core Graphics calls), and output looks better across the board. We also know various PS-centric formats such as EPS, PDF and fonts (see above) and can read or write them when needed.
- Internationalization (I18n) is not just a matter of “let’s use Unicode to store our text” and we’ve got experience with both the old way of internationalizing applications (scripts on the Mac, and code pages on Windows) as well as with Unicode. We can help you make the change if you need to support the rest of the world, and we’ve seen just how complicated this can be in some applications.
- Networking is useful when you need to transfer data between computers. We wrote implementations of file-based networking protocols back when you needed to write your own code to move files around, plus we’ve implemented protocols that aren’t supported by current operating systems.
- And more. We’ve converted PowerPlant containers over to STL. We’ve helped with refactoring applications so companies can move their code-base forward in the future. We’ve done performance work when existing code seemed to get slower with every release, even as hardware got faster. And we’ve come in for short periods for an intensive session of bug-fixing when problems with new technologies left our clients with problems that needed fixing right now.
