Android实战:手把手实现“捧腹网”APP(二)-----捧腹APP原型设计、实现框架选取

APP原型设计

在APP的开发过程中,原型设计是必不可少的。用户界面原型必须在先启阶段的初期或在精化阶段一开始建立。整个系统(包括它的“实际”用户界面)的分析、设计和实施必须在原型建立后进行。 
如何设计“捧腹网”APP呢?我们先观察他的M站页面结构: 
12 
我们可以看出,M站其实类似一个APP,只不过它是运行在微信网页端。 我们可以把这个设计风格,照搬到APP的设计上来。当然需要做些修改,使它更符合APP的常规设计。 
原型设计,我们通常采用Axure,有兴趣的可以学习如何使用该软件。(我也只是略会使而已) 
下面给出我简单设计的原型图: 
这里写图片描述
原型图中,我们可以看出来,APP其实很简单,一个底部的tab导航,加上一个列表展示就组成了这个简单的APP。 其中列表项,又分为纯文(段子)展示,图片(趣图)展示。

有了产品原型图之后,接下来,我们考虑采用哪些技术、选取哪些开源库,可以更有成效的来实现它。

第三方框架选取

框架的选取,一定是为了能帮助我们更方便的实现该APP才使用的。建议不要为了特意去使用某个技术才去用它,比如这里,我们只是实现一个简单的APP(一两天就可以搞定的),没有必要去考虑用mvp或者是mvvm架构,也没有必要去使用okhttp、retrofit、rxjava等当前比较流行的技术,我们只要封装一个简单的网络请求能够获取网页源码就好了。 
当然,如果是为了特意利用新技术,做一个小项目练手,那你可以去使用这些架构、框架,在实战中学习技术,一向是可取的。 不过此处,我们不对架构、网络框架等做过多的介绍,之后,在下一个项目实战中,我也会带着大家边学习新技术,边做一个较为完整、强大的APP。

好,针对“捧腹”APP,我们可以用到哪些开源框架呢?

Butterknife 依赖注入框架,主要用于View组件获取、事件监听处理 
官方介绍: 
https://github.com/JakeWharton/butterknife/ 
http://jakewharton.github.io/butterknife/

Glide 一个专注于平滑滚动的图片加载和缓存库 
官方介绍: 
https://github.com/bumptech/glide 
博客详解: 
http://mrfu.me/tags/#Glide

Glide的特别之处,在于它还支持Gif的加载处理。因为我们的app中有很多gif图片需要显示,所以选择glide是相当合适的。

PhotoView 图片浏览缩放控件 
官方介绍: 
https://github.com/chrisbanes/PhotoView 
博客详解: 
http://blog.csdn.net/zuiwuyuan/article/details/49340465 
原理解析: 
http://gold.xitu.io/entry/575d0598128fe10060021bdf

我们的app中有很多的图片,作为用户,当然希望能够放大图片,看的更清楚,此时,PhotoView 可以很好的帮助我们实现该功能效果。

Bughd 实现崩溃分析、版本更新 
官方介绍: 
http://fir.im/ 
http://bughd.com/product/android

Fir.im是一个免费应用内测托管平台,通过该平台,我们可以把我们做好的app发布出去,供别人下载。app发布上线后,肯定会遇到各种问题,所以我们需要将错误日志收集起来,及时解决问题。 当然解决问题后,版本更新是必不可少的,这时候,我们就需要用到Bughd 啦。

本章小结: 
本章主要介绍了两个内容,第一个,设计“捧腹”APP原型,有了原型图,我们能更直观、方便的分析出开发过程中需要用到哪些技术点。 第二个,选择第三方开源框架, 优秀的开源框架,可以帮助我们节省大量的开发时间,实现更多更强大的功能、效果,所以,选择合适的开源框架,会使我们的开发工作事半功倍。

关于“捧腹”APP的具体的实现,下面一章会继续详解。

如果你迫不及待的想看源码,请前往https://github.com/zuiwuyuan/Joke查看。谢谢大家的支持。

