从0到1开发一款App(一):前言

大家好,我是《麻雀笔记》App的开发者,随着新版本的上架,我也萌生了写一系列关于如何开发一款App的文章,这个系列打算就叫《从0到1开发一款App》了,是不是感觉很土low,没有关系,只要内容不low就行。

这个系列目前的规划大概会有八篇文章左右,分别会介绍与产品、设计、开发、测试以及运营等等相关的内容。

在这里插入图片描述

我打算用两个月左右的时间把这个系列写完,这个系列可以算得上是对我前期所有工作的一个总结与概括,包括开发以及对产品的思考。通过这些文章能够给不管从事开发,还是产品、设计等工作的人,能够更全面更直观的了解到一个App是如何从无到有的被开发出来最终上架的。

作为这个系列的第一篇文章,我想跟大家分享一下我为什么要选择开发一款App以及关于我的App《麻雀笔记》的一些想法。

概览

这篇文章总共有四个部分:

  1. 自我介绍
  2. 少废话,直接看产品
  3. 为什么要开发《麻雀笔记》
  4. 开发一款App困难吗?

1.自我介绍

我是《麻雀笔记》的开发者,目前是一名Android程序员。除了《麻雀笔记》我还有一个作品是《Audrey》,它是一个动态壁纸,里面有好几种样式,每一种都有点意思,有点趣味。当时开发它的目的就是想展示一下自己那不丰富的创意。下面是一些截图,大家可以欣赏一下:

在这里插入图片描述

第一个是一个iPod,插入耳机孔的时候,屏幕会被点亮;第二个是时间,背景会随电量自动更换;第三个是定位、移动网络等信号;第四个是个小球游戏,通过晃动手机可以让小球逐渐变小。

除了是一名Android开发者,同时我也是一名搞机?人士,大学期间我自己买的第一部手机是一加一,搞机人应该知道,它在那个时候可以算得上是神器了,可以刷非常多非常多的ROM,像MIUI,SmartisanOS, Flyme等等,在这其中有一个ROM打开了我的新世界大门——CM。

在这里插入图片描述

CM全称CyanogenMod,由Cyanogen团队开发。Cyanogen是目前全球最大的Android第三方编译团队,其发布的Android 2.1内核CM5系列ROM被广泛使用,促进了用户从Android 1.6到Android 2.1版本的第三方升级。这个小组曾经先于Google公司为很多手机率先定制出稳定的Android 1.6 ROM。

CyanogenMod 是一个免费、基于社区构建的Android OS的修改和改进版本。

2016年11月下旬有消息传出,Cyanogen 将关闭位于西雅图的办事处,现有的CyanogenMod 项目在关闭之后迁移至全新的Lineage OS项目上。

CM算得上是我真正使用的第一个类原生的OS,当时一进入主界面,嘴巴里不断地蹦出:卧槽!卧槽!!卧槽!!!一个ROM竟然可以那么简洁、优雅;我记得打开设置页面上下滑动时那个波纹反馈,真的是看的我如痴如醉,简直是太优美了。这也是我一次截触Material Design,自那以后,我入了原生系统的坑,一加一退休后我用了Nexus 5X以及现役的Pixel XL。

在这里插入图片描述

由于对原生的特别偏爱,所以我的App的设计绝大部分都是参考了Material Design设计,后面我会有专门一篇来讲设计这一块,这里暂先提一下,感兴趣的朋友也可以通过下面这个链接提前了解一下Material Design:

https://www.mdui.org/design/material-design/introduction.html

自我介绍这个部分差不多了,我也没有什么特别的地方,只是个喜欢搞机、安卓的人儿。下面我们来看看产品部分。

2.少废话,直接看产品

下载链接:https://www.coolapk.com/apk/204800

软件截图:

1.0版本软件宣传图

在这里插入图片描述

2.0版本软件宣传图

在这里插入图片描述

需要提一下的是,1.0版本的时候软件叫《卡片夹》,在2.0的时候因为一些原因改名叫《麻雀笔记》。

2.0产品特性:

快速记录生活的点滴、每天写写日记、计划下个月的观影清单、留存一些有意义的照片、纪念某个重要的时刻、收藏想要阅读的网页、整理你留下的足迹…

多种类型:便签、清单、图片、倒数日、纪念日、链接、绘画、位置、银行卡、联系人、账号等;

多维度归纳整理:类型、标签、四象限等;

