心·迹alpha阶段 代码结构及技术难点简介

我们的产品是安卓端app,所以目前主要就是用Android Studio来进行代码开发。

Android Studio的项目的结构还是比较清晰的,如下图,主要就是java文件夹内的代码部分(.java)以及res文件夹内的布局部分 (.xml)。

一、Java部分

(一)数据库部分

这一部分主要是数据库方提供给UI小组的一系列需要用到并存储到数据库中的类。

UI小组可以不管数据库的内部逻辑,直接构造对象并用其中的方法,如下图。

(二)UI部分

这一部分主要就是前端UI的一些逻辑(主要是各个Activity)以及另外需要用到的其他一些类(如Adapter等),如下图。

      可以看到,虽然我们的app比较简单,但是实际上实现起来代码量确实不小。其中比较难及复杂的部分在后面部分会介绍。

二、布局部分

这部分基本上是和UI部分的代码对应,每一个界面以及其中的一些部件都需要布局文件,如下图。

(一)图片素材

图片主要是在drawable文件夹内,主要就是一些菜单以及按钮上要用到的小图标,还有一些背景图片。

(二)xml文件

包括layout文件夹以及menu文件夹里的文件,如下图。

三、技术难点(部分)

说是技术难点其实就是开发过程中的一些感悟。

实际进行安装开发后,才会发现,那些看起来比较简单的功能,实现起来却并不简单,这里主要就选一两个来随便讲一讲。

首先,最复杂的一部分就是DiaryWriteActivity,从代码量(java部分目前1600行)上也能看出。

根据美工的建议,我们把这个界面改成了app的主界面。这样就带来了一系列比较麻烦的问题。

因为这个界面既要展示日记,还要能编辑日记、新建日记。不同的情况就会导致不同的布局设置,就需要在代码中对页面布局进行动态设置。

再就是从不同界面都能进入这个界面,如搜索结果、时间轴、日历等等,这些界面进入虽然本质上没有什么区别,但是一个问题就是如果我们要查看前后日记,我的理解应该就是比如搜索结果进入,查看的前后日记的那个list应该就是搜索结果的那个范围,这就需要根据进入的来源去进行一些相应的判断。

还有比如我们把前后按钮改成滑动,这个滑动看起来简单,实现起来也不是几行代码的事情,另外还要考虑到某些情况应该要禁止滑动相应等等。

还有就是一个返回的问题,从不同界面返回的话结果应该也不是完全一样,这就需要在onRestart()里再做一些处理。

其实上面说的这些也不是什么真正的“难点”,就是需要注意的地方非常多,一个地方少了个条件判断,就容易出现动不动闪退的结果,给用户带来不好的体验。

还有一个比较难的地方就是富文本,这个也是一直困扰我们小组同学的地方。一方面是存储上的问题,还有就是图片上的一些问题。比如出现来插入图片在有的手机上会闪退的情况。

除了上面说的这个DiaryWriteActivity,还有一些难的地方就是想实现的一些效果很难做到或者说良心的教程很难找到。比如现在日记界面滑动切换前后日记,只是相应滑动事件改变日记内容,但如果我是真正想实现卡片式有滑动的效果就不知从何下手。这也只是举个例子,还有就是比如我前两天才发现安卓自带圆形约束布局,我之前还傻傻地纯靠自己调间距来实现。

确实像我们这样从零开始接触安卓开发确实会遇到各种问题,时不时还掉进各种坑,感觉如果想真正说andriod开发有一定了解还任重而道远。

原文地址:https://www.cnblogs.com/USTC-CC/p/9259909.html

时间: 2024-10-24 07:04:23

心·迹alpha阶段 代码结构及技术难点简介的相关文章

心·迹 Alpha版本 成果汇报

目录 项目简介 成果概要 详细展示(多图预警) 问题与规划 1. 项目简介 心·迹 项目简介 2. 成果概要 一.作为日记app,能够完成日记的存储.查看.修改.删除等基本功能,并且支持富文本,即字体.行间距的修改,及粗体.斜体.下划线等功能.日记存储于本地数据库,数据库整体经过加密,保证了一定的安全性. 二.为了多样的用户体验,支持多种查看日记的方法:基本的显示方法为卡片式,通过左右滑动查看前后日记:可以在日历界面,通过点击某一天的日期,查看特定一天的日记:可以以时间轴方式,逆序查看已有日记.

个人作业4——alpha阶段个人总结(201521123003 董美凤)

一.个人总结 在alpha 结束之后, 每位同学写一篇个人博客, 总结自己的alpha 过程: 请用自我评价表:http://www.cnblogs.com/xinz/p/3852177.html 有比较才会有进步. 类别 具体技能和面试问题 现在的问答(大三) 语言 最拿手的计算机语言之一,代码量多少?(偏web前段) javascript,代码量大概一两千行吧 语言 最拿手的计算机语言之二,代码量多少?(偏后端) C语言,大概五六千行吧,学得还是比较浅显的. 软件实现 (阅读代码的能力,实现

