前言

第一次接触Android开发大约是去年八月份,是在大一的暑假,感觉这个学起来挺简单的,还能够放在手机上运行,感觉美滋滋。
于是学了两个月之后,一个朋友要我做一个功能,说能不能在锁屏界面上弹出一个框框,然后可以在上面记录一下今天要做的事情,这样就可以每次点亮屏幕的时候就能够看到了。于是匆匆忙忙搞了出来,但是程序似乎挺容易被系统杀死的,之后就弹不出来了,后来也就不了了之了。
但是最近又学了一点进程保活的技巧,便用在了那个项目身上,发现效果还不错。于是又萌生了完善那个APP的想法,说干就干,功能比较简单,几天就搞定了第一版。

第一个版本

只考虑实现某些功能,不考虑别的,是一个完完全全的单机APP,代码也是寥寥草草,扩展性非常差。数据库的表结构也没有怎么设计,看到还差什么属性就往上加,然后更新一下数据库的表结构。这样反反复复改了好几次吧,总算第一个原型出来了,没有发现什么bug,但是bug总是存在的,只是还没发现罢了(后来在一个低版本的机器上发现了)。

第二个版本

第二个版本是想重构一下代码,考虑一下未来可能会发生变化的地方,于是尝试使用了MVP架构去优化代码,结果重构了两个界面,花了足足4个多小时!但是不得不说,程序的可扩展性还是提高了很多,至少将View和Model进行了解耦。但是后来发现MVP实在是太难使用了,特别是adapter的逻辑比较复杂的时候,就感觉使用MVP是一个错误。

第三个版本

这也是最新的一版,但是还没有进行编码。因为吸取了前面两次的教训,不弄清楚需求之前,尽量不要编码实现,不然改动的时间会非常多,而且会破坏代码的结构。所以今天花了一些时间和同学讨论,某些功能是否有必要,如果需要,又该怎样排版。以及界面该如何美化,如何提升用户体验等等。讨论了很多,之后依然没有编码,因为感觉还没有达到一个最终的效果,许多东西还有待商榷。

感悟

  1. 需求很模糊的时候,尽量不要编码。
  2. 界面最好要能够确立风格,各个界面的风格要统一。
  3. 在编码的时候,最好把架构搭好,根据复杂度选择不同的架构。
  4. 给别人打工比自己当老板要轻松。

由于是自己想做一个好用的APP,然后推荐给大家使用,所以总想加入一些实用的功能,又不知道具体的细节,所以走了很多不必要的弯路。接下来准备花一个星期去确定功能和界面,然后下个周末再编码,希望能够做出一个自己满意的效果。
还想问大家一个问题:没有美工,且自身的审美能力极差,该如何设计出好看的APP界面呢

