Starting with Habits 1.1, I started incorporating static analysis into my build. In my previous experience with things like Lint and FXCop — I had found the signal to noise ratio to be too low to be useful. It’s hard to believe, but scan-build is 100% signal — every single issue it flagged was legitimate and needed to be fixed. Now, keeping Habits free from issues is easy, since I only have to deal with one or two at a time.
There were a couple of times I thought it was leading me in the wrong direction, but it was right so often that I just trusted it, and it was right about those too. I had a particularly interesting case with a custom table cell, where I wasn’t releasing properly, and causing a crash when I dealloced the window. Scan-build helped me make sure I found that before release.
I thought Java was bad. Took me a while to figure this out and googling didn’t help, so I am just putting this out there for the next person who needs this.
To get the number of days in a month:
+ (NSInteger) getDaysInMonth:(NSDate*)date
NSCalendar * cal = [NSCalendar currentCalendar];
return [cal rangeOfUnit:NSDayCalendarUnit
There’s a great thread by an iPhone developer on Reddit.
Yay! It took several months but as of today I was able to search for my app and I saw it listed inside the app store. Now you may be saying “so what”, but if you have ever looked into the steps that this takes, you know it’s something to celebrate.My app is a very simple game, but I think I’ve learned enough during this process to distill some important lessons that may help you if this is something you’ve been wanting to do…
I wrote a similar post when I finally finished my iPhone App.
Helen Crozier, the CalmTechCoach, has started a new iPhone Blog to keep all of her iPhone recommendations and reviews in one place. Check it out: My Fabulous iPhone
I saw this list of New Year’s Resolutions on the Did I Get Things Done blog (originally from Amazon)
- Lose Weight
- Get Your Finances in Order
- Go Greener
- Curb Your Vices
- Get in Shape
- Relax More
- Pursue a New Career
- Upgrade Your Technology
- Organize and Optimize
- Start a New Hobby
The main reason that I have had a problem with a resolution is that I don’t really think about them much a week or so after New Year’s. A few years ago, I created a small web app for myself to log how well I was doing at keeping to resolutions I was making. A few months ago, I ported it to the iPhone as Habits.
Instead of making resolutions this year, I created a few habits instead. I want to lose some weight this year (the #1 resolution), so I added a habit to run every 2-3 days, to do bicep/chest and shoulder/tricep weight training once a week. I want to keep my house in better order, so I added a habit to clean up and to process my mail pile more regularly.
A lot of these resolutions should just be a recurring task that you try to do as often as possible.
Macworld reviewed some GTD iPhone applications including Habits:
Habits by Louis Franco helps users form good habits, which sounds simple enough. But developing habits requires a bit of time and discipline. It requires repetition and awareness. Habits keeps your calendar free from clutter associated with routine tasks or the general stuff of life.
Habits is the perfect application to make sure that you stick to your New Year’s resolutions, so from now until the end of January, I am putting Habits on sale for $0.99.
I am working on version 1.1, and I will post it at the end of January and return it to its old price. Until then, here’s hoping that you’re able to turn your resolutions into habits.
(The AppStore takes time to fully update — please make sure it says that the price is $0.99 before you buy)
Buy Habits on the App Store
iPhone AppStore Answers from O’Reilly’s Inside iPhone Blog. There are frustrations with the AppStore, but as O’Reilly acknowledges, Apple appears to be listening:
Changes have been relatively slow to come to the App Store. However, with the addition of review copies, as well as limiting ratings to those who’ve purchased applications, Apple has made changes that have been welcomed by developers. I’m hopeful that the App Store will continue to improve over time and address additional issues.
The other major improvement is dropping the NDA for released SDK’s, thus opening up the possibility of books, online tutorials and blogging about iPhone development.
From Chris Anderson’s The Long Tail blog, I got this link to some interesting iPhone pricing and sales data.
Having more than doubled over the last two months, Gaming remains the largest category accounting for a quarter of all apps. The fastest growing categories were Education and Lifestyle. Medical is the newest app category and as of the end of November there were over 80 medical apps, the 10 most popular of which were free. Among Game apps, Racing, Music, and Sports were the fastest growing Game sub categories.
And, here’s another iPhone app pricing article I got from John Gruber’s DaringFireball. In the article, Peter Cooper uses popularity as a stand-in for units sold and and tries to figure out which apps have the most revenue. Put this one in your RSS feed if you are interested in hearing more as this installment covers mostly the Games category.
Today, Seth Godin is giving away iPhone App ideas, the first one helps you avoid traffic:
Have the iPhone use the gps data… upload where I was a minute ago and where I am now. Figure out my speed and route. Use the data to tell other RadaR users which route is best. It’s worth $20 a month if you live in a place with traffic jams. It’s a natural monopoly–once someone figures it out, why wouldn’t everyone want to use the market leader?
The Google Maps app on the iPhone has traffic data already–what’s missing is that I don’t think it takes that into account when selecting a route, or updates it if conditions change. If the traffic data is available with an API (like most google data), then this might be easier than even Seth thinks (no server side) — of course, no lock-in either.
The second idea needs some kind of server-side dialier because Apple doesn’t let apps run in the background:
Here’s an easier one that you could probably sell as well. I type in a phone number and enter a time. Record a message and press go. I can cue up a bunch of messages that are based on time. I can have groups get the message I record, at the time I want them to get it.