移动应用程序开发(移动应用程序开发工程师书人物)
移动应用程序开发
1.从零开始,我带你实现一个“专注于上床的APP”。睡觉前,如果能有一个APP,我们可以写写这一天的所见所闻,同时可以看一会儿段子,瞄一会儿美女,放松一下疲惫的身心。这也是我完成这个APP的原因。我已经在Github上分享了APP的所有代码。如果需要,直接点这里。如果你喜欢,请给我一个赞。谢谢你。
在写正文之前,先来展示一波效果,看看五天后能达到什么效果。
3.本教程分为五天,内容如下:
4.戴安,准备好
5.功能需求
6.可行性分析
7.第二天,UI和公共类的封装
8.界面的设计与实现
9.公共类的实现
移动应用程序开发1.第三天,日记模块
2.日记展示
3.浮动菜单的实现
4.添加、删除和修改日志的实现。
5.第四天,姐妹舱
6.图片的获取
7.图片显示
8.详细信息页面的显示
9.第五天,段落模块
10.段落数据采集
11.笑话展示
12.戴安
13.俗话说万事开头难。在开始打代码之前,让我们先做一些必要的准备,这样才能事半功倍!
14.功能需求
15.既然要做APP,还是要先列出APP的所有功能。有了方向,才能更好的努力。因为想做一个睡觉的APP,所以我觉得应该有以下几个功能。
16.添加、删除和更改日记
17.展示一些有趣的笑话。
18.瀑布展示了美丽的女孩。
19.保存日记内容,缓存妹妹的照片。
20.虽然需求不多,但是应该应用于网络、数据存储、图片缓存、UI设计等内容。相信整个app的完成一定会巩固我们的安卓基础。
21.可行性分析
22.我们的APP主要有三个模块,日记模块主要应用于数据库的知识,难度不大。但是,段落模块和姐妹模块的数据从哪里来,这是要考虑的。好在现在是开源时代,很多数据已经在网上开源了。
23.我们先来看看数据的内容。
24.上面两段代码分别是段落和姐妹模块的json类型数据,我去掉了一些没用的字段。剩下的就是我们想要的所有数据了。你可以看到,在段子数据里,有段子的内容,还有发布者的头像和名字。姊妹数据包含图片的url、id和类型。我相信有了这么丰富的数据,我们想放心的完成这个APP。
25.第二天
26.界面设计和实现
27.既然要完成一个好看的APP,那么好看的界面必不可少。在这里,我强烈建议APP界面的设计一定要尽可能遵循Google提出的MaterialDesign。在这里,我推荐一个网站materialdesignpalette,可以让我们的材料设计变得更简单。我APP的配色就是用这个网站完成的。贴几张图让你感受一下它的威力。
28.在这个网站的帮助下,我们可以完成APP的配色和图标的收集,为下一步功能的实现打下良好的基础。至于界面的设计,仁者见仁,智者见智,篇幅有限,就不多说了。
29.APP最终设计效果如下:
30.公共类的实现
31.因为这个项目有三个模块,有些东西其实是通用的。如果先把这些通用的东西打包,供应给所有模块,相信我们的开发效率会大大提高。
32.网络工具的封装
33.在这个APP中,很多地方都会用到网络请求,所以需要对网络请求进行封装。因为这个APP的规模比较小,所以我选择了凌空的网络框架作为我们的网络请求库来封装网络请求。哪里需要,就打电话。对于网络请求,我觉得每个程序员都应该对HTTP有所了解。这里有一篇关于HTTP的文章。程序员应该对HTTP有所了解。
34.先写个接口回调网络请求吧。
35.然后封装网络请求。
36.36人的帮助课。Json解析
37.因为这个APP获取的数据都是Json格式的,所以需要把Json解析封装成一个工具类,传入一个字符串类型的数据,直接得到数据实体类的列表。
38.主页活动的封装(主页)
39.主页面我用的是talayout+view pager+Fragment,这也是现在主流APP主页面的展示方式。主界面下方是我们三个模块的图标和名称,界面可以左右滑动跳转。
40.底部图标的实体类CommonTabBean
41.view pager+片段通用适配器
42.第三天
43.至于日记模块的实现,我其实是复用了我之前写的一个日记APP。具体思路和做法可以参考我的文章Android,一个非常简洁优雅的日记APP。
44.第四天
45.图片的获取
46.根据返回的数据写图片的实体类。
47.图片显示
48.可以看到我用瀑布显示图片,效果还不错,但是实现起来其实很简单。
49.先写一个图片的布局作为RecyclerView的项目。
50.您可以看到,我在ImageView的外部添加了一个CardView。这样的卡片布局可以让画面看起来像卡片一样,相当优雅美观。
51.然后编写一个适配器将数据绑定到接口。
52.最后,只需获取片段中的数据并初始化布局。
53.详细信息页面的显示
54.干,怎么整个模块只显示女生的图片?!!反正你要能看大图,能根据手势放大缩小,能浏览下一张图片。照你说的做。
55.因为图片需要有根据手势放大缩小的功能,所以想到了PhotoView,这是网上一位大神写的自定义控件,继承了ImageView。我以前加载图片。
56.Glide,如果你不知道这个库,强烈推荐一行代码就能把图片加载进去。你确定不想研究一下吗?
57.第五天
58.段落数据的获取
59.段数据的获取与姊妹模块基本相同。
60.先写实体类。
61.编写完实体类后,我们可以使用之前打包的网络请求工具和解析工具将返回的数据解析到包含子实体类的列表中。
62.笑话展示
63.像往常一样,先写一个RecyclerView的条目。
64.然后编写一个将数据绑定到接口的适配器。
65.在最后一小节页面中,进行数据采集和界面初始化。