记一次独立开发APP的感悟相关推荐

  1. 如何独立开发 APP 赚钱?

    我是一名 Android 开发, 之前有过从零到一开发 APP 并且赚到了钱的经历, 详细可以看这篇文章 半年,一个人,从零到300万下载量, 从挖掘需求,到 Logo 制作,展示图制作,再到开发并且 ...

  2. app软件开发、uniapp、uni-admin使用,独立开发app,相关技术一体化(很完整,小编实践过的一这套uniapp相关技术)

    目录 第一章.app/uniapp项目相关技术 1.1 制作app自定义基座 1.1.1 项目创建 1.1.2 制作手机自定义基座

  3. mysql独立开发_独立开发一个 App 是一种怎样的体验?

    我要回答一下这样孤单的问题.哈哈哈. 我做过2个已经上线的APP. 第一个<仅仅电影>(已经下线了): 那时候年轻,想做一个独立的电影影单类的APP,推荐很多好看电影.然后想法立了就开始做 ...

  4. MATLAB Appdesigner开发独立桌面App全流程(二):以实时时间显示为例介绍Timer和StartupFcn的使用以及try catch抛出错误

    1.以实时显示时间为例简单介绍Timer的使用 根据目前所了解到的资料,MATLAB调用多线程较为麻烦,并且类似parfor等语法只适用于大规模运算,而不适合两个独立的.需要并行的任务.这时,我们就需 ...

  5. MATLAB Appdesigner开发独立桌面App用户如何安装与卸载

    利用MATLAB Appdesigner开发独立桌面App发给用户后,用户如何安装与卸载? 1.解压,将app压缩包解压后如下图所示 2.进入for_redistribution文件夹,点击MyApp ...

  6. 不要再随便说:我可以独立开发iOS App了

    很多拥有半年或者一年左右iOS开发工作经验的童鞋,平常在公司项目中对于基础的控件也能够随意把玩了,更有甚者还能自己封装及使用第三方库及一些提高效率的开发工具.慢慢地,可能会陷入一个误区:我有能力独立开 ...

  7. 我的uni框架APP(共享充电投放)独立开发日记 第一天

    我的uni框架APP(共享充电投放)独立开发日记 项目说明及介绍 练习阶段 APP开发第一天(设计和功能归类) 首页 物品 我的 项目说明及介绍 在前不久写完了第一个微信小程序之后,开始补课VUE,就 ...

  8. 我的uni框架APP(共享充电投放)独立开发日记 第二天

    我的uni框架APP(共享充电投放)独立开发日记 APP开发第二天(UI实现到创作) Tap_Bar: 首页 充电榜 邀请赚钱 项目说明 物品 我的 会员资料 下载APP 我的收益 我要提现 我的下级 ...

  9. Python开发一个APP居然如此之简单?老王自学三月就独立开发了!

    很久很久之前我就想开发一款app玩一下,不过因为不是很熟悉Java,也没有开发app的经验,因此一直没去弄.最近学了python就想用它开发一个app,google查找之后发现路子还是很多的,现在也有 ...

  10. 【软件创新实验室2021年寒假集训】Java后端开发漫谈及感悟分享

    系列文章目录 [软件创新实验室2021年寒假集训]汇总篇 20级Java培训 第一天:[软件创新实验室2021年寒假集训]Java技术培训--Java前置知识学习 第二天:Java基础(一) 第三天: ...

最新文章

  1. 网易盖楼回复的简易实现
  2. java 动态编译源代码
  3. 安川g7接线端子图_ABB、KUKA、FANUC、安川四大家族机器人安全回路小结
  4. Eclipse中执行Ant脚本出现Could not find the main class的问题及解
  5. 科普文:为什么不能在服务器上 npm install ? #30
  6. linux基础练习,Linux基础指令练习
  7. MP3免费音频文件下载
  8. 使用poedit汉化wordpress的插件
  9. fit对数正态分布matlab,拟合对数正态分布使用Scipy与Matlab
  10. 基于MySQL的京东用户行为分析
  11. 电脑检测工具eve_检测电脑硬件的软件(系统硬件检测工具)
  12. TOP100summit2017:微博如何做到1小时增加一千台服务器应对鹿晗恋情带来的流量暴增
  13. 性格类型之ISFP艺术家型——有爱心的艺术工作者
  14. 解决Ubuntu 20.04挂载NTFS分区不能写入(只读权限)的问题
  15. Maven-3.maven知识点
  16. 【Android开发经验】LayoutInflater—— 你可能对它并不了解甚至错误使用
  17. core dump 1
  18. 2020(第十六届)北京汽车展览会-以Tesla为参考标的分析
  19. 易语言html5播放器问题,易语言媒体播放器 - 已处理问题存放区 - 中国红客联盟 - Powered by HUC...
  20. JZOJ4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰

热门文章

  1. 使用webdriver获取网页token值
  2. 2.8.5Django --14.4Auth
  3. 南邮数据结构实验3.5:飞机换乘最短距离(Dijkstra单源最短路径)
  4. [转]想要个英文名? [男生篇]
  5. Python从入门到精通 学习教程
  6. MATLAB直流电机机械特性仿真——上课笔记
  7. ProE\Creo实用技巧-族表实例通过关系式、Program实现自动切换
  8. matlab提取温度,科学网—站点气温数据的积温计算(含Matlab程序实现) - 朱永超的博文...
  9. 长连接,WebSocket和粘性会话
  10. java秘籍,精简。