Friday, May 29, 2009
iPhone Friday - May 29, 2009
Friday, May 22, 2009
iPhone Friday - May 22, 2009
Thursday, May 21, 2009
Make your iPhone application famous
Recently Don turned me onto Stack Overflow a social network site designed for programmers to ask questions or to answer previously posted questions about (mostly) programming. Since I've been on it for some 21 days, I have enjoyed it greatly. I've asked questions and have had answers posted quickly, most of which concisely answering my question. I think I'm hooked. As well as asking questions I do like to scour the site looking for newly posted questions that I can answer. One such question was "How to make a program you developed get famous?" Not only did I answer it, but it was both flagged as being the correct answer as well as the highest voted answer. Here is the excerpt from that posting:
Before I start with my points I'd like to say that your application needs to have a compelling story, a value add, a niche and that it fulfills a function that is necessary. If you have just an application that is like all of the others (like your competition) with no value add, ease of use, great user experience, etc... then it will be very hard for you to be heard above the noise.
First, you need to find what sites are talking about your competition. Once that is known approach them and see if they would do a review.
Second, if you have not already, contact a PR company and do a press release, be sure to focus on the applications target audience.
Third, send out samples or request to have your application reviewed by the same people who are reviewing the competitions applications. I find that when developing applications if I can ping reviewers in the technology section of some of the popular print and online magazines and the review is published you'll get great exposure.
Fourth, once you get the ball - run with it. Consider the feature list and upgrade path and try to time it with events that are near your applications market space. When updating (significantly) contact all of the same people who you contacted before and ping them again with why the new version deserves some notoriety or at least a review.
Fifth, once you do start getting press, use it to push it into the hands of others to review and talk about. If you can work the right angle and have a good story you can create a snowball effect and have some great press in a short amount of time.
Lastly, you'll need to have media available for people to see what it is that you are offering. If you have not already set up a channel on YouTube or one of the many other video hosting sites. Post at least one video of the application featuring some of the highlights. If you want to maximize your exposure and you have a significant feature list consider making multipule videos with two or three features with better coverage. But remember people have short attention spans and want to know as much as they can about something in the shortest amount of time.
Now there are many more thing that you can do to get your app, your company, and yourself noticed but I only had enough time to go into as much detail as I did.
I hope this information helps you in your promotion of your app and please feel free to comment if you can think of any other good tips. Cheers!
Saturday, May 16, 2009
Friday, May 15, 2009
iPhone Friday - May 15, 2009
Thursday, May 14, 2009
Clang Checker: Making your development and debugging life easier.
As someone who is relatively new to Objective-C and to hard-core OOP in general, I find that Xcode's debug tools are more than a little confusing to me. With vague or rather non-informative hints as to where a problem is or exactly what the issue pertains to, it does not help me fix the issues at hand and I find myself asking Don for more pair-programming time - or in this case pair-debugging.
As I have very much enjoyed Evan and Alan's lectures thus far and when Evan mentioned Clang I thought I should at least take a look at it and try to understand what it is and if it can help us with developing and debugging our suite of iPhone applications.
Clang is designed to be compatible with code that can be compiled today with GCC. That's very exciting for the open source software community, because it means that Clang and LLVM could some day be used as a complete replacement for the entire GCC stack.
-- Ryan Paul, Ars Technica, Things that go Clang in the night (Article)
So what does all this mean and how can I use it were my initial thought followed by and how hard will it be for me to install and implement such a tool? The answers I found were easier than I thought. But to provide you with a snapshot of our current state of things I should walk you thought the steps in which brought me to this current point.
Download and Installation
The first thing I had to do was go to the LLVM website and find the correct files to download. As the link was in Evan’s presentation I simply clicked myself to the page; I will provide the link for you here. There are additional ways to download the current build of Clang Checker via outlined here; as the project is under heavy and constant development you may find new updates posted daily.
Once I downloaded the tar ball I moved it to it’s new home, in my case Documents>Xcode, where I then expanded the file and renamed the folder to ClangChecker.
Creating the Path Shortcut
Now that I have the file I could follow the instructions and run it with the long command line instruction in Terminal, but since I have to use Terminal I would like the experience to be easy as possible. Evan commented on adding a “shortcut” into the .bash_profile and demonstrated his version using emacs. That was fine but I prefer pico, and you may prefer vi or any other text editor. Here is what I added to the .bash_profile file:
Here I’m telling the terminal to look for the script to run in the directory where I unpacked the tar ball I uninstalled and renamed. This allows you to avoid typing in the path each time you’d like to run Clang Checker. Great, but to use Clang Checker I still have to “clean” the Xcode project I’m working on and navigate to the root folder in Terminal, then type the command... At this point I showed Don what I had done.
Running Clang Checker
I showed Don Clang Checker, ran the script and we immediately watched Clang Checker spew output to the Terminal window. Moments later the compiling and checking was done and Clang Checker launched Safari with our report: four errors, two ‘retain/release’ issues and two leaks. We click on the view link and it opened a formatted version of the source with annotations of the issues in the file. Don started to walk me through the report but I asked him to allow me to walk him through it as this was a test to see how I could use it.
After walking thought the colored messages for a few minutes I had solved the issues at hand, opened Xcode and fixed the problematic code then progressed to the next issue. Within six minutes I had corrected the code and ran Clang Checker again. This time no Safari, no report, and no information. What did I do wrong I started to wonder. I looked at Clang Checker’s output in Terminal and saw that no reports were generate because there were no errors in the code. I did it -- I had debugged code all by myself with the help of Clang Checker. A feeling of accomplishment washed over me for being able to download, install, run, debug and compile without error. Thank you Clang Checker... Now about that long command...
Simplifying the Running of the Script
I asked Don if there was something I could do to reduce the footprint of the command that I had to enter as it’s was the same command and I was not using all of Clang Checker’s switches. I wanted a alias, much like the shortcut to the path were the compiler now lives. Don suggested creating a shell script. This did not sound good, easy or fun. But it was simple. I opened pico again and typed the following:
scan-build -k -V xcodebuild -configuration Debug -sdk iphonesimulator2.2
I then saved the file as “clang” in the current directory. To run clang I just need to have that file in the current build directory, have a clean project, open Terminal to that folder and type “./clang” to run the build script.
I’ve only been using it for the past few days but I’ve already developed a fondness for it. Remember that Clang Checker is in it’s infancy and is still being developed and as such is prone to erroneous message such as false positives. I have only heard this and have not experienced this but I assume that this in working on complex code implementations of the language your working on or having a very large code base for it to process.
I hope you found this information as informative as I have and that you try Clang Checker. I’d be happy to hear your thoughts or experiences on this matter so please, comment bellow. Cheers!
Friday, May 8, 2009
iPhone Friday - May 8, 2009
Tuesday, May 5, 2009
OCUnit: Integrated Unit Testing In Xcode
Kailoa's article shows you the steps to get a unit test target up and running. While it requires a couple of manual changes to the build settings, it's nearly identical to using OCUnit with plain old Cocoa. One gotcha I found was that you must build your application with Active SDK 2.2 or later -- the unit test target will fail when built for earlier iPhone OS versions. Given that the number of users still on 2.0 or 2.1 is probably very small at this point, and sure to get smaller when 3.0 is released, this isn't that bad of a limitation.
I had previously used Google Toolbox for Mac to write iPhone unit tests and that works just fine, but it's nice to find out that it's now built in to the SDK.
Friday, May 1, 2009
iPhone Friday - May 1, 2009
Also, I've found that if you want the full-size image you need to click on the image to load the original image, then follow the instructions to save the image for use on your iPhone or iPod touch.