版权声明:本文为博主原创文章,未经博主允许不得转载。 http://blog.csdn.net/zuiwuyuan/article/details/52554248

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【前端就业课 第一阶段】HTML5 零基础到实战(七)文字及图片详解

注意:手机(APP)打开,内容显示更佳,不会的私聊博主即可 想要拿代码或加入学习计划(** 博主会监督你并且教你写文章 **)的拉到最下面(PC端Web打开)加博主即可,目…

自定义桌面右键菜单

一 编写自定义右键菜单要执行的程序 只要是在 Windows 平台上的可执行应用程序即可。 二 修改注册表添加自定义右键菜单 添加位置如下: HKEY_CLASSES_ROOT\Directory\Background\shell 如下图:转载于:https://www.cnblogs.com/jRoger/articles/5799664.h…

Android之giide加载失败提示You can‘t start or clear loads in RequestListener or Target callbacks If you‘re t

1 问题 用glide进行加载视频数据的时候,加载错误了再用glide进行加载一次,代码如下 var iv = helper.getView<ImageView>(R.id.download_iv)iv?.let {val transform = RoundedCornersTransform(mContext, UnitUtils.dip2px(mContext, 12.toFloat()).toFloat())transf…

本地工程提交github

1. 首先在github上创建一个新的Repository 2. 在本地windows机器上装上git 3. 建立一个文件夹&#xff0c;以后就用这个文件夹作为与Repository对应的库文件夹 4. 输入一下命令&#xff0c;建立文件夹与Repository的连接关系 touch README.md git init git add README.md git c…

【ArcGIS遇上Python】ArcGIS python计算长时间序列多个栅格数据的平均值

通常&#xff0c;我们需要将多个栅格求平均&#xff0c;例如&#xff0c;将一年中每个月的NDVI值加起来除以12&#xff0c;就会等到月均NDVI&#xff0c;该过程虽然在栅格计算器中可以实现&#xff0c;但是当时间序列较长时就比较费事&#xff0c;此时&#xff0c;python代码是…

统信 Deepin为什么要摆脱Ubuntu和Debian?

文 | 大东出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013&#xff09;Deepin 出走 Debian 。近日&#xff0c;统信软件宣布旗下 Linux 社区发行版 Deepin 将脱离上游 Debian&#xff0c;从 Linux Kernel 开始构建的新闻在社区引发了热议。其实早在 7 年前&#xff0…

解决笔记本重装问题(VISTA系统改为XP系统)

今天一位同事要我帮她的上网本重装一下系统&#xff0c;经查看发现只是开机后一个出错问题&#xff0c;是安装酷狗软件引起的&#xff0c;用360软件管家彻底删除就行了。这时&#xff0c;老大拿了一台笔记本过来让我帮忙装XP操作系统&#xff0c;嘿~这下我的桌子摆满了电脑&…

Android实战:手把手实现“捧腹网”APP(三)-----UI实现,逻辑实现

APP页面实现根据原型图&#xff0c;我们可以看出&#xff0c;UI分为两部分&#xff0c;底部Tab导航上方列表显示。 所以此处&#xff0c;我们通过 FragmentTabHostFragment&#xff0c;来实现底部的导航页面&#xff0c;通过RecyclerView来实现列表页面。 因为篇幅原因&#xf…

【前端就业课 第一阶段】HTML5 零基础到实战(八)表单详解

注意&#xff1a;手机&#xff08;APP&#xff09;打开&#xff0c;内容显示更佳&#xff0c;不会的私聊博主即可 想要拿代码或加入学习计划&#xff08;** 博主会监督你并且教你写文章 **&#xff09;的拉到最下面&#xff08;PC端Web打开&#xff09;加博主即可&#xff0c;目…

【ArcGIS遇上Python】ArcGIS10.6 python批量将栅格中的特定值替换Setnull为NoData

案例一: 如下图所示为兰州市dem,将图一中高程大于1600m的像元值设置为无效(Setnull)之后的效果如图二所示。 实现过程: 栅格计算器参考文章:《【ArcGIS风暴】ArcGIS 10.2栅格计算器实用公式大全(经典珍藏版)》,该文章中主要以ArcGIS102.为平台讲解栅格计算器的…

Android之实现Room升级需要给一个表增加一个字段

1、需求 实现Room升级需要给一个表增加一个字段。 2、Room升级介绍 Room 持久化库中通过使用 Migration 类保存用户数据。每个 Migration 类指定起始版本和结束版本。在运行时,Room 运行每个 Migration 类的 migrate() 方法,使用正确的顺序将数据库迁移到后面的版本 1、An…

开源力量:微软竟开源 PowerShell

导读曾经有段时间&#xff0c;微软称 Linux 是“癌症”&#xff0c;但是随着时光流逝&#xff0c;现在微软已经认识到了开源世界的不断增长&#xff0c;除了在这个领域加大投入之外别无选择。微软已经启动了几个开源项目&#xff0c;希望能吸引一些 Linux 用户&#xff0c;其中…

为何gpio_to_irq不能静态使用?【转】

之前在调试传感器模块的时候发现&#xff0c;在结构体声明的时候irq成员使用gpio_to_irq会报错&#xff0c;而动态使用的话就没有问题。就对gpio_to_irq为什么不能静态使用产生了疑问。恰巧最近又有朋友遇到了同样的问题&#xff0c;也就提醒了我&#xff0c;去找出原因。 转自…

当谈研发效能时,该谈些什么?

最近翻了下之前写的公众号文章&#xff0c;发现研发效能相关的就有三篇&#xff1a;怎样提高开发效率关于增效&#xff0c;需要做好这两点再谈研发效率提升从工具使用、业务的理解、团队的沟通协作到流程、组织、分享等内容&#xff0c;我能想到的大部分有关研发效能的点都有涉…

32.find命令

命令类似 文件管理 命令名称 find 命令描述 查找文件或者目录&#xff0c;根据不同参数的匹配来找到 想要的文件。 命令语法 find [文件路径] [参数或者条件] 参数 -o #或者 -size #大小 -name #条件 如文件名称 或者 相对名称 -name "." -type #类型 如 f:文件 d:目…

ENVI5.4完美实现MODIS NDVI数据格式转换和投影变换

如上图所示,分别为: View1:MODIS hdf数据多波段 View2:MODIS NDVI波段 View3:ArcGIS10.8投影变换后的MODIS NDVI View4:ENVI5.4投影变换后的MODIS NDVI 关于ArcGIS处理MODIS数据的操作,可以参照: 《ArcGIS10.8完美实现MODIS NDVI数据格式转换和投影变换》 《重磅!ArcG…

Android之解决viewpage加载第3个fragment的时候,第一个fragment又重新构建问题

1 、问题 viewpage加载第3个fragment的时候,第一个fragment又重新构建问题,感觉自己好傻逼的,不知道啥原因,原来是少了一个设置,加载旁边多少个fragment不销毁 2 、解决办法 viewPager.offscreenPageLimit = 3 3、推荐滑动页面万能的指示器框架 https://github.com/hac…

【前端就业课 第一阶段】HTML5 零基础到实战(九)列表

注意&#xff1a;手机&#xff08;APP&#xff09;打开&#xff0c;内容显示更佳&#xff0c;不会的私聊博主即可 想要拿代码或加入学习计划&#xff08;** 博主会监督你并且教你写文章 **&#xff09;的拉到最下面&#xff08;PC端Web打开&#xff09;加博主即可&#xff0c;目…

android 电源管理 wakelock 唤醒锁机制

Android 电源管理 — 唤醒锁全新上市 大多数人可能都遭遇过手机的电池续航时间较短带来的尴尬。 这极其令人讨厌。 没电的手机和一块水泥砖没什么差别。 一般而言&#xff0c;如果用户的手机电池无法持续一整天&#xff0c;他们会感到非常不满。而且&#xff0c;当手机充电时用…

初始Bootstrap

使用示例①下载Bootstrap框架 网址&#xff1a;http://v3.bootcss.com/getting-started/#download②解压得到三个文件③将文件添加进项目后&#xff0c;在页面中引用必要的css和js④查看效果&#xff08;a标签美化得不要不要的了&#xff5e;&#xff09;更多学习Bootstrap的资…