Alpha阶段冲刺总结

Alpha阶段冲刺阶段总结 预期计划: 本阶段的预期计划是实现打地鼠游戏的基本功能,包括:游戏功能.难度调节功能.计时功能.计数记分功能.DIY设置功能.分数记录功能. 实际进展: 在经过三周的Alpha冲刺阶段的程序开发,主要的目标已经基本实现,如今只剩下两个功能还是处于研发状态.首先是DIY设置功能,这个功能方面我们遇到了一些技术问题,由于为了用户自定义的图片能与我们的素材不能相结合所以没有完成(功能类似于QQ中给用户的头像加配饰的功能).其次是分数记录功能,这个分数记录功能是需要将用户的头

男神女神配——alpha阶段总结

一.需求分析 虽然公共社交网络系统能够满足大多数高校校园用户在校园网络社交的需求,但是针对校园学习.工作和文化生活等方面的支持以及学校个性化需求方面却存在不足.利用电子校务平台的数据,设计了与真实校园环境和活动紧密结合,包含具有校园特色的应用组件和支持社交与协作构建的关系模型,并对校园用户的隐私提供适当保护的高校校园社交网络系统,对校园内的交流与协作提供了支持.随着Internet技术的发展,网站的作用显得越来越重要,各种各样的网站正成倍的迅速增长,面对各种网站,论坛的发展,人们开始更多的在网上

个人作业3—个人总结(Alpha阶段)

一.个人总结 在Alpha阶段,我们团队通过合作的方式,完成了之前觉得不大可能会完成的事(至少在我看来是这样的),大家其实之前的写代码能力都不太好,这期间大家都是边学边做,边做边学,最后跌跌撞撞的完成了这个查重系统.对于这次经历我有两点心得:第一:我切身的感受到了团队合作的重要性,只有找到好的合作伙伴,才能走得更远,在这里,请允许我秀一句英语啊--On your own you may go faster,Yet,only with companions can you go further,:

个人作业3--个人总结(Alpha阶段)

我们也算是经过了一次软件开发的人了,在Alpha阶段过程和结果都不太理想,我们在写事后诸葛亮会议的时候也感慨了很多,在小组会议的时候也讨论了很多,为了完成这次作业,我又翻了翻<构建之法>这本书.这本书给我的感觉还是和第一看的时候一样--与众不如.我们平时的那些专业课书少不了概念和代码,这本书让我很意外的没有看到什么代码示例 这时我已经产生了第一个问题:这本书是让我们学什么的?我通过这本书的学习之后我能充当好一个什么样的角色?是一个技术人员,还是一个leader(分配者)?开发一个软件,是什么更

Alpha阶段事后分析报告

Alpha阶段事后分析报告 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 网站能够采集专业化社区中的问答数据.高质量课程资源.专业技术文档中的内容,为使用者提供一体化的.精准的.高质量的搜索内容2. 是否有充足的时间来做计划? 计划得比较仓促3. 团队在计划阶段是如何解决同事们对于计划的不同意见的? 分析可行性以及向学长以及有经验的老前辈咨询 用户量, 用户对重要功能的接受程度和我们事先的预想一致么? 我们离目标更近了么? 不一致未达到预期

Alpha阶段-个人总结

一.五个问题 1.第三章中提到了"质量"和"按时交付"的问题,我想问,世事难料,当两者不能兼得的时候,我是保证质量却无法按时交付,还是水两下保证按时交付呢? 2.结对编程中,两者出现分歧,并且都只认同自己的看法,没有一方愿意妥协时,结对编程该如何继续进行?注意是没有人愿意妥协,都觉得自己的思路是正确的. 3.第四章中,结对编程是一对程序员肩并肩.平等的.互补的进行开发工作,在一台电脑上,面对一个显示器,使用同一个键盘,同一个鼠标工作.问题是,每个人编写代码的逻辑和思

团队作业7——alpha阶段之事后诸葛亮分析

事后诸葛亮分析 Alpha冲刺,很多同学经历了"Learning by doing"的学一门新的编程语言.学Git.学做一个完整的项目.但是,各组对于软件工程的"Learning by doing"的内涵了解的还不深刻,遇到的问题也不少.停一停,开个总结会,来次事后诸葛亮,为了下一步走的更好.请各小组在Deadline之前,召开事后诸葛亮会议,发布一篇事后分析报告. 1.总结的提纲内容,请参照课本15章内容或邹欣老师的博客: a. 项目管理之事后诸葛亮会议:http