当前位置: 首页 > news >正文

Android 项目必备(三十)-->从 0 到 1 开发一个属于自己的 App

在这里插入图片描述

文章目录

    • 一、前言
    • 二、做一个什么样的 App?
    • 三、数据从哪里获取?
    • 四、从 0 到 1,我们需要从何开始?
    • 五、正式进入开发中
    • 六、测试/修复 Bug
    • 七、项目已经完成,提交应用市场?
    • 八、关于软著

一、前言

一个 Android 开发者的真正蜕变,要从真正做一个属于自己的 App 开始,只有自己一个人摸索、研究,真正靠自己踏上这条路,才能尝尽这条路上的酸甜苦辣,才会成长!

二、做一个什么样的 App?

这是一个很难确定的事情,因为如果你有一个好的想法,好到做出来就有大量用户,好到不用推广就能吸到万千粉丝,那么,你还做个屁的练手App 啊,直接去创业不就好了!也不用自己开发啊,招人啊,自己当老板呀 是吧!现在这个时候,基本上各个领域都已经有了相对成熟,独霸一方的 App 存在,所以我们不要想着,做一个 App 就能让自己流芳百世,一举成名了。

所以在功能上,不需要太苛求,做自己喜欢的就好,你只要想着,反正也不会大火就好了。

三、数据从哪里获取?

对于一个移动端的开发者来说,这其实是一个很痛苦的问题,因为我们擅长于把从服务端的获取的数据展示在 App 上,却不擅长创造数据。

纵观现在的市场,不难得知,一个没有后台支持的 App,是走不长远的。

所以,必须让我们的应用有后台数据的支持。那么问题来了,我们如何获取 App 上需要显示的数据?

1. 直接使用现成的网络云服务器

现在市场上有的 Bmob 后端云 和 LeanCloud ,他们提供的服务是差不多的,对于 Android 开发者来说,我们只需要集成他们的 SDK,就可能很轻松的实现建表,对表中的数据进行 CRUD 。

对于一个应用来说,用户体系往往是最重要的,有了用户,你才能往深层方向发展。Bmob 也想到了这一点,从创建一个项目开始,它就默认创建了一个自己的用户体系,SDK 也提供了很方便的用户管理的接口,包括发送手机验证码,对验证码的校验,用户注册,用户登录,用户重置密码,用户邮箱验证等等,这对于一个移动端开发者来说,简直就是福音,也一定程度上解决了 App 用户体系的常见问题。

2. 直接使用免费的公共接口

  • 万维易源
  • 聚合数据
  • 百度智能云
  • Android 免费通用 API 接口

3. 自己搭建后台服务器
这当然是最好的一种方式,不管是数据,服务都是可控的,安全的。

首先,你需要学习去开发服务器端的代码,你还需要学习数据库相关的很多知识。当你摸爬滚打一段时间开发出一套后台接口之后,你还需要搭建一个线上的服务器,那么就意味着你需要购买一个云服务器,买完服务器之后,你需要在服务器里面搭建一个自己的代码运行的环境,然后你需要把你开发的代码部署到服务器上去…除此之外,买服务器意味着你要花钱,可能后面还需要买oss存储服务,cdn加速等等,还需要花更多的钱。而且,而且,而且这所有的所有,你需要自己摸索,遇到问题只能自己解决,这是很痛苦的。好在我是在阿里云购买的服务器,(其实还有很多其他平台,比如腾讯云,京东云等等),阿里的工单系统服务着实很好,响应也很快,技术服务也很到位,在一定程度上帮我解决了很多问题,在此表示感谢。

四、从 0 到 1,我们需要从何开始?

1. 正常的开发流程
对于企业项目的开发,粗糙的流程一般是:产品经理收到需求,与后台开发人员进行沟通,确定功能点,然后根据需求设计出原型,将原型交付给 UI 设计师,与此同时,后台开发人员开发出对应的 API 接口,UI 设计师设计完成给予前端开发人员,前端开发人员先设计出页面,再与后台开发者对接 API 接口,将数据展示出来并完成具体功能的开发,最后上线。

Android 项目必备(八)–> APP 的开发流程

2. 非正常的开发流程

可是我们是一个人开发呀。

所以我们不太适用上面的开发流程。我们最开始需要做的是需求分析,我们需要确定,初始版本需要哪些功能,其次在移动端和服务端两个开发点做选择,到底是先开发移动端还是先开发服务端,这个就因人而异了,有的人喜欢先用假数据开发出一个模板,等到数据来了之后再进行填充,而对于我,我就不喜欢这样,反正都是要做的,多做一个模板的版本,就要多花时间,所以决定先写服务器。

服务端开发完成之后,再写客户端,在开发客户端的时候,对于页面的设计,一方面靠自己想,另一方面,靠模仿别的 App。当服务端和客户端都开发完成并完成测试之后,就要开始搭建线上服务器环境了,当环境搭建完成并完成代码的部署之后,就要开始着手上线操作了。

五、正式进入开发中

