Cocoa

Schoolhouse in Ars Design Awards, on MacAppStorm

Tuesday, May 25th, 2010 at 11:23 p.m.

Graphic property of Ars Technica

Ars Technica, the wonderful tech website, saw the sadness in many a Mac developer's eyes when Apple decided to restrict the Apple Design Awards to iPhone and iPad apps only. As such, Ars Technica decided to hold a little awarding of their own.

In the form of the Ars Design Awards for Mac OS X.

The coolest part of this, for me? Schoolhouse is nominated in the "Best Student-Created Application" category. I'm very humbled and excited. It's such a good feeling to see something you've created respected enough to attain a place in the nominations. Among the other candidates are, of course, some of the best Mac apps out today, including Transmit, Pixelmator and Dropbox.

This should be a fun and welcomed replacement for our development community's efforts.

Thanks, Ars Technica!

Update: It's also come to my attention that Schoolhouse is featured on MacAppStorm today in their 20 Time-saving Mac Apps for Teachers. More awesomeness than I expected.

Update: I WON!

Tagged as Apple, Cocoa, Schoolhouse

Ideas for a Web Editor

Friday, December 29th, 2006 at 10:01 a.m.

So I've been hard at work on my various projects, including Schoolhouse 2, which is still finishing up. But that's not what this post is about.

I've been tinkering lately with WebKit. Ever since I first read about it I've found it incredibly interesting. An entire implementation of the web protocols complete and documented, with everything a web browser-programmer would want. But I realize there is a smorgasbord of WebKit-based browsers out there, some good, like Safari, Shiira, OmniWeb, and some not so good. (No names mentioned.)

Anyway, I realized that although there were several good browsers, there seems to be no good web editors. Yes, I know there's iWeb, Sandvox, RapidWeaver, blah blah blah. But each one has a single flaw that drives hard-coding web martyrs away. They don't let you edit HTML...which is funny. Yes, I know they each compile the elements in the last stage and produce HTML, but wouldn't it be nice to edit HTML and see the changes take place live, using WebKit, with tools to aid in the construction of pages easily, ala Dreamweaver, but in a more Mac style? Dreamweaver, at least in my opinion, is aging. Just as Photoshop is. Although Adobe is buffering them up for the CS3 release, and I do say that Photoshop CS3 is pretty and powerful, it still lacks that Mac style that we so love.

Back on topic, I like the idea of writing an editor using Cocoa and WebKit. With all the cool stuff available. But not just HTML. I want to do CSS, JavaScript (anyone know how Dashcode implements the debugger, that'd be sweet!) and possibly other scripting languages that are server side, like PHP. But simple. Easy. Done for you basically to the point you put your stuff in, code away, and be happy that you're not looking though your reference books all night.

Here's an idea of the basic shell I have so far. It'd be document based, using the normal types as it's documents. (i.e. HTML, CSS, JS, etc.) I don't think I'd want to do a project-style system ala Xcode, Dashcode, etc. Just a web editor.

I know what you're thinking. "I use BBEdit and it works so well blah blah blah" or "I love TextMate, it's blah de blah de blah". Well, they are nice. I like them. But they aren't for specifically web programming. They are broad based. Which doesn't allow them to have things like element inspectors, debuggers (oh please let this be easy...) and the stuff WebKit provides. I think a good web editor with these features would benefit well.

Here's also a screenshot of what I've got so far:
Preview

So, what do you think? Think I've gone crazy? Maybe. But I might just open this up and start a project going. If anyone's interested and has experience in Cocoa and WebKit, drop me a line.

Tagged as Cocoa

Diving into Quartz 2D

Saturday, September 30th, 2006 at 9:35 a.m.

So for the past few weeks I've been working a lot more in the graphics-area of Cocoa. I've started a new project that leverages the advanced drawing abilities of the API, but in some cases I have found myself dropping into Quartz to do tasks, and I find it quite welcoming.

Some people may say that Quartz 2D is a strange hybrid...because it's pretty much just that. It's a procedural C-based API that uses a Cocoa-esque memory management system (retain/release) so you really feel at home, even though it isn't Objective-C. When I first started to play around with it, I kept thinking to myself 'Wow...there is so much here that isn't yet exposed in the Cocoa APIs'. Things like layers, gradients (called shadings in Quartz 2D) and advanced path drawing are all there, hidden behind the scenes for the smart developer to take advantage of.

And you know what, It's amazing to me how easy it is to adopt Quartz 2D code. You'd think with anything like this there'd be a lot of reading up on integrating the API with your current Cocoa stuff, then working on getting data between the two, etc. But here again, Mac OS X shines through. Most of Cocoa's graphics stuff (NSBezierPath, NSShadow, etc.) has its roots in Quartz 2D code (obviously) and most of the stuff JUST WORKS. Now, I'm not saying the classes are toll-free-bridged like CoreFoundation, but everything has a level of functionality that just makes it easy to drop a block of Quartz code in my Cocoa classes and it works perfectly. I just find that so wonderful.

That is how everything should be, and in most cases IS in Mac OS X. I mean think about it...CoreFoundation started it all. It provides a base level for both Carbon and Cocoa, and it works the same way for both, shielding it from the executable. Quartz is the same way. It can be used from Carbon or Cocoa, and the executable doesn't know the difference between NSBezierPath drawing and CGPath drawing.

This also allows things like CoreImage and CoreVideo (and CoreAnimation, soon to be my favorite thing since sliced bread), to really shine, since they are based in Quartz (but CI is Obj-C, just like Cocoa). This is best for developers, since they don't have to learn all new languages and APIs and new ways of working with their code just to put a Sepia filter on an image.

So, when you want to do some pretty cool graphics stuff on Mac OS X, you don't have to stray far from your happy little Cocoa world. Quartz just makes everything better.

Tagged as Cocoa