[plans setBestLaid:YES]; [plans setAstray:YES];

Well, the fishing trip went well and I learned a big, big thing about myself…

I cannot code on a bus.

I have always suffered from motion sickness, but man alive I had no idea how difficult it was for me to do something as simple as just sketch ideas. Combine that with a feeling of, “I really shouldn’t bust out the giant, shiny laptop on a bus system on which a nice camera was already stolen.” and absolutely nothing was done on the travel diary project.

Which isn’t exactly a true statement. Code-wise nothing was done, but data was collected and the basic functionality more clearly defined. It is, of course, always prudent to know where you’re going when designing any application, and I believe I have a more narrow focus for version 1.0. Additionally, much work has been done on my own to make certain I feel comfortable with the differences between AppKit and UIKit. I really cannot thank the good folk at Stanford for making the CS193P class freely available, with all course handouts and slides. While the early episodes contain content that I can breeze through, the latter ones focus in keenly on those things unique to UIKit.

Sales for filewrangler 2.0 continue to trickle in, and I can really only blame myself for not getting on the stick about pushing 2.1 out. I knew I wouldn’t have much time to devote to development between the initial release and now, and I’d rather the software be put to use and generating bug reports than sitting on my hard drive, unused and unloved. Interestingly enough, there have been zero bug reports on filewrangler 2.0 to date. I’m not sure what to make of that statistic.

So, here’s what’s going on…

1. iPhone/iPad travel diary app. It is in the “interface sketch” stage right now. Then comes some additional studies/research into Core Data and iOS SDK things. Then I think the app itself can be pulled together rather quickly. It isn’t trying to be all things to all people, has a narrow focus, and a clearly defined purpose. Once the data model is nailed down, manipulation of said data should follow established methodologies in other similar apps.

2. filewrangler 2.1 Audit all class implementations with a fresh set of eyes. I’ve no doubt there is some low hanging fruit as far as algorithm optimizations. The code that creates the draggable panels can be abstracted and consolidated quite a bit. Additionally, in talking about the functionality in person with other developers I finally made a mental breakthrough on the internal model for the filters and builders being members of an as-yet-undeveloped super class called a Worker. Every Worker contains a Panel, and I believe this may be the ultimate internal abstraction, giving me a nice generic way to think about the future directions for the software. There is definitely some redundant work happing with filters and builders, which I can optimize for better performance.

Those are the small things and clean-up things I need to do. For new features, I think 2.1 will introduce File List support, allowing for line item editing of individual files/folders, and possibly even manual reordering of line items such that a sequencer will affect your file list in a known way, rather than relying completely on the Finder-generated list order. Additionally, filewrangler’s first international localization will be applied. Very likely this will be in Japanese as it is a language I have familiarity and interest in, and will help me build portfolio material for possible future jobs there. However, German and Italian are probably more important to the product’s success, according to the registered users and Google Analytics. For now, start with what I know.

3. New job. I recently started a contract-to-perm iPhone/iPad developer position with Eveo. Some real long-term Cocoa experts on our small mobile team; I’ve no doubt I’ll be learning quite a lot over the coming months, especially with regard to diligence on my part to code at night after having spent a whole day of coding for work. However, I do feel filewrangler 2 and the travel diary have real utility and I wish to continue contributing in whatever small way I can.

Thanks again to those who have supported filewrangler 2.0 financially thus far. I really cannot express how happy I am that there are people who feel the program is worthy of their hard-earned money. Of course, the “new mail” sound of the iPhone now triggers a, “Did I get a new sale?!?!” Pavlovian reaction. There are tradeoffs in everything in life, I guess.

Still Fishin’

Apologies for the scarcity of posts lately. I seem to have fallen short of my personal promise to myself of keeping my customers “in the know” and so a quick update today is in order.

Thus far, filewrangler 2.0 seems to be well received. Sales are almost nonexistent, but downloads are decent considering there have been no dot updates to push filewrangler back to the top of the “recent updates” of MacUpdate and VersionTracker. I knew when I released version 2.0 that I wouldn’t have much time to work on it until certain life events passed, of which I am currently in the thick. However, a non-released software does NOBODY any good at all and it was better to release and get feedback than to wait until I was done with everything in my personal life.

So far I am happy to report that there have been zero bugs reported on filewrangler 2.0. Does this mean nobody found any bugs? Does this mean nobody cares to report the bugs? Does this mean the bug-reporting process eludes my customers? There have certainly been feature requests, but even my paid customers have not reported any bugs to date.

For future dot releases, I have a preliminary roadmap of what I’d like to do with versions up to 2.5. I always find it much, much easier to program when I know where I’m going and it definitely helps me get my head around the order of events necessary to make certain future features viable. Right now I’m working on simplifying some of the internal communication structure to make future modifications a little easier and to (hopefully) speed up the live-previewing functions of the program. They are quick for modest data sets, but can certainly bog down a bit when working with large data sets; so, I’d like to make sure that that user base is well served.

I’m currently trying an experiment in rapid-prototyping/rapid-development of a Core Data-based iPhone application. I’m working quickly to get some of the differences between iOS and Mac OS X development a bit more firmly ingrained in my mind as it has been some time since I really dug into Cocoa Touch. Some of it has been eye-opening for a second time (how quickly we forget the lessons of the past).

The application is a travel diary with some features I’ve not seen in other, similar applications. The functionality is being driven by my girlfriend, and I’m basically trying to relegate myself to just being the coder. While we travel we will use the program, and if I’m not exhausted from hiking around all day long, then the usage patterns of the day will drive changes to the design that will be incorporated in the evening for use the next day and so forth. I’m really looking forward to working on a project that is someone else’s concept and will have such rapid cycle of iterative refinement.

After the trip I hope to polish the app and release it to the App Store within two weeks. The current intention is to make it iAd driven, keeping the cost free yet hopefully funding future development projects. My current concern with making it iAd-driven has to do with data roaming. I haven’t read anything on the iAd SDK yet, however for those taking this application on the road and who also turn off data roaming, will iAd balk and break? Will iAd cache ads for display later? Can I set iAd to only grab ads when the user is on a WiFi network? Basically, if the network provides the revenue stream, what do I do when the user turns off the network? Something to consider for the future.

Gone Fishin’

Now that filewrangler 2.0 has been released, I’m taking a short road-trip around the American Southwest, visiting the Grand Canyon, San Diego, Disney, etc… I will be issuing licenses while on the road (not to worry), and the 2.0.1 update will wait until I get back to an internet connection that isn’t described as “squirrely.”

I’m happy to report that the program is proving to be well-received; I’ll be making a larger P.R. push while on the road as well. The feedback thus far suggests to me that the vision for the program is solid and those who have purchased seem excited about the future potential. A special thanks to the first purchaser, Lynn!