1. 功能构想
在这里插入图片描述
2. 构建一个 Android 应用
对于 app 页面来说,我们主要是自己设计加上模仿别人的 app ,多体验别人的 app ,把别人好的交互,好的设计引用的自己的应用里面。

注意:不是所有的交互都适合自己的应用,借鉴也要适可而止,否则会不伦不类。

在图标上面,一来可以找做 UI 的朋友设计,二来可以在专业的网站上去获取。比如 iconfont,基本上常用功能的图标都能在这里找到。还可以对图标进行简单的处理,比如颜色,大小,十分方便。

  • 墨刀
  • 站酷
  • 蓝湖
  • GitHub上受欢迎的Android UI Library

3. 注意

  • 应用内更新
    这个功能是必须在第一版就有的,因为这个功能是保证已安装你应用的用户能够第一时间获取你应用更新信息的基石。
    Android 项目必备(二十九)–>App 在线升级与更新
    在这里插入图片描述

  • 分享功能
    这个模板不是必须要有的,但是却是最好能有的功能。为什么这么说呢?所谓物以类聚人以群分,我们的好朋友,用户的好朋友都是有着相似兴趣爱好的,当其中一个用户使用了你的APP,觉得很好玩的时候,他有可能也想分享给他的好朋友体验,这样一来,你可以不费吹灰之力,通过用户就能为你再生用户,岂不是美滋滋?
    【Android – 项目必备】使用友盟集成 QQ、微信、微博等第三方分享与登录

  • 意见反馈
    这个模块是一定要有的,因为作为个人开发者来说,你是没有很多时间来测试的,你也没有特别多的测试机来进行测试,所以,你更需要的是广大用户来帮助你测试,所以当他们在使用的过程中,遇到问题的时候,他们需要一个入口来反馈。而且当用户在使用的过程中,可能会有体验不佳的情况,或者他有更好的意见需要反馈,都需要一个入口来反馈,毕竟一个应用是需要在市场上进行不断的磨合才能越来越好。
    在这里插入图片描述

  • 崩溃信息收集
    这个也是必须要有的,就跟前面说的一样,有些bug是在特定的机型上面才会出现的,如果你没有这个机型,那么你在开发的过程中就不会发现这个bug,所以你就需要使用一个插件来收集用户在使用的过程中出现的崩溃信息,比如日常开发中常用的移动时代首选Bug 管理系统。

六、测试/修复 Bug

其实这是一个很蛋疼的事情,因为如果是我自己测试,我大脑会促使我按我的逻辑来操作,那么会有个屁的 bug 啊,这也就是为什么公司要招测试的原因吧。毕竟要找个比较贴近用户的人来操作才会找到问题所在,所以,我只能请我女票测了。

七、项目已经完成,提交应用市场?

在这里插入图片描述

八、关于软著

现在越来越注重版权看,所以我觉得不论你是基于练手走流程,还是真的想开发一个 APP,实现自己的价值,都有必要为你的应用去申请一个软著,就像给你的孩子上户口一样。而且有很多开放平台在你没有软著的时候,都会刻意不让你过。

相关文章:

  • led灯珠型号及使用参数
  • MYSQL介绍——数据库的增删改及常用函数
  • 线性单功能PEG试剂甲氧基-聚乙二醇-丙烯酰胺,mPEG-Acrylamide,mPEG-ACA
  • 洛谷P3694
  • b站pink老师Echarts数据可视化笔记
  • 计算机三级数据库运行维护与优化(四)、合理使用索引、数据库存储结构和存取方法优化、完全规范化、索引的使用原则、、网络优化、监控内容、物化视图
  • HDMI/DVI____串行发送器
  • 深度操作系统 15.2——怀揣梦想,笃定前行
  • SAP PI PO 接口配置主体传播 RSXMB_CONFIG_PP_NEW
  • Python编程基础:函数的使用
  • 19.请介绍一下重绘和回流
  • Flink / Scala - AllWindowFunction 与 KeyedProcessFunction 处理 TopK 问题
  • C++20之Concpet(概念部分,之二)
  • 【Spirng】@Component和@Configuration和@Bean的区别
  • 跟着江南一点雨学习springmvc(3)
  • 《深入 React 技术栈》
  • 2017 前端面试准备 - 收藏集 - 掘金
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS 专业技巧
  • css的样式优先级
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Javascript 原型链
  • MySQL数据库运维之数据恢复
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • webgl (原生)基础入门指南【一】
  • 大整数乘法-表格法
  • 简单实现一个textarea自适应高度
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 数组大概知多少
  • 微信小程序实战练习(仿五洲到家微信版)
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • (1)SpringCloud 整合Python
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .Net Redis的秒杀Dome和异步执行
  • .NET 常见的偏门问题
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • .Net程序帮助文档制作
  • .net流程开发平台的一些难点(1)
  • .考试倒计时43天!来提分啦!
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [Android]常见的数据传递方式
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [C/C++]数据结构 深入挖掘环形链表问题