本文已在我的公众号hongyangAndroid原创首发。
我个人对于新事物抱着总是乐于尝试的态度,可能是小时候能够接触的东西太少。目前情况下,在自己的承受或者精力范围内,会主动去买一些或者做一些东西,更多时候是为了体验一下。我始终认为,很多东西只有亲身去感受,才能深刻的认识到自己对这个东西的见解。
今天给大家分享下,是否要去制作并且上线一款个人app,重点是上线,相信大家或多或少都制作多一款或者多款app。
上线的目的并不是为了说能挣多少钱…
想要挣钱没那么容易,很难做到。
上线的目的也不是为了给面试官看,我做了一个多么牛逼的app…
这个针对应届生是可以的,不过多数情况下,上线的app很难达到让面试官眼前一亮的感觉…
为什么呢?
假如你挣钱了咋办…(开个玩笑),不过我身边确实有制作个人app的朋友,app中有会员机制和广告,每年收入还可以的,相当于给自己涨薪了,厚着脸皮要了个本周某日的数据:
已经向该制作者承诺,不泄露app相关信息。
当然这个很难做到,如果做到了,那只能恭喜大家躺着挣钱了。不过不希望大家抱着挣钱的目的去做,这样会比较耗费你的精力。
重要的目标还是体验: 从开发-上线-打磨这个过程 。
通过这个过程,你可以得到一些:
你可以更好的了解渠道的定义,工作中总是有多渠道的概念,这个时候你会深刻理解;
你需要自己去搞应用内升级、日活检测、crash率修复、三方登录等;
你会了解各个平台对开发者上线app审核的力度,比如你知道某些平台只让企业开发者,某些平台需要软著,某些平台就较为宽泛的管理;
作为自己视野的开阔与谈资;
接下来就以个人经验,分享几个上线个人app的注意事项。
不但要集成数据统计sdk,还要注意分渠道。不过一般我们个人app上线,并不会有那么多的渠道,例如使用友盟,利用 productFlavors
和 manifestPlaceholders
在manifest中注明渠道即可。
数据统计sdk可以帮你:
发现crash,很多时候我们设备单一,大多数的crash还是需要用户去帮你测试出来的;
查看每个渠道的数据,这个会帮你发现哪些渠道比较关键,你可以选择首发,或者遇到审核不过的又非优质的渠道,可以稳住。
查看版本分布;
了解新增、每日日活、留存等,如果发现不对劲,可能是最新上线的功能有什么问题。
即每次更新版本,不需要推到市场,用到打开app即可收到应用内更新。
为什么要这个呢?
当我们更新代码后,可以先开启应用内更新,一般情况下非强制,你可以升级一部分用户后关闭,利用这部分用户做一个简单的灰度。当他们使用过程中没有出现崩溃,也没有反馈,你就可以开心的打各个渠道包,上市场了;如果有问题,你还可以及时的修改代码。避免了刚上市场,发现问题,从而又要立即市场更新,而且这个更新是非及时的。
还有个很关键的原因,尤其是针对个人开发者,很多时候,由于各个市场的评估标准不同,你的app可能只在 应用宝
, 百度手机助手
,这两个渠道上。那么小米手机的用户,是无法做到后台自动更新的,需要用户哪天手动打开对应的市场,手动更新,这个过程还是相当漫长的。
其实应用内更新很方便,github上库也比较多,只要有个地方能放置apk的下载链接,接口利用 http://www.wanandroid.com/tools/mockapi 即可。
比如我:
这属于偷懒的方案。
反馈这个功能就更关键了,很多时候,你自己一个人测试和使用者的情况是不同;其次,便于收集需求。
你可以利用云服务器,写个简单的接口,能上传文字就行,记得之前我推荐过京东云,很多人购买了,可以利用起来。当然也可以利用类似bomb这样的后端云去做,总之,一定要能够拿到用户的反馈。
亲身体验,个人app大部分需求迭代,都是用户反馈提供的。
后续考虑在wanandroid上面,给大家提供一个接收反馈的能力。
记得app上线了一年多,只有一个好评,恩,我自己评的…尴尬
其实是因为app并没有能够直接跳转到市场的功能,用户评价的可能性太低了。
加上后,几天内就迎来了好几个好评。
这个成本非常低:
#伪代码String appPkg = context.getPackageName();Uri uri = Uri.parse("market://details?id=" + appPkg);Intent intent = new Intent(Intent.ACTION_VIEW, uri);intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);
几行代码的就能搞定。
但是,由于个人app的特殊性,大多数情况下,很多市场是上不去的,比如小米对app质量要求比较高,vivo oppo对开发者资质审查太严格。
自带的市场即使跳转过去,也只会显示未收录该应用。
上述代码只能跳转到手机自带的市场,所以情况应该是,提前扫描用户手机中的市场软件,如果包含你上线的渠道市场,则跳转过去:
#伪代码String appPkg = context.getPackageName();// 扫描已经安装的市场包名ArrayList<String> marketPkgs = MarketUtils.queryInstalledMarketPkgs(context);L.d("market = " + marketPkgs);Uri uri = Uri.parse("market://details?id=" + appPkg);Intent intent = new Intent(Intent.ACTION_VIEW, uri);// 指定市场if (!TextUtils.isEmpty(marketPkg) && marketPkgs.contains(marketPkg)) { intent.setPackage(marketPkg);}intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(intent);
分享也是很关键的一个功能,正因为,你的app存在的市场比较少,使用者给其他人推荐的时候可能对方并不能在自带的市场搜索到。
所以最好集成上。
如果你比较懒,也可以加一个分享apk的功能,也没问题:
#伪代码public static void shareFile(Context context) { File apkFile = AppUtils.getApkFile(context); Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.setType("*/*"); intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(apkFile)); context.startActivity(intent);}
这样就可以将apk分享给别人了。
很多时候,一些细节,就能给你带来非常多的改善。
当然不仅是app,相信所有你所经历的事情,多观察,多思考,都有很多类似的技巧。
经常思考,努力完善这些细节。
以上就是我做个人app的亲身感悟,希望这些经验可以帮到你!
大家当中应该有比我更有经验的,欢迎留言分享给大家。
推荐阅读:
支持我的话可以关注下我的公众号和 网站 ,每天都会推送新知识~
扫一扫关注我的微信公众号:hongyangAndroid