Tuesday, February 17, 2009

Something Technical

As most of you know (if you've read my into post) I'm studying to be a computer scientist, and in this semester, we finally did something technical already, well, a week ago now, but I haven't gotten time to write about it. We had to analyze and write a short summary of a article that was released in late 2008 about the iPhone. The article was about designing and publishing applications for the iPhone as a third party company. As a sort of test to people aside from my professor, here's the article;


The iPhone SDK, a development kit meant to be used with the iPhone. It was first portrayed that the iPhone wouldn't support 3rd party applications, but it was soon after reviled that with the Safari browser, that web applications could be made to feel like native applications, and about a year later, Apple reviled that they had a development kit for the iPhone, the iPhone SDK. The SDK is rather straightforward, and easy to install, unlike some, though it has some quirks, like that it must be run on a Mac, and can't run on a Windows machine.
For one to use the iPhone SDK, they would need a basic understanding of how programming works with the language C, though that really isn't enough. To be able to program for the iPhone, one needs to learn Objective-C, a language almost exclusive to the iPhone and the Mac. The difference between the two languages is mostly in syntax, and a few extra keywords that were added. A simple example is a method invocation, in C++ it looks like; "object.method;" where in Objective-C, it looks like; "[object method];" Slightly different, yet different enough that some extra knowledge is needed.
The tools that come with the SDK are in essence, all that one would need to program for the iPhone. The tools include a IDE for project and resource management (the Xcode IDE), a companion tool for the Xcode IDE, an Interface Builder, a debugger, and an iPhone simulator (note not a emulator). All of these tools do what one would expect. The Interface builder is a drag and drop IDE that works with a layout of the iPhone. It can as well tie buttons to method calls, so that when the button is clicked, it activates the associated action, or method. As well, An outlet can be bound to a variable, for example, a text label would be exposed as a Outlet, and when bound, it would on runtime, be bount to the controls on your use interface, so as to say, when the label's text property is set, the Outlet's text would change as well.
The simulator is exactly that, a simulator of the iPhone, but it must be noted, it is not a emulator, so it does not include some features that the real iPhone does, such as GPS input data and the accelerometer, though that could be somewhat easily remedied with a interface that sends the simulator data to sample. As well, since it is not a emulator, it does not cycle-for-cycle equivalent of the actual iPhone. Though most of these can be over looked slightly, there is still great benefit to having at least one actual iPhone to test the code on.
For the small team, there are a few obstacles that are hard to face, especially for a small private company. To use the iPhone SDK fully, publish the finished program, and distribute it, assuming that each of the developers had a Mac computer, it would realistically cost only a $99 subscription fee, or $299 for in-home release. However, if on-device debugging and testing, costs another $99. All things considered this isn't so bad, $198 to get everything done, after a few sales, you should be all made up for, however, if each of the team members does not own a Mac, or have one to use, the price is much higher, with the lowest priced Mac upward of $550, have a team of half a dozen, and the cost quickly becomes a few thousand dollars. For a small group of people, if everything is already had in hand, and money isn't a problem, then it can be done, however, it depends on the group, and what is had in hand.

No comments: