iCPAN - CPAN on your iPhone
Mark Jubenville and Olaf Alders
What is iCPAN?
- CPAN for offline browsing
- Based on minicpan
- 8,174 authors
- 56,483 modules
- POD Generation and Database Population in Perl
- Syntax highlighting via Pygments (Python)
- Implementation in Objective-C
- Database abstraction via Apple's Core Data
Motivation
- We wanted a system that can be used without any kind of Internet access
- Ideal for use on subway, airplane, in a canoe, etc
- Nothing similar was already available in the App Store
- Was a good opportunity to learn Objective-C and Xcode
Learning Objective-C
- Objective-C is not Perl
- Descriptive to the point of extreme verbosity
- Like the following examples:
Find and Replace
$filename =~ s{::}{-}g;
vs.
fileName = [fileName stringByReplacingOccurrencesOfString:@"::" withString:@"-"];
String Concatenation
$filename .= '.html';
vs.
fileName = [fileName stringByAppendingString:@".html"];
File Exists?
if ( -e $file_path ) { }
vs.
if ( [[NSFileManager defaultManager] fileExistsAtPath:filePath] ) { }
What's Missing?
- Speed of searching on iPhone hardware vs simulator
- Version numbers in HTML
- Gravatar support
- Web view progress indicator
- Author tab
- Author search
- Full text search
- iPad support