i bought Programming in Objective-C back on May 21 of 2004 (Amazon.com tells me this when i just checked). i thought it was a terrific book, but it wasn't out of date back then. heh. still, it really does do a good job of helping the newbie understand object-oriented programming in that every example also includes all of the code and explanations to understand it.
the next book i shifted to was even better. here's the link (highly recommended):
I've got 'Cocoa Programming for Mac OS X' by Aaron Hillegass to delve into once I've finished the first book - this one is consistently the most voted for on the CocoaDEV website. I see that I've got two major learning slopes to climb - the language, and the IDE! But I'm sure the IDE will make a lot more sense once I get the language that it's intended to help code with.
- padmavyuha
_________________________ If it's brokenless, don't suffix it...
You might consider trying a free trial of Revolution (http://www.runrev.com). You could try either the Revolution media version or the Revolution Studio version if you actually want to compile a stand-alone app which you might make available for download or sale to others.
I use Revolution to develop each of the apps I sell on my website, and I think that it would be worth a look. Revolution is generally considered to be easier to program than either RealBasic or writing a Cocoa app in C.
If you have ever previously done HyperTalk programming, then you would feel right at home using the Revolution programming language, as the syntax is compatible. I like being able to spend more time thinking about and planning my software features, as opposed to dealing with the intricate details of the actual programming language itself.
I am not sure exactly how I would design the app you are planning, based upon the screenshot I see in your post. But it would be rather straightforward to quickly prototype the GUI elemets and decide which features you need. It looks like the center graphic is programmatically created - and this is something you could certainly do in a number of ways in Revolution. If the various color bands around the edges are active, then maybe these could tie to the color picker to get their value. So that when you click on the item, it pops up the color picker gets the color for you, and then you can use the selected color to set the color of the object. Actually this is just a few of lines of code in Revolution:
on mouseup answer color set the backGroundColor of me to it end mousup
So you could make rows of little buttons across the top and sides, turn off the showBorder attribute - and you would have a nice little rectangular area of color. The code I listed above would go into each field (just keep duplicating them).
Thanks, I'll take a look at it - though I'm interested in learning Objective-C for the same reasons I'm interested in improving my French - because it's a language used worldwide by many people, in environments I'm familiar with.
I've got something similar to what you described in mind, except that I'm going to have a setup for users to save colours to a list (something similar to Quark's); that way, you can keep a 'catalogue' of fibre colours that (near enough) match your existing stock. Then you can see what a a real combination of colours looks like - and then tell the app to swap DarkBlue-5 with BlueGreen-2 in the selected warps and see how it looks different, undo, redo etc. etc.
The centre panel will indeed be programmatically generated, that's going to be the most fun part! I'm in the middle of writing pseudo-code to scope out the logic behind which colour displays in which 'cell', and what the rules are. It's actually very simple, as each cell just has a warp/weft toggle, and a corresponding colour that it gets from the edge markers.
It gets a little more complex if I go for more fancy graphics which I'd like to add at some point, so you can choose either a simple graphic analogue (as in the image at the top of this thread) or a more sophisticated one that simulates the threads going over/under each other using a little shadow overlay; this requires each cell to know whether it's a riser or a diver or a middle, as well as warp-or-weft.
Once I've got somewhat further on with the language, I'll be picking developers' brains about how best to maintain this display area in terms of speed/memory use.
- padmavyuha
_________________________ If it's brokenless, don't suffix it...