便捷易用:支持小部件、磁铁(Tile)、快捷图标(Shortcuts)、分享等;

干净简洁:无广告、无多于元素、纯粹;

麻雀笔记,整理归纳你的碎片信息。

以上就是关于《麻雀笔记》的一些基本信息,可能你会好奇目前做到了一个什么水平?

在这里插入图片描述

这是我刚刚从酷安上截的图,目前关注:995,评论:189;下载:7616,评分:4.8分;

算不上特别优秀,但对我已经非常满足了,况且我也不在意这些,只要用户觉得好用,跟我有一样的需求那就值得了,其他的,开心就好。

3.为什么要开发《麻雀笔记》

在1.0版本发布的时候,我曾经写下过这样的文字:

你有没有过别人发给你一条消息你需要保存起来,可是当你需要它的时候你已经找不到了。

你的通讯录里是不是会保存一些你一辈子只会打给他一次的联系人,比如你的上一个房东,你舍友的朋友等。

你朋友在你那寄存了点东西,他现在需要你把东西寄给他,可是地址信息都不知道他什么时候用什么方式发给你的。

我记得在开发《卡片夹》之前,我换了工作城市,所以那段时间里需要保存很多临时的信息,比如:新的住宅地址、公司的地址、房东的联系方式等等。真正让我下定决心要开发一款App的原因其实是那个时候由于我办了一张信用卡,有的人可能知道,如果你要取现的话是要输入信用卡的有效期和安全码的。那个时候由于资金比较紧张所以来来回回需要借很多次,最终我被搞得实在是有点烦了,于是就下定决心来开发一款专门是用来存储一些碎片信息的App。

或许有人会问:“这不就是一个简化版的记事本吗?”,记事本对于很多人来说其实是笔记本,更多的是存储一些比较多的文字。就拿我自己而言,我目前使用的笔记应用是印象笔记,印象笔记里面几乎全是我的学习笔记,每一篇的长度至少都是上千字的,里面几乎没有很短的笔记。而相对于笔记或者记事来讲,碎片化的信息可能最多也就百来字而已,而且它们还有一个特点就是时效性比较强,也就是说可能我存储的信息一个月后就没用了,甚至更短。那么对于这些信息,你要保存在笔记里面显然不太合适。
就像《卡片夹》的宣传语一样,《卡片夹》的定位是帮助你整理生活的碎片信息。

注:《麻雀笔记》的1.0版本叫《卡片夹》

随着2.0版本的到来,我对它有了更深的理解。

首先,我先问一个问题:什么叫信息?

百度百科上是的定义:

信息,指音讯、消息、通讯系统传输和处理的对象,泛指人类社会传播的一切内容。

维基百科的解释是:

信息(英语:Information),又称情报,是一个严谨的科学术语,其定义不统一,是由它的极端复杂性决定的,获取信息的主要方法为六何法。信息的表现形式多不胜数:声音、图片、温度、体积、颜色……信息的类别也不计其数:电子信息、财经信息、天气信息、生物信息……。

我的理解是:信息就是有价值的“东西”,它的载体可以有很多中:文字、图片、声音、温度等等;而且信息具有相对性,对于不同的人,同样的东西可能有“价值”,也有可能是“噪声”。

那碎片信息呢?

对于“碎片化信息”,我的理解是:不太重要但常用、不大但实用性强。举个例子:我在刷新闻的时候发现有一篇有深度的长文,但是由于我在公交上或者正在蹲马桶没有那么长的时间静下来好好看,这个时候我往往会先收藏,然后晚上回家了在打开阅读。基于以上的场景,“稍后阅读”类的App开始出现,其中的代表是:Pocket、Instapaper。

在这里插入图片描述

在这里插入图片描述

但对于碎片化的信息来讲,仅仅“稍后阅读”肯定还不够。生活中除了网页,我们还有很多很多碎片呢。比如一些截图、一些纪念日、一些倒数日以及一些临时的位置信息与联系人信息等等。这些东西一直充斥在我们的生活中,它们很零散,显得也不是非常重要,但是一用到它们的时候,你就在左翻右找、翻遍手机里的所有App,好不容易找到了,下次用到还是记不住它们躲藏在哪。

可能有的人会说:“我不会啊,我就用笔记本、便签就可以啦”。

的确,随着现在市面上的笔记本便签应用的功能越来越丰富,它们已经能够极大的满足了我们的日常需求。但这里会有两个问题:

