Archive for March 19, 2011

Saturday, March 19, 2011

Comparing iPhone Text Editors, v2

Since my previous comparison, I’ve experienced more problems with Simplenote and started using Notesy (prompted by Dr. Drang and others). I’ve updated the table accordingly.

To reiterate, I want a plain text editor that works with Dropbox. This gives me full control over the backups, and it lets me edit and search the files using BBEdit, EagleFiler, and LaunchBar. An iPhone app is essential; an iPad version would be a nice extra. It’s important to me to be able to search across multiple files on the iPhone, pick a matching file, and then jump between the results within that file. Being able to see a search results list with the matching words in the context of their lines would also be nice. Locayta Notes and Simplenote were the only apps I found that could do more than show the filenames of the matches, but unfortunately they both had other drawbacks. Thus, I am currently using Notesy, which has a rudimentary search feature but works very well in other respects.

Droptext 1.2.1 Elements 1.5.1 Locayta Notes 2.0.1 Nebulous Notes 4.3.1 Notesy 1.6 PlainText 1.3 Simplenote 3.1.4 (Premium)
Choose Folder on Dropbox Yes No No Yes1 Yes Yes Yes2
Nested Folders Yes Yes No Yes1 No Yes No
Works Offline No Yes Yes Yes Yes Yes Yes
Choose Font No (Helvetica) Yes Yes3 Yes Yes4 No (Georgia) No (Helvetica)
Font Size No Yes Yes3 Yes Yes4 No Yes
Font Color No Yes Yes3 Yes Yes No No
Background Color No Yes No Yes Yes No No
Multi-File Search No Yes Yes5 No Yes No Yes
Search Results List No No Yes No No No No
Jump Within File No No No No No No Yes6
LF Line Breaks Yes No Yes Yes Yes Yes Yes
Sort by Name Yes Yes Yes Yes Yes Yes Yes
Sort by Modified No Yes No No Yes Yes No7
Rearrange Lines No No No No No No Yes
Versions No No No No No No Yes8
Price $1 $5 free $2 $3 ads or $5 $20/year

1. Rather than syncing everything, Nebulous Notes makes you choose individual files as “auto-saves,” which is a drag.

2. Simplenote seems to be much slower than the other apps at picking up changes from Dropbox. It was often 5 minutes out-of-date, and sometimes hours or days. You can force it to sync, but to do that you have to go to the Simplenote Web site.

3. Locayta Notes is the only app I saw that lets you set font and color options per-file.

4. Notesy lets you set both a variable-width font and a fixed-width font, which is a good compromise between choosing just one and choosing per-file.

5. Locayta Notes does some sort of indexed/prefix search, coupled with auto-correct, which didn’t work well for me. Some words it didn’t find at all. When searching for “cat” it would find lots of useless matches of “at” but totally miss “wildcat”.

6. Simplenote’s results-jumping did not work for me with files containing basic Unicode characters such as é and . The tech support person was not able to tell me which subset of characters to avoid, so the only solution seems to be to stick with ASCII.

7. The option is there, but in my experience the modification dates shown in Simplenote, if I’m using Dropbox, have little relation to when I actually edited the files. The tech support person said this is not the normal behavior and is looking into the matter but has not yet found a solution for me. Even going by the displayed dates, the sorting is sometimes out of order.

8. Simplenote’s versions feature is like the one in Lion and works within the app—very cool.

Using ppc and 10.4 SDK With Xcode 4

Mecki has some Terminal hacks for using older SDKs and GCC 4.0 with Xcode 4 (via Nat!). It’s nice to know that this can be done, but I wouldn’t count on an unsupported configuration continuing to work for very long.

Make Sure Your iOS Device Is Really Encrypted

Rich Mogull notes that in the (I would think, common) case of an iOS 3 device updated to iOS 4, your device isn’t actually encrypted unless you disable the passcode, back up, restore, and then re-enable the passcode. However, a standard four-digit passcode is probably easy to brute-force, so this may be a distinction without much difference.

imp_implementationWithBlock()

Bill Bumgarner:

In particular, imp_implementationWithBlock() takes a block as a parameter, copies it to the heap, and returns a trampoline that allows the block to be used as the implementation — the IMP — of a method in any Objective-C class (as long as the block’s arguments and the method’s arguments are compatible).

Most code will never need this, but in rare cases it will be incredibly useful. Currently iOS-only, unfortunately.