一个app从设想到上线运营的完整过程

⼀个app从设想到上线运营的完整过程
⼀个app从设想到上线运营的完整过程
前⾔
我是⼀个java程序员,同时喜欢古诗词,经常会写些古诗,安装并体验了⼀些相关app,不太满意,于是就萌⽣了⾃⼰开发⼀个的想法。到现在我⾃⼰完全独⽴开发的⼀款app,已经在各应⽤商店上线了(名字叫诗词宝典),中间遇到很多坎,这⾥分享并记录⼀下,希望可以给想开发app的同志⼀些参考,避免⼀些坑。总结⼀下⼤概步骤就是 设计->开发->部署打包->发布到应⽤商店
设计
设计阶段主要做的就是列举app的功能,规划出app的⼤致模样。
我当初设想的⽐如登录注册,浏览古诗词,写诗,看别⼈写到诗等。功能列举出来,然后就是画原型页⾯,使⽤了⼏款原型⼯具,国内的基本都要收费(破解不了),最后⽤的是axure,他可以直接打包成⼀个静态⽹站,⽤来做交互很⽅便,可以⽹上下载⼀些组件库,画出来的效果很好。⼤概⽤了⼀周时间,原型就画好了,接下来就是开发了。
开发
准备⼯作
上线app需要准备很多,我是磕磕绊绊搞了很久,现在总结⼀下
云服务器,我选⽤的是阿⾥云,需要实名认证过。我买的1核2g,我⽤的centos系统,⼀年两三百块钱
菱角剥壳机备案域名,在阿⾥云租服务器后,然后同样在阿⾥云购买域名,域名⽐较便宜,⼀年⼏⼗块钱。买好之后进⾏备案,备案需要实名认证,审核通过⼯信部会给你发短信,再次验证。
对象存储,租来的服务器磁盘只有40g,所有我选择把⽂件和接⼝服务分开来,⼀开始⽤的七⽜,个⼈开发者认证后会有50g免费额度,超出费⽤也很低,后来⼜加了腾讯云的对象存储cos,cos有客户端,⼿机也可以上传⽂件,很⽅便。⽽且价格更低。这个的成本可以忽略,总共也没花⼏块钱。
短信,因为登录需要使⽤验证码,使⽤的是腾讯云短信,每个⽉有100条的免费额度,超出后⼤概4分钱⼀条,开通后申请好模版和签名。
邮箱,同样登录需要,使⽤的⽹易邮箱,然后开通smtp服务。
应⽤商店账号,安卓的主要⼩⽶,华为,应⽤宝,百度,阿⾥分发都开通⼀下。iso的需要开发者账号,每年99美元,因为我负担不起所有没有上线。
百度ai ,因为诗词宝典有⼀个⽂字转语⾳的功能,⽤的百度的,注册账号并认证。
软著,百度搜⼀下,有很多⼴告,随便⼀个买就⾏,费⽤在300左右,需要30个⼯作⽇。加钱可以缩短时间,不急的话甚⾄可以⾃⼰去申请。
开发是耗时最长的,主要就是数据库,后端,前端,第三⽅服务对接,管理系统等。
后端开发
后台⽤springboot+mybaits+mysql进⾏架构,考虑到开始没有多少⽤户量,为减少开发成本,未使⽤缓存技术。先根据原型设计出数据库的表结构,⾃动⽣成⼀些代码,然后编写业务代码,⽤到的插件主要有
jjwt ⽤来⽣成token,
fastjson 阿⾥的json转换⼯具
lombok 实体类免写get和set⼯具
mybatis-plus 插件等
具体pom⽂件依赖如下
<!--百度语⾳-->
<dependency>
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.12.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--jjwt-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!--fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
<!--七⽜-->鞋帮
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.22</version>
抛磨
</dependency>
<!--邮件-->
<dependency>
<groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
<!--阿⾥-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency>
<!--腾讯-->
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>钕铁硼磁性材料
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> </dependency>
<!--统⼀mapper-->
<dependency>
<groupId>com.baomidou</groupId>
地址标准化<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.apachemons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.13</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
后⾯就是写接⼝了,接⼝开发和调试⼤概⽤了两周时间,在调试第三⽅api的时候耗时⽐较多。
前端开发
前端开发经历⼏个不同阶段,所采⽤的模式包括html加壳打包;安卓原⽣开发;flutter 跨平台开发;
第⼀版使⽤html+jquery的⽅式写的页⾯,使⽤hbuilder 开发⼯具配置打包就⾏了,虽然很丑,但基本功能有了,且⽤户体验很差。
第⼆版使⽤了vue+vantui 来编写前端页⾯,使⽤安卓webview加载本地⽂件然后打包,因为使⽤了ui框架,样式上好看⼀些,但是复杂页⾯⽐较卡顿,在此期间学习了⼀些vue和安卓的相关东西。
第三版,我直接抛弃加壳⽅式,使⽤安卓原⽣开发,但是画页⾯的难度⽐html繁琐数倍,⽽且难看,
最终没有发布该版本;
第四版,因为flutter问世,我了解⼀下,组件齐全,拿来即⽤,⽽且是跨平台的,于是采⽤了flutter进⾏开发,加上学习不过⼀个⽉的时间就上线了。⽬前这是最好的⽅案了,成品我⼗分满意。
前端开发主要是画页⾯,对接⼝,⽐较耗时间,然后联调⼀些bug并解决掉。
logo和启动图;⾃学了⼀些ps,设计了⼀个logo和启动图,和⼏张轮播图。也可以专业的ui进⾏设计,费⽤不低(贫穷使我啥都要会⼀点)
管理系统
管理系统必不可少,不可能要加点数据就去直接操作数据库,很⿇烦。
我使⽤vue+element ui来做,组件化使得管理系统开发得很快,有两个图表统计集成了echarts,管理系统就不细说,很简单。
数据采集
前后端开发完成之后,就需要往数据库⾥添数据了,因为古诗词都是公共版权,随便⼏个⽐较规范
的⽹站抓取数据,抓取数据使⽤jsoup,⼀个java爬⾍⼯具,稍微懂html结构都会⽤,抓取下来的数据清洗完批量操作到表⾥就⾏。防辐射电磁炉
部署打包
到这⼀步,诗词宝典已经能在局域⽹内运⾏了,如何部署到外⽹呢?
部署服务器,登录从阿⾥云租来的主机,安装docker ,nginx,mysql,并配置。使⽤docker跑⼀个tomcat镜像,将后台数据库改成线上环境,打⼀个war包,上传到webapps⽬录下,⽤到上传⼯具fileZilli。
域名解析,如果使⽤域名连接服务的话,需要进⾏解析,nginx配置⼀些域名跳转,端⼝映射就⾏。
apk打包;不管是⽤安卓加壳还是flutter,都会build⽣成⼀个apk包,然后使⽤jdk的⼯具⽣成⼀个签名⽂件,⼀定要妥善保管key⽂件和他的密码。然后对apk包进⾏签名,如果要发布到应⽤宝,需要先去平台加固,然后再签名;
ios 打包,需要使⽤mac电脑安装xcode,购买开发者账号才⾏。
弄完之后,安装包就是可以⽤的了。
发布到应⽤商店
不管是哪个平台的应⽤商店,都需要实名认证,上传安装包,填⼀下资料⽐如app截图,功能说明等。然后等待审核就⾏了,审核通过之后就会在应⽤商店⾥搜索到了。
各个应⽤商店开发平台地址:
⼩⽶:dev.mi/console/
华为:id1.cloud.huawei/CAS/portal/loginAuth.html
阿⾥:open.uc/login
百度:app.baidu/
应⽤宝:wiki.open.qq/wiki/%E9%A6%96%E9%A1%B5
(oppo和vivo不接收个⼈开发者)

本文发布于:2024-09-22 15:29:02,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/202532.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:需要   开发   数据   上线   数据库   商店   功能   打包
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议