大发pk10_pk10手游_大发pk10手游

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

时间:2020-01-16 11:01:03 出处:大发pk10_pk10手游_大发pk10手游

本文转载请注明出处 —— 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. 感谢


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

热门

热门标签