水木社区第三方客户端
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
newsmth.xcodeproj
newsmth.xcworkspace
newsmth
newsmthTests
psd
template_posts
tools
web
.gitignore
.gitmodules
Podfile
Podfile.lock
README.md
icon@2x.png
icon_100@2x.png
icon_1024.png
icon_114@2x.png
icon_120@2x.png
icon_144@2x.png
icon_152@2x.png
icon_167.png
icon_57.png
icon_58@2x.png
icon_72.png
icon_76.png
icon_80@2x.png
icon_bg@2x.png
startup.sh
xsmth.psd

README.md

#关于

xsmth是一个开源的第三方水木客户端。欢迎大家提交新的功能,和提供修改意见。

#Lisence Common, Utils, Data, jsParser目录下的代码遵循MIT证书,可以使用这些代码开发自己的App,并且不需要作者授权。 其他目录(水木功能相关),需要作者授权使用。

#开始

首先需要安装facebook的xtool脚本(ReactiveCocoa会用到)。 下载源码后,运行

$ ./startup.sh

#数据流 image

#技术点

xsmth中最重要的模块是WebParser这块。WebParser提供了一套js(参考jsParser下的文件)方法来解析抓取到的html,使用js、dom操作,方便的将html转为app需要的json数据。
WebParser非常适合在web站点功能完备的情况下使用,无需后台开发就可以提供一套json数据。
WebParser用到的js引擎可以动态下载,在web界面变更的情况下,可动态更新解析引擎即可。

TODO

  1. SMData, json <-> ObjC 模型替换为 https://github.com/icanzilb/JSONModel,

  2. SMViewController公共方法抽取成Category,同时应用到UIViewController和UITableViewController

  3. SMWebLoaderOperation 多个异步请求整合成同步,参考dispatch group enter/leave。当前用到的地方必须strong引用operation,否则会被提前释放。

  4. refector forever