There are many suggestions on the net dedicated to implementing an offline wikipedia browser, such as here for a desktop version or this older one for the Sharp Zaurus (with images!).
The principle is basically to split the huge XML dumps downloaded from http://download.wikimedia.org into smaller, manipulable archive files thanks to the fact that bzip archives are made of independant chunks splitable with bzip2recover and to uncompress them on the fly when accessing articles. The main challenges are then to build an index and search engine to match article ttles with the name of the archive to open, and to parse the wikitext inside.
Adapting this to the iPhone didn't look complicated at first sight, especially since Apache and PHP were available on this platform.
The first step was to find a search engine in PHP since I wasn't much into learning Objective C. I took some time to find the really excellent risearch PHP, but the result was wonderful: - indexing is really fast - and compared to the Xapian-based solution described on the net the size of the index file is much less frightening for an iPhone user: 180Mb for the English edition, 70Mb for the French one (instead of 1.5Gb!)
But I wasn't happy with the fact that the search engine AND the crawler were in PHP. Since I'm a nice guy and wanted the indexing process to be easy for you dear readers to go through, I then ported the indexer to a nice Perl script (thank god pack and unpack are on both languages!) that handles all the splitting, title extracting and indexing part.
The limitations are that risearch doesn't support relevancy ranking... but since we're only indexing the title text, relevancy determination based on keyword density is probably not very accurate (do you really think just because a title has more words in it it becomes less relevant to your query? I don't...).
I also extract and highlight exact matches (yes, when two articles have the same title in different cases) of the query with a simple dichotomy scan.
Then came the time to parse the wikitext and render it in nice HTML... and then came the painful discovery that Perl Compatible Regular Expression functions are buggy in the PHP port on the iPhone... which kind of destroyed all my attempts, normally not too difficult since there are a few good PHP wikitext parsers... including MediaWiki itself.
The solution came from the Wiki2HTML perl script part of the WikiOnCD project, which I simplified a bit to make performance acceptable for the iPhone and support a few specific features I wanted (like some templates).
A little PHP and CSS glue to make it all work, support multiple languages, non-latin characters, a few wiki templates, and add to all that some packaging effort to make the installation not so painful, and you have all the knowledge of the world available in your pocket, even under tunnels or other weird places with no network access. For the rendering part I must really thank the maker of iPodia to whom I borrowed the CSS layout optimized for the iPhone.