Android 模版化编程系列(二)

·  阅读 2047
Android 模版化编程系列(二)

Android模版化编程系列(一)

玩了几天pokemon go,博客都忘记写了。
今天来介绍第二种 android Templates – Velocity。

头文件

新建一个class的时候,头部都有一个时间和作者,配置的修改地点,
NEW -> Edit File Templates -> include (#parse(“File Header.java”)** new 一个class的时候,被当作宏引入)
具体可以看自带的class模版

头文件

/**
 * Created by ll on ${DATE}.
 */复制代码

class模版


#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
**#parse("File Header.java")**
public class ${NAME} {
}复制代码

只能改这个有个卵用,直到看到了一个教程。上套餐:

教程:(如下)

Android Template(模板) 编写(一)

blog.csdn.net/zhaodai11/a…

看完之后的收获是:可以自定义属性。

但是教程有点简单,太不灵活了,模版太死了。满足不了自己的需求。,还需要深入研究下
发现如下:模版使用的语言是 Velocity

Apache Velocity template language is used

Apache Velocity 官方地址

velocity.apache.org/engine/deve…

Apache Velocity 中文文档

wizardforcel.gitbooks.io/velocity-do…

Velocity 用的比较多的地方可能是在web 方面吧。下面用个实际案例来扩展一下在android 开发中的使用吧。

实际项目中,很多文件file (数据请求,数据库操作等)整体(结构)上基本一样。特别是在mvp,mvvm盛行的时候。一部分人会选择T-MVP(整体框架上),一部分人继续手写(copy),还有一种选择,就是模板化生产。
这里写图片描述
例子:编写数据请求模版。根据自己的实际情况,编写2个模版。一种是带一个参数或者不带参数的,另一种是带多个参数的。

Velocity 条件判断

具体需求:需要而外传1个参数,或者不需要传参。
参考模版上的代码很快就可以看到if 语句

复制代码

只传接口编号,不传参数的。无参

QtConstants.QT_1001  = 1001复制代码

去年的项目,今年采用mvp模式,这块不需要了,这里只是当做一个例子

带1个参数的

带一个参数的

最后的模版地址如下:(gist访问抽筋,有空补)
github.com/UC10D/templ…

if模版

理论上,参考上篇的配置导入导出只要写一次就好了(未尝试),没有的copy一份添加。

Velocity 循环

多个参数

这点自己尝试了好久,都不行。最后问了个头像和自己一样的大神(机缘巧合)。。。知道了Velocity 的split 方法。看名字就感觉很熟悉。和java 中String 的 split方法一样。

重要代码


 

 
 #foreach( $i in $Dates.split(",") )

 private String  $i  ;

 #end

 
复制代码

url拼接,本身就是String的拼接,所以类型全是String。

代码之后上传,顺便做张gif

总结

1、整体的架构要设计好,没用过mvp,或者mvvm的,抓紧。最大化公约数,相同作用的文件架构越相似越好。 接口请求,本地数据库操作,mvp 中的部分模块都可以考虑。

2、目前感觉只适用于java单一文件,最好是解耦合,不要用在act + xml。 xml 天天改。。。。

3、自己的模版,或者公司的模版,最好统一,update。算是一种文化,经验的积累,想让老年人的开发效率超过小年轻(是我是我是我),还是要耍点手段的。。。。吹个牛逼,未来的代码模版化,以后可以通过简单配置就能开发出一个功能。到时候就是拖拽功能集成app了。未来的编程模式。

4、有好坑的可以联系我。不然要被拉去做服务端了。。。

爱他就让他学android,恨他也让他学android。

分类:
Android
标签:
收藏成功!
已添加到「」, 点击更改