石锅拌饭

Tag: ichm

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

by 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 on Nov.26, 2008, under Uncategorized

The invitation has been closed. Thank all the testers!

6 Comments :, more...

两个iChm同时发布

by 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 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 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...

Search

Archives

Browse by tags

agile apple blog book design ecto extension firefox git google hack ichm iphone keyword life mac madfox movie nonsense opensource plugin pm ruby rubyonrails sns software startup wordpress work 财帮子