- 本项目采用RN技术栈开发
- 主要完成的任务是调用Github提供的API,写成一个可以跨IOS和Android平台的客户端
- 图标与闪屏页面
- Favorite列表页面
- 项目详情页面
- Code展示页面
- Issues展示页面
- Pull Requests展示页面
- star展示页面
- Followers展示页面
- Trending列表页面
- 登录功能
- 我的页面展示
- 设置列表
- 主题切换
- 退出功能
"@babel/runtime": "^7.1.2",
// 避免 babel 编译的工具函数在每个模块里重复出现,减小库和工具包的体积;
// 在没有使用 babel-runtime 之前,库和工具包一般不会直接引入 polyfill。否则像 Promise 这样的全局对象会污染全局命名空间,这就要求库的使用者自己提供 polyfill。这些 polyfill 一般在库和工具的使用说明中会提到,比如很多库都会有要求提供 es5 的 polyfill。在使用 babel-runtime 后,库和工具只要在 package.json 中增加依赖 babel-runtime,交给 babel-runtime 去引入 polyfill 就行了;
"@huchenme/github-trending": "^1.3.0",
// 可以获取github对trending接口的实现(github-api在v3版本并没有提供该接口)
"github-api": "^3.0.0",
// 完成对github的api封装:主要是为了节省账号密码或者token授权后的请求header处理
"lodash": "^4.17.11",
// 工具函数
"native-base": "^2.8.1",
// UI框架,需要对个别组件分别封装出适合修改Theme的组件
"react-native-blur": "^3.2.2",
// 高斯模糊插件,对android不友好,需要单独处理
"react-native-parallax-scroll-view": "^0.21.3",
// 下拉图片放大,这个组件不能在ListView中嵌套,否则失效
"react-native-storage": "^0.2.3",
// 对AsyncStorage进行封装
"react-native-vector-icons": "^6.0.2",
// 引入icon组件
"react-navigation": "^2.18.0",
// RN高端路由组件,谁用谁知道。目前有个问题,就是ButtonTabNavigation的icon的主题色无法通过redux来控制改变
"react-redux": "^5.0.7",
// 用于连接react组件和redux的store相关操作的快捷库
"redux": "^4.0.1",
// 数据统一管理,非常适合统一的数据存储比如登录信息,theme主题等
"redux-persist": "^5.10.0",
// 将RN的store进行持久化存储,也就是说通过处理redux的store方法,用来处理AsyncStorage。并且可以设置白名单或者黑名单
"rn-splash-screen": "^5.2.0"
// RN的闪屏控制
- 在使用github-tools的api时,因为有获取全部列表bug的代码属于v3.0.0目前是在npmjs的网站上发布,为了解决这个问题,我采用了是github上他们v3.1.0版本,并且自己编译,将编译后的dist文件放入到node_module中
// 创建新目录并进入
mkdir tmp && cd tmp
// 找一个临时目录需要clone下来当前文件
git clone [email protected]:github-tools/github.git
npm install
// 切换版本
git co v3.1.0
// 将生成的dist目录拷贝到node_module文件夹中
npm run build
// cp -r ....
// 删除这个临时目录
// rm -rf .....