石锅拌饭

Tag: ichm

iPhone / iPod Touch 文件传输解决方案 - Cocoa Web Resource Project

by Robin Lu on Dec.01, 2008, under Uncategorized

到目前为止,也就是iPhone SDK 2.2 ,苹果仍然没有为开发者提供一个文件传输的解决方案。如果一个应用需要为用户提供往iPhone上传文件的功能,大抵会采用下面几种方法之一:

  1. 通过一个链接从网上下载。
  2. 提供一个客户端,通过自己的协议上传。
  3. 支持FTP传输协议。
  4. 在iPhone上启动一个http服务,通过浏览器上传。
  5. 比上一个更进一步,在http上支持WebDAV,通过改协议上传。

上面这些方法各有利弊。前两种方式虽然开发比较简单,但用户操作不方便,采用的比较少了。使用FTP在一些系统上还是需要额外的客户端软件,也不算方便。WebDAV的方式现在比较流行,Air Sharing和Discover都采用了这种方式。

在做iPhone版iChm时,也需要提供文件上传的功能。我选择了第四个方案,即提供一个http service,通过浏览器上传。这个方案虽然不能象WebDAV那样在一些系统上直接mount到文件系统中,但对于几乎所有带浏览器的系统,它都不需要再安装额外的客户端,实现起来也比WebDAV简单很多。

在http server的选择上,可以porting现有的成熟产品,但是对于这样的应用,apache或者lighttpd等方案都过于庞杂了,实际上只是需要一个很简单的服务。最后找到cocoahttpserver,是由Deusty Designs开源的一个项目,支持异步socket,IPv4和IPv6,HTTP Authentication和TLS加密,小巧玲珑。除了只支持GET方法这一点以外,其他可以说该有的都有,该没有的都没有了。

我对cocoahttpserver做了扩展,首先实现了Multipart POST的支持。在增加文件传输功能的设计上,我将文件当作一个资源(resources),采用了REST的方式:

方法 功能
GET 文件列表,文件下载
POST 上传新文件
DELETE 文件删除

这样的设计,无论从接口的角度,还是从实现的角度,都比较清晰明了。

在iChm 1.0发布后做了些修正,iChm 1.0.1后相对稳定了。现在我将文件传输这部分代码open source出来:
Cocoa Web Resource Project
主要功能如下:

  • 支持通过浏览器向iPhone/iPod Touch上传文件,支持文件下载和删除。
  • 内存优化,支持大文件上传。
  • 可定制的web界面。
  • web界面支持IE, Safari, Firefox等主流浏览器。
  • RESTful API。

希望可以对iPhone开发者有所帮助。

6 Comments :, , more...

iChm 1.1 for iPhone beta test invitation

by Robin Lu on Nov.26, 2008, under Uncategorized

The invitation has been closed. Thank all the testers!

6 Comments :, more...

两个iChm同时发布

by Robin Lu on Nov.12, 2008, under Uncategorized

iCHM

首先是iChm version 1.4 for Mac OS X,加入了几个呼声比较高的功能:

  • 以pdf格式导出整个chm文档。
  • 使用翻页键连续浏览文档。当到达页面底部时,会自动翻到下一页。在页首page up 会翻到上一页。
  • 打开文件时自动跳转到上次浏览的页面。
  • 自动记录上次查询某个文件时,是全文搜索还是在索引中搜索。

然后,就是iChm 1.0 for iPhone/iPod Touch ,经过苦苦等待,终于上了App Store。苹果花了三天审批我的软件,却花了四周审批contracts。11月4号就通过的软件不得不到今天才亮相。第一版功能包括:

  • 使用浏览器上传和管理文件。
  • 查看chm文档。
  • 支持目录和索引。
  • 支持在索引中搜索。

详细内容参看App Store中iChm的页面。定价$4.99。

37 Comments :, , , , , more...

iPhone版iChm开发进行时

by Robin Lu on Oct.11, 2008, under Uncategorized

开发中。
先放几张截图出来。

Picture 4-3

Picture 5-1

Picture 6-3

Picture 7-2

7 Comments :, more...

iCHM - Leopard下的CHM阅读器

by Robin Lu on Aug.06, 2008, under Uncategorized

我差不多有一半的电子书是chm格式的,在mac下看chm基本上就是chmox和xchm。xchm功能比较强,但因为在mac下用X Windows做渲染,用起来非常不流畅。chmox是cocoa写的,可只有基本浏览功能,而且几年如一日的不更新。实在忍受不了,自己写了一个chm阅读器,起了一个很俗的名字叫iChm。

iCHM

(仅以此图标纪念那些消磨我无数时间的龙们)

基本功能如下:

  • Tab浏览。
  • 全文档搜索。
  • 页面内查询。
  • 重置文本编码。
  • 页面自动定位。
  • 前一页、后一页,放大、缩小。这些chmox也有。

总之,都是我自己期盼已久的功能。本来以为很麻烦,但是Object-C/Cocoa非常容易上手,解析chm有现成的chm_lib,渲染用WebKit,Tab有PSMTabBarControl,Search有spotlight,很快就完成了,真是求人不如求自己。

ichm

拿测试版出去给人用才知道有人也做了一个ArCHMock,看着很想像,比我早发布半个月,相比之下,多一个书签功能,但是没有tab,没有页面内查询,没有重置文本编码。差不多就是一个chmox+search。

昨晚在macupdate上发布了1.0,今天居然有好心的德国朋友帮着做了本地化,我自己又做了一下汉化(汗|||),本地化版直接点这里下吧

39 Comments :, , , , more...

Archives

Browse by tags