一个简单的安卓平台下的备忘录
背景
之前已经介绍了不少的控件(TextView和ListView等等)以及开发中最常见的组件(Activity)(Service的权重在我心中没有Activity重要,因为曾经尝试过没有Activity启动App,这是不可行的,看底层代码就知道启动过程是从Activity开始的)。
基础的知识已经知道了,难免想要上手一个项目,这里开发一个记录备忘录的小项目。该项目,可以说“麻雀虽小,五脏俱全”,除了数据库,网络这方面没有涉及,其他都有应用。由于这是一个纯本地存储的项目,备忘录内容云同步未涉及。(后续考虑添加)
创建一个项目
首先,创建一个新项目(Memo,包名任意),一路默认(安卓入门系列01介绍了)。Gradle编译完成后,尝试虚拟机运行。接着,我们修改基础配置。可以看到默认的这个界面效果,很难受的就是这个顶部的bar,不需要,我需要自定义的topbar,所以去掉它。(前面博客提到两种方法,这里修改parent)
代码的封装
在我个人的开发经历中,对封装的要求比较高,我不喜欢过多代码的堆砌,尤其是这类业务代码,所以函数或者类,接口的封装在开发过程中是不可或缺的。
首先,写一个常用的topbar,后面多次使用。 这个bar使用的是design包里面的AppBarLayout布局和Toolbar控件,需要添加依赖。
然后,在activity_main.xml添加如下,效果显著。
<FrameLayout
adroid:layout_width="match_parent"
adroid:layout_height="46dp">
<include layout="@layout/topbar"></include>
</FrameLayout>
具体编码实现界面效果和业务逻辑
这部分本来是想要详细讲述布局和代码实现,包括本地存储的一些基础操作,然而考虑到个人时间和精力,要将即使是这样的一个小项目用文字描述细致,对我而言有些太难了,所以后续的内容只能大致提一下思路,具体的可以到GitHub下载我的源码看。(有详细备注)
- 开发方法
- 采用敏捷开发策略
- 采用快速原型开发方式(优先完成基础功能,再进一步优化)
- 配置文件
- 第三方依赖添加
- ‘com.getbase:floatingactionbutton:1.9.0’
- 浮动窗口
- ‘com.quinny898.library.persistentsearch:library:1.1.0-SNAPSHOT’
- 搜索框
- ‘com.baoyz.swipemenulistview:library:1.3.0’
- 不完善之处
- 本app的开发参考几个开源项目的理念和代码设计
- 首页每一项之间预先构想的排序,最后由于时间没有实现
- 本app界面太过平淡
- 改进之处
- 国内的很多记事本类型App是没有内部搜索,一般是集成到桌面的搜索功能里,而很多用户不清楚这个设定或者不喜欢,我把这个功能设计在备忘录主页
补充说明
项目的GitHub仓库地址如下,欢迎star或者fork。下面几张图,是编译完成的安卓应用实际的运行截图。