# -- 第一课：介绍

Giflist是我制作的第一个Ionic 2应用，他是用非常早的Ionic 2 alpha版本制作的。之后进行了很多的版本更新，本书使用的是Ionic 2 beta版。尽管他是我的第一个原因，但是他始终是我最爱的那个，能够带着你们学习他让我激动不已。\
我认为他的是的心头好是因为他是一个很有趣的应用。他是一个制作起来很有趣的应用，因为会涉及到很多有趣的主题，像是使用Reddit API啦，使用HTML5 video啦，他本身也是一个很有趣的应用因为...观赏有趣的GIF动画难道不是很有趣吗？

## 关于Giflist

Giflist是一个很简单的应用，目的是用户可以输入任何来自[reddit](https://www.reddit.com/)的subreddit，应用将从这个subreddit获取和展示GIF。\
我假设阅读本书的你知道reddit是什么 -- 但是 -- 我也不能这么去假想，如果你真不熟悉Reddit的话，基本上就是个网站，用户可以提交一些有趣的链接供其他用户投票。一个“subreddit”基本上就是reddit上的一个字目录，以下是一些比较受欢迎的：

* [gifs](https://www.reddit.com/r/gifs/)
* [askreddit](https://www.reddit.com/r/AskReddit/)
* [worldnews](https://www.reddit.com/r/worldnews/)

在从reddit拉取GIF的同时，用户也可以提供一些设置来配置应用的首选项。虽然理念很简单，在学习过程中还是可以学到一些有趣的东西，包括：

* 从第三方API获取数据
* 数据存储
* 定制主题
* 列表
* 模态框
* 数据模型
* HTML5 VIDEO

以下是原因的一些特性：

* 用户可以输入任何的subreddit
* 会展示一个无尽的GIF列表（结社GIF有尽）
* 用户可以通过点击GIF来播放他
* 用户可以设置一下选项：默认的subreddit，排序方式，每页展示的GIF数
* 下次再使用应用的时候可以记起之前的设置

以下是一些应用成品的截图：\
![Giflist 1](https://877130497-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LBtuaet5GRr7L6p_j6_%2F-LBty0R2-90Yy_bs85eB%2F-LBty39ccOpHcNpiDLuh%2F3.1.1.jpg?generation=1525685962717364\&alt=media)\
![Giflist 2](https://877130497-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LBtuaet5GRr7L6p_j6_%2F-LBty0R2-90Yy_bs85eB%2F-LBty39ec9tVahPXzYwc%2F3.1.2.jpg?generation=1525685962732606\&alt=media)

&#x20;**课程结构** \
1\. 准备工作 2. 列表页 3. Reddit API和HTML5 VIDEO 4. 设置 5. 定制主题

**准备好了吗？**

了解了我们的目的之后，我们现在可以开始来制作他了！
