我们要不要上线「个人app」 ?

11,517 阅读7分钟

本文已在我的公众号hongyangAndroid原创首发。

我个人对于新事物抱着总是乐于尝试的态度,可能是小时候能够接触的东西太少。目前情况下,在自己的承受或者精力范围内,会主动去买一些或者做一些东西,更多时候是为了体验一下。我始终认为,很多东西只有亲身去感受,才能深刻的认识到自己对这个东西的见解。

今天给大家分享下,是否要去制作并且上线一款个人app,重点是上线,相信大家或多或少都制作多一款或者多款app。

上线的目的并不是为了说能挣多少钱...

想要挣钱没那么容易,很难做到。

上线的目的也不是为了给面试官看,我做了一个多么牛逼的app...

这个针对应届生是可以的,不过多数情况下,上线的app很难达到让面试官眼前一亮的感觉...

但是,我仍然鼓励大家去开发一款个人app,然后去尝试上市场的。

为什么呢?

假如你挣钱了咋办...(开个玩笑),不过我身边确实有制作个人app的朋友,app中有会员机制和广告,每年收入还可以的,相当于给自己涨薪了,厚着脸皮要了个本周某日的数据:

已经向该制作者承诺,不泄露app相关信息。

当然这个很难做到,如果做到了,那只能恭喜大家躺着挣钱了。不过不希望大家抱着挣钱的目的去做,这样会比较耗费你的精力。

重要的目标还是体验:从开发-上线-打磨这个过程

通过这个过程,你可以得到一些:

  1. 你可以更好的了解渠道的定义,工作中总是有多渠道的概念,这个时候你会深刻理解;

  2. 你需要自己去搞应用内升级、日活检测、crash率修复、三方登录等;

  3. 你会了解各个平台对开发者上线app审核的力度,比如你知道某些平台只让企业开发者,某些平台需要软著,某些平台就较为宽泛的管理;

  4. 作为自己视野的开阔与谈资;

接下来就以个人经验,分享几个上线个人app的注意事项。

集成数据统计sdk

不但要集成数据统计sdk,还要注意分渠道。不过一般我们个人app上线,并不会有那么多的渠道,例如使用友盟,利用productFlavorsmanifestPlaceholders在manifest中注明渠道即可。

数据统计sdk可以帮你:

  1. 发现crash,很多时候我们设备单一,大多数的crash还是需要用户去帮你测试出来的;

  2. 查看每个渠道的数据,这个会帮你发现哪些渠道比较关键,你可以选择首发,或者遇到审核不过的又非优质的渠道,可以稳住。

  3. 查看版本分布;

  4. 了解新增、每日日活、留存等,如果发现不对劲,可能是最新上线的功能有什么问题。

总之,可以帮你更好的打磨和了解你的应用。

集成应用内检测更新

即每次更新版本,不需要推到市场,用到打开app即可收到应用内更新。

为什么要这个呢?

当我们更新代码后,可以先开启应用内更新,一般情况下非强制,你可以升级一部分用户后关闭,利用这部分用户做一个简单的灰度。当他们使用过程中没有出现崩溃,也没有反馈,你就可以开心的打各个渠道包,上市场了;如果有问题,你还可以及时的修改代码。避免了刚上市场,发现问题,从而又要立即市场更新,而且这个更新是非及时的。

还有个很关键的原因,尤其是针对个人开发者,很多时候,由于各个市场的评估标准不同,你的app可能只在应用宝百度手机助手,这两个渠道上。那么小米手机的用户,是无法做到后台自动更新的,需要用户哪天手动打开对应的市场,手动更新,这个过程还是相当漫长的。

总之,应用内检测更新,可以帮你更快的完成版本收敛,更好的保证线上app的质量。

其实应用内更新很方便,github上库也比较多,只要有个地方能放置apk的下载链接,接口利用www.wanandroid.com/tools/mocka…即可。

比如我:

这属于偷懒的方案。

一定要有反馈的功能

反馈这个功能就更关键了,很多时候,你自己一个人测试和使用者的情况是不同;其次,便于收集需求。

你可以利用云服务器,写个简单的接口,能上传文字就行,记得之前我推荐过京东云,很多人购买了,可以利用起来。当然也可以利用类似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的亲身感悟,希望这些经验可以帮到你!

大家当中应该有比我更有经验的,欢迎留言分享给大家。

推荐阅读:

  1. 如何高效的阅读技术文章
  2. 就如何高效学习的一点建议

支持我的话可以关注下我的公众号和网站,每天都会推送新知识~

扫一扫关注我的微信公众号:hongyangAndroid