玩了几天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} {
}
只能改这个有个卵用,直到看到了一个教程。上套餐:
教程:(如下)
看完之后的收获是:可以自定义属性。
但是教程有点简单,太不灵活了,模版太死了。满足不了自己的需求。,还需要深入研究下
发现如下:模版使用的语言是 Velocity
Apache Velocity template language is used
velocity.apache.org/engine/deve…
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…
理论上,参考上篇的配置导入导出只要写一次就好了(未尝试),没有的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。