【原】博客园第三方客户端

  • 时间:
  • 浏览:1
  • 来源:大发pk10_pk10IOS下载_大发pk10IOS下载

本文转载请注明出处 —— polobymulberry-博客园


1.前言


目前i博客园App不可能 更新到2.0.0版本了,使用了最新的博客园Web API。相比于第另有三个版本,加进去去了就说 我 新的功能,也修改了就说 我 功能。整体来说改动比较大,代码也比较混乱。就说 我 趁着清明假期,把代码好好采集了一番。目前基本的架构已成型(当然,后期还前要不断优化),但App基本功能方面还有就说 我 前要加进去去的,底下会集中把App功能完善。

底下简单介绍了下目前App的状态,回到开源话语题来。开源你这名App源码觉得是我从一现在现在刚开始 全部都是的愿景,不过当初代码很混乱,就说 我 一直拖啊拖,底下全部都是就说 我 实验室的事情,不过我一直也没放弃过要开源的你这名想法。开源对我来说利大于弊的:

  1. 觉得我全部都是有哪些大牛,开源的代码也全部都是有哪些牛逼的项目。你这名觉得成为大牛一直有过程的,假使 我写博客不可能 开源代码还上能 记录下有有哪些过程。就说 我 牛人,比如说郭曜源大神(YYKit),等项目心智心智性性成熟 图片 是什么是什么 图片 了再一起去发布出来。你这名我观念不一样,觉得开源代码也是另有三个产品,不可能 从做产品的思维来说,不怎么能要的你这名就说 我 迭代开发,当我完成产品的基本功能后,我就应该去上线,和用户交流,再继续迭代开发下一版本的产品。目前觉得我的代码整体架构差太满了,就说 我 觉得还上能 放入 GitHub上了。
  2. 开源代码的目的主要还是为了想更多的人参与进来,本质也是为了督促另一方学习。目前App功能还不完善,另一方的力量全部都是限,希望能有更多的人加入进来,众人拾柴火焰高。
  3. 另外将另一方的代码暴露出来,让朋友批评指正,也是增强另一方技术的有效途径。不可能 有幸能得到大神指点,那就一日千里了,哈哈(做梦吧你)!觉得觉得另一方事先一直蒙头做另一方的事,不和外界交流,原先不好,容易成为井底之蛙。
  4. 最后另有三个也是比较重要的——满足我的虚荣心(朋友暂且吝啬,多给我点小星星。哈哈,我就说 我 这麼暂且脸!暂且脸!要脸!脸!)

2.新版本i博客园App效果


事先版本的i博客园请移步《博客园第三方客户端-i博客园正式发布App Store》。不可能 换了新的Web API,就说 我 增加了就说 我 新功能,比如文库、登录等等。

3. i博客园代码行态简介


3.1 代码整体行态

整体代码是按功能模块来划分的,而每个功能模块是按MVC来的(下面会介绍)。这里我一共分为7个模块:1.博客(Blog)  2.新闻(News) 3.文库(知识库Library) 4.闪存(暂时未实现,Flash) 5你们都(Me) 6.引导页(Guide) 7.主要(Main)

3.2 各模块介绍

3.2.1 博客

博客的内容主要包括两每种,另有三个是首页,原先精选

首页每种使用的是简单的tableView,每个cell的类型就说 我 放入 BlogHomeTableViewCell目录下的ICBlogHomeTableViewCell。其中动态计算cell高度是使用了UITableView+FDTemplateLayoutCell你这名库。精选每种使用了自定义collectionViewLayout,叫安ICBlogPickedCollectionViewLayout。另外,这另有三个每种放入 了另有三个scrollView(ICBlogScrollView)中。

至于每个Blog的内容呈现,我使用的是KINWebBrowser库,而非使用从服务器端获取的JSON数据来解析,不可能 JSON解析的效果很差,还不如直接用Web浏览器显示好看。使用KINWebBrowser时,你只需双击页面,即可放大到最佳阅读模式,使用UIWebView无法做到你这名点。

3.2.2 新闻

新闻的内容主要包括另有三个每种:最新(ICNewsNewestTableView)、推荐(ICNewsRecommendTableView)、热门(ICNewsHotTableView)。

三者都使用了tableView,放入 另有三个scrollView(ICNewsScrollView)中。每个tableViewCell全部都是ICNewsTableViewCell类型。另一方比较喜欢简洁风格。

不过新闻的内容显示,我是另一方解析JSON数据进行排版的。自定义了另有三个ContentHTMLTemplateWithArgs的宏函数来构建HTML数据。

3.2.3 文库

基本同新闻,不过tableViewCell使用的是ICLibraryTableViewCell。

3.2.4 闪存(暂时未实现)

你这名块底下会重点做一下,不可能 这是用户交流比较重度的一每种。

3.2.5你们都

你这名块做的比较久,UI相对来说复杂,另外也涉及到OAuth的知识。OAuth每种推荐dudu的OAuth系列博客。

Me你这名块觉得是由另有三个两每种组成,另有三个是登录每种,另有三个是另一方中心每种

**登录每种**

1.获取用户名和密码

2.将用户名和密码使用openssl进行rsa加密

3.再利用grant_type为password的OAuth认证最好的办法来登录。

**另一方中心**

我的博客和我的收藏都很简单,就说 我 简单的tableView,连cell都没自定义。

