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

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

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

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

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

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

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

为什么呢?

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

img

已经向该制作者承诺,不泄露 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… 即可。

比如我:

img

这属于偷懒的方案。

# 一定要有反馈的功能

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

你可以利用云服务器,写个简单的接口,能上传文字就行,记得之前我推荐过京东云,很多人购买了,可以利用起来。当然也可以利用类似 bomb 这样的后端云去做,总之,一定要能够拿到用户的反馈。

亲身体验,个人 app 大部分需求迭代,都是用户反馈提供的。

反馈让你真正了解到用户的需求和吐槽。

后续考虑在 wanandroid 上面,给大家提供一个接收反馈的能力。

# 记得加上跳转到市场的能力

记得 app 上线了一年多,只有一个好评,恩,我自己评的… 尴尬

其实是因为 app 并没有能够直接跳转到市场的功能,用户评价的可能性太低了。

加上后,几天内就迎来了好几个好评。

这个成本非常低:

1
2
3
4
5
6
#伪代码
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 对开发者资质审查太严格。

自带的市场即使跳转过去,也只会显示未收录该应用。

上述代码只能跳转到手机自带的市场,所以情况应该是,提前扫描用户手机中的市场软件,如果包含你上线的渠道市场,则跳转过去:

1
2
3
4
5
6
7
8
9
10
11
12
13
#伪代码
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 的功能,也没问题:

1
2
3
4
5
6
7
8
9
#伪代码
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 的亲身感悟,希望这些经验可以帮到你!

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

Edited on Views times