本文主要结合自己的工作经验和产品经理必懂技术那点事儿书写,比如文章中提及到的点九图本人在原来的实际工作中都不知道的。因为原来的移动端开发一直是原生框架结合H5的做法。后来有位设计师提及到了才知道。还有一些数据指标的概念,有次去面试了面试官提及到了一紧张嘴一哆嗦给说不清楚了,好丢人的。现在好了,全清楚了。
客户端-android
基本控件
1.view是视图的意思。表示在屏幕上展示的一个可视化控件,android控件都是基于view扩展的。
2.Button是android系统默认提供的按钮控件,我们使用产品过程中所有课点击的部分都是按钮,按钮的外观和形状可以进行自定义设置
3.TextView在android中代表文本展示框,就是我们产品里看到的展示文字的部分,例如界面中的一行文案提示。需要制定宽高(文本的范围)和文本内容的字体大小和颜色等。在实际使用过程中有好多都是文本拼接的结果,如表示人民币的符号加数字;一行文字多种颜色等效果都是拼接的。
4.EditText是文本输入框;其基本属性和文本框基本类似,唯一不同的是它可以进行内容输入且对输入的内容可以进行类型控制。如登录界面的用户名可以明文,密码可以是密文也可以明文,密文一般是黑点或星号代替真是内容本身。在如限制输入长度,限制只能输入数字,场景就用户手机号输入一般限制12位数字。它还有一个属性是“hint”,我们在使用文本输入框的时候,输入框内部往往有一个提示语(请输入用户名&密码之类的),当我们出发输入框的时候提示语就消失了。通过设置它的属性可实现个性化定制。其中它的样式就是各种各样的有圆角的,有下滑线表格样式的。这两种样式比较常见。
5.ImageView是图片展示控件;例如产品我们看到的头像展示和商品展示。需要标注宽高
6.Listview是列表控件;如我们使用微信时看到的联系人会话列表,电商类产品的商品列表,通讯录的联系人列表等基本上列表类的都是通过这个控件实现的。我们只需要定义好每一行展示的条目内容,不同的产品类型每一行的条目的布局方式和内容不同。在实现层面我们需要定义好条目的展示方式然后往这个listview中填充数据即可。
7.GridView也是一个容器控件,ListView是以列表方式展示,而GridView是以表格的方式展示。如果我们需要多行多列的展示,就可以使用GridView。每一个表格对应一个GridView条目,常见的布局方式就是上半部图片,下半部文字,实际上就是使用了ImageView和TextView的组合。另外系统的照片缩略图也是使用GridView
布局原理
布局方式分线性布局和相对布局,常用使用较多的布局方式是“相对布局”。使用相对布局的方式也是解决Android多屏幕适配的方式之一。另补充在Android开发中,使用与像素无关的单位dp对尺寸进行标注。
系统的权限控制
例如访问相册,启动相机,访问当前位置,访问通讯录,获取蓝牙等权限。这些权限的设置是在开发阶段有开发人员标记在代码中的。例如某一个产品需要使用用户的当前位置,那么开发人员需要在权限申请列表中添加访问位置这一权限,然后用户安装该产品时,会从安装列表中看到该产品申请了哪些权限访问。
应用打包及发布
Android应用开发完成后,需要被打包成一个扩展名为“apk”的文件。打包安装时我们需要使用一个特殊的签名文件为这个安装包文件进行签名,确保这个应用安装包的唯一性和安全性。打包时android给我们提供一个选项即标记安卓版的渠道来源,以便统计该应用渠道的下载量。同时我们在发布应用的时候我们需要标记当前所发布版本的版本号,区分此版本号非产品里面标记的版本号,这个版本号是给计算机识别的。发布一次标记一次版本号这样就能区分市场上的新老版本。
多屏适配
为了解决界面适配的问题,android提供了一种使用可拉伸图片作为界面素材的解决方案,这种图片是以扩展名“.9.png”结尾的图像文件,通常叫做“点就图”。此图只能对一些规则图形进行横向或纵向拉伸的。如果是不规则图形,就只能根据屏幕的分辨率同时制作几个尺寸的图片,然后系统会根据当前屏幕分别率和尺寸自动加载适合的图片素材。
客户端-ios
基础控件
1.uiview是ios系统中所有控件的基础,和android系统中的view类似,其他控件都是基于uiview集成扩展而来。
2.uibutton表示按钮控件,我们通常需要设置两种状态的背景图,一种是正常状态下的,另一种是按钮按下状态。
3.uilabel表示文本展示控件,可以设置文本的字体颜色,大小和字体等。
4.uitextfield是文本输入框控件,也具备限制输入内容类型的属性,例如我们可以限制输入的内容必须是数字或者设置输入框是密码性输入框,密码型输入框显示的是暗文。
5.uiimageview图片展示控件,对应android系统中的imageview,基本属性基本一致。可以对图片展示和一些基本处理。如对图片进行圆角处理,可以使用系统的一些滤镜功能对图片进行特殊处理。
6.uitableview表示列表控件。列举一些自带系统自带功能。左滑删除。使用该控件很简单地实现列表中每一项的拖动排序和多选操作,例如iphone中的短信应用,我们可以多选并批量对短信进行删除操作。Iphone的系统设置界面,基本就是通过该控件实现的。Uitableview中的每一行叫作“cell”,我们可以对cell进行自定义布局,微信会话列表的cell和淘宝商品列表的cell属于两种不同额自定义类型。改控件使用非常广泛。
7.uicollectionview是ios系统中进行表格展示的控件,iphone的系统相册就是使用该控件实现的。另外一些图片社交类应用经常使用瀑布流设计,其实现原理在ios系统中也是使用自定义的uicollectionview,其每一个单元格的展示方式可以进行自定义,不同点在于uicollection可以进行多行多列的展示,而uitabbleview只能进行多行单列的展示。
Ios的布局原理
Ios使用的是绝对布局,也就是说,每一个控件在界面上是通过指定控件绝对位置进行显示的。Ios的切图通常是XXX@2x.png的格式,在iphone6p和iphone6ps上则使用xxx@3x.png,这里的“@2x”和“@3x”表示素材的尺寸,对应不同的物理分别率。
Ios的权限控制
Ios的授权是在用户使用的过程中,例如在安装某一个ios应用时,进入改应用后会弹出一个系统提示框,提示我们是否授权应用使用我们的位置信息或者是否许可应用给我们推送内容通知,在需要使用相机或者麦克风的时候,也会提示我们。从用户体验的角度出发,ios系统的权限管理体验更好。
Ios应用打包及发布
Ios应用打包是通过苹果推出的开发工具xcode完成的,打包完成后,可以进行几种类型的发布,一种就是我们常见的发布至苹果官方应用市场appstore,通过xcode上传安装包至appstore后,需要审核,审核周期一般为一周左右,审核成功后可以通过appstore下载应用。如果审核失败,苹果审核人员会回复邮件,修改后可重新提审,若遇到特殊情况需要加急审核,也可以填写申请加急审核的申请表,苹果审核人员会根据具体情况判断是否需要加急,若受理则审核周期可缩短至一到两天。
服务端
数据接口及结构
数据接口是指客户端与服务端进行数据传输和交互的数据协议,数据接口是一种数据交换的标准。实际应用中有两种常用的数据接口的结构,分别是JSON何XML
1.JSON是一种轻量级的数据交换格式,也是一种用来表示数据接口结构的形式。Json结构灵活性高,可以进行丰富的数据结构表达,JSON结构易于理解和月度,也便于计算机进行解析和表达,一个简单的JSON结构如下。{“usernae”:”ryan”,”password”:”123”}。
2.XML的全称是可扩展标记语言,与JSON一样,XML的结构可以进行自定义,XML的基本元素是由一个一个的标签构成,每一个标签都由标签头和标签尾构成,内容放在标签头尾之间,例如“ryan”就是一个完整的标签体,尖括号内是标签的名字,标签尾用“/”加在标签名之前表示。
服务端与客户端的交互模型
请求响应模型
不管是网站还是APP,基本上涉及客户端与服务端的交互都是基于请求响应模型,简单说就是一问一答,客户端问服务端,服务端接受后进行处理,并将处理结果回答给客户端。
数据分类及数据分析
在互联网上产生的数据主要分结构化数据和非结构化数据两类。结构化数据就是按照固定的格式和结构存储的数据,好比我们按照格子一个个存放数据;非结构化数据是对一些零散型数据的集中管理,好比我们在一个格子里放上很多零散的东西。针对这两种数据的分析也可以挖掘出对应的价值。例如,通过分析结构化数据我们可以预测数据走势,提前预判风险;通过分析非结构化数据可以进行一些行为分析和相关推荐。
结构化数据
产品接触比较多的都是结构化数据,例如我们在设计产品的时候,如果后期需要对产品中的数据进行整体分析,那么在设计阶段就需要根据业务特点对数据结构的定义进行明确分类。例如,在医疗产品里,很多检查报告都是以拍照传图的方式进行数据存储的,这些检查按报告里有大量的关键数据可以作为后期患者的病例大数据分析的原始素材,但是如果这些数据是以图片的方式存储的,那么就很难对里面的关键数据进行提取和分析,所以比较好的做法是抽取这些关键数据以结构化的方式进行设计,让用户进行关键数据的填写并已图片为附件。
非结构化数据
非结构话数据大多数都是一些零散的没有一定规律的数据。例如用户的浏览数据,或者一些系统的操作日志等,这些不是按照一定的规则进行结构化存储的数据都叫非结构话数据。例如图片,视频,音频等数据。如何更好的利用这些非结构化的数据,比如我们可以根据用户的浏览行为进行个性化推荐以此提高用户对产品内容的关注度和成交率。这就是非结构化数据能带来的实际好处。
数据指标
常见的数据指标例如活跃用户数周活跃用户数或者月活跃用户数可以反映出在一个时间周期内用户对产品的使用情况,活跃度越高说明产品被用户使用得越多。转化率指标时反映一个产品功能的实际效果的数据指标,例如开发了一个功能,用过一些指标的检测,可以反映出这项功能在提高产品用户活跃度或者促进业务发展是否起到了作用。
下面介绍几个主要指标:
Uv/pv
Uv指某个网站的独立ip的数量,通常计算周期是当天的0到24点。可以反映出用户活跃度,也可以反映出某一个固定周期内用户使用产品的情况。Uv数是反映产品健康指数的一个数据指标之一。
PV:统计的是用户打开网站的次数。通过产品pv指标我们还可以进行一些分类测试。比如我们做一个托展示入口有两个可选方案,如果不确定那个方案更好,就可以把两个方案都放上,然后通过统计目的页的pv数进行判断,pv数高的说明用户喜欢这个方案并且愿意点击进来。Pv和uv都是在产品设计中进行功能设计验证的很好的数据指标。统计pv和uv数可以借助一些工具来进行,比如百度统计和谷歌的analytice。
DAU/MAU
DAU:指日活用户,记录一天内独立用户登录或使用产品的次数。MAU:指月活用户,记录一共自然月内用户的活跃度情况,指标数据越高使用产品的人也就越多。
GMV
GMV:是一种反应平台交易总量的数据指标。是反映平台交易总量的数据指标。例如用户在淘宝上下订单了但是还没有支付,那么这个商品的交易额度会被计入GMV.该指标只能从一个侧面反映平台的交易活跃度,对于交易平台关键还是要看总成交量。
转化率/留存率
转化率是统计一个大范围的运营活动或者产品动作转化出有效用户的比例,如做一个运营活动有1000个用户查看了改活动,最终有100个用户参加了活动,则这次运营活动的转化率为100/1000(10%),转化率通常衡量的是投入产出比。
留存率是指用户进入产品后,在一定的周期过后留存在产品中的用户数量。留存率能体现产品在用户心目中的可用性。如发现留存率比较低那么可能要考虑设计一些能增加用户粘性的产品功能,或者优化之前的产品功能。以此发掘用户需求来提高产品对用户的可用性。
此文仅仅致敬自己,记录自己的成长。下一篇文章会介绍些产品项目开发实施过程中经常遇到的一些小问题,以及怎么应对,回答和解决的。感谢关注。