设置每种功能就比较杂:

①清除缓存使用的是SDWebImage,异步清除,代码如下:

ICLog(@"size count : %ld",[[SDImageCache sharedImageCache] getSize]);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    [[SDImageCache sharedImageCache] clearDiskOnCompletion:^{
        ICLog(@"清除成功");
        ICLog(@"size count : %ld",[[SDImageCache sharedImageCache] getSize]);
        cell.textLabel.text = [self getCacheSize];
    }];
});

②关于每种是使用了CNPPopupController,难能可贵你这名简单的功能也使用第三方库,是不可能 我还没想好怎么能做你这名弹窗后背景模糊的效果,底下会更加进去另一方的库。

③评价就很简单了,不赘述了。

④退出账号觉得就说 我 删除了本地存储的账号信息文件。

3.2.6 引导页

请参考我事先的博客《博客园第三方客户端-i博客园正式发布App Store》,此处就不赘述了。

3.2.7 主要(Main)

这每种内容就说 我 ,就说 我 我分开来说,至于这里Helper和Tool有有哪些区别,朋友请无视,另一方经验尚浅,还回答不了。

3.2.7.1 Vender

存放的是openssl的rsa加密的算法。具体还上能 参见博客《RSA加密》。

3.2.7.2 Category

你这名存放的东西就比较多了。我一直很认同田伟宇的话语,category是典型的化继承为组合的最好的办法。你这名这里我尽量不想把强业务放入 category中,觉得category应该放你这名弱业务的东西。

3.2.7.3 Helper

将dataSource从ViewController中分离,做到light View Controller。参考文章《更轻量的 View Controllers》。

3.2.7.4 Tool

**ICControllerTool**

主就说 我 出理 第一次安装,不可能 更新App后,应该先启动引导界面的有哪些的什么的问题。

**ICNetworkTool**

在AFNetworking底下分装了一层,不过此处觉得设计的全部都是很好。暂时先原先,底下尝试下离散型API调用。

**ICOAuthTool/ICClientCredentialsOAuthTool**

不可能 网络请求的事先会用到各种access_token,比如grant_type为client credentials和grant_type为password/refresh_token的access token就不一样。

你这名我定义了这另有三个Tool来管理相对的请求。对应的Model就说 我 ICOAuth和ICClientCredentialsOAuth。

3.2.7.5 Controller

**ICLeftMenuViewController/ICLeftSideMenu**

不可能 使用了RESideMenu,就说 我 ICLeftSideMenu觉得就说 我 RESideMenu的子类,而ICLeftMenuViewController觉得就说 我 RESideMenu的LeftMenuViewController。

3.2.7.6 Other

放AppDelegate和main。

3.2.7.7 View

ICLeftMenuHeaderView觉得就说 我 ICLeftSideMenu上的你这名:

4.开源的相关事项


4.1 开源地址

GitHub:https://github.com/polobymulberry/iCnblogs

4.2 开源后的工作

  • 闪存每种
  • 目前你这名每种非要查看,还非要评论,删除
  • 搜索每种
  • 分享功能
  • refresh token不起作用
  • 还有就说 我 ,想到了我就加到GitHub页面上……

4.3 开源注意事项

不可能 你这名地方涉及到隐私,就说 我 我会将代码进行脱敏(ClientID和ClientSecret)。朋友下载事先不一定能直接运行。不可能 你感兴趣话语,还上能 去博客园申请另有三个ClientID和ClientSecret。

5. 感谢


感谢博客园的管理员的帮助和指导。

猜你喜欢

OPPO R9s评测:挑拍照手机?看它就够了

【IT168 评测】根据赛诺(Sino)的2016年上两天手机销量数据,OPPO手机以超过2900万台排名中国市场第二。其中开卖88天销量就突破700万的OPPOR9系列,无疑

2020-01-27

时尚自拍妹子最爱 OPPO R9手机拍照体验

【IT168评测】如今国产手机市场火爆程度不不多讲。各国产厂商的产品策略本来尽相同。一点家厂商在千元机市场打得火热。而OPPO则针对女人爱用户爱时尚爱自拍的特点,推出以时尚外观

2020-01-27

“迅雷杯”影评大赛火热招募中,只需2步拿万元奖金!

 每每想看 优秀的电影、电视剧,你否是时不时感受颇深,甚至产生过写影评、观后感的冲动?现在,都有很多很多一3个“添动力”的意味!2018“迅雷杯”大学生影评大赛火热招募中,邀

2020-01-27

古建修缮案例之明清建筑潘氏住宅

今天朋友所要介绍的古建修缮案例是来自南京江宁佘村的明清建筑潘氏住宅,距今已有400多年历史的大规模古建筑。  潘氏住宅位于群山环抱之中,俯近青山秀水,环境极佳。古建的修缮不仅仅

2020-01-27

哈萨克斯坦VS圣马力诺免费视频直播,哈萨克斯坦VS圣马力诺比赛集锦,哈萨克斯坦VS圣马力诺录像,哈萨克斯坦VS圣马力诺首发阵容

首页新闻视频直播数据APP懂球号直播君广告合作方式哈萨克斯坦06-1122:00欧预赛4-0已刚始于圣马力诺直播君|分析|集锦暂无数据近期比赛佛罗伦萨意甲0-0热那亚拜仁慕尼黑

2020-01-27