第一个:就算功能再多,它们最终还是只能展示你输入的信息。比如我的位置信息,很显然只显示文字是远远不够的,我们可能需要的是跳转到地图App直接导航或者在地图上查看它的位置信息等。还比如一些日期类的信息,我想每一个人都知道10月1日是国庆节,但是知道今天距离国庆还有多少天的人相对不多。所以说,笔记它只能把信息保存起来供你查看,它不具备把信息进行特殊的处理来供你更好的理解与使用。

第二个:不便于整理归纳。用整理笔记的方法来整理碎片化的东西,可能不太合适。对于笔记,可以使用按文件夹分类或者使用标签来做整理。但这些处理方法太过常规。我想看看今年还有哪些日子是需要我值得注意的,我想对它们做个重要程度的分类等等,这些操作一定程度上不适合用在笔记上,比如重要性上,我记了好几篇笔记,你说哪篇更重要,可能都重要,但是你说某篇文章中有哪些重要的语句那还合理点。所以说,对于碎片化信息的整理归纳应该有与之相配的方式来处理。

所以基于以上的认知与理解,《麻雀笔记》的开发是相当有必要的。

既然已经决定了要开发《麻雀笔记》,那现在的问题就是把它开发出来。

开发一款App是一件系统性的事情,除了要有人会敲代码,还要有人懂产品、画产品原型、要有人画设计等等。这些工作缺少任一环节都无法顺利的开发完一款App。所以对于一个只会敲代码的人来说,如何把其他事情做出来成为了重中之重。

开发1.0版本的时候,设计我找了一位朋友,非常荣幸的是,结识了一位非常优秀的设计师。

在这里插入图片描述

这是1.0的设计稿,如果大家感兴趣的话,可以去他主页欣赏更多的作品。

https://www.zcool.com.cn/u/15747919

2.0的时候,原本打算和几个好友共同合作一起开发,但每个人的时间都非常有限,毕竟我们都有自己的工作。所以到最后除了我学长帮我弄了后台,其他的都是我一个人在弄。现在想来,幸亏自己之前经常搞机,也爱刷App。所以很早我就阅读完了Material Design的设计文档以及学会了墨刀的基本使用。所以产品与设计上并给有花很长的时间。

开发《麻雀笔记》除了满足自己的需求,还有很多其他原因,比如:更系统的了解一款App是如何被制作出来的,通过自己的软件能够让更多的人来使用到它。

4.开发一款App困难吗?

首先你要确定自己想做什么,只要这个确定了才好谈下面的一些准备工作。如果你都不知道或者说是不明确的话,那大概率你会半途而废。

其次,要看你的自身情况,确定自己能做什么,哪些做不了,以及哪些不擅长但是还可以的。简而言之,要了解自己。就拿我而言,我自己做安卓开发,所以客户端这块我可以一个人搞定,剩下的也就是设计以及后台部分。设计部分前文已经有所提及,后台部分当时是用了LeanCloud,它是行业领先的一站式后端云服务提供商,专注于为开发者提供一流的工具、平台和服务。

在这里插入图片描述

解决了设计和后台的存储的问题,那开发一款App想必也不会多大的麻烦了。现在回过头来看,其实当初不应该选择使用云存储,可以优先考虑使用第三方存储服务或者网盘类的服务,这样我就能更加专心于移动端的开发以及产品上的改进了。在决定开发一款App的时候一定要知道自己能做、可以做些什么,对于不得不做但是没有能力的东西要能找到现成的解决方案,可暂时不做的那一定不要做。

除了知道自己想做什么,以及能做些什么外,还有一点也是非常重要的:做的App到底难不难。

一般情况,个人开发的东西逻辑上都不会太复杂,更多的都是侧重于某一个功能,所以如果你的前期规划中没有太多的需求,那基本上两个月左右就可以开发出一个可上线的App,如果功能点单一的话那花的时间可能会更少。但如果你开始就想做个吊炸天的App也不是不可以,但需要学会分布走,一口吃不成胖子,把功能点迭代实现,这样做的目的除了减轻了上架的难度,同时也可以在迭代更新中不断地验证自己的产品想法,可以做到及时的调整。

综上,如果你有编程基础,想做出一款App,或者是一个产品,问题都不会太大。至于产品、原型、设计等等,我会在接下来的一系列文章中讲述我开发《麻雀笔记》App时的一些经验和做法,敬请期待。

?

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值