美文网首页FlutterFlutter圈子Android开发经验谈
一个在线的Jetpack模版项目生成工具

一个在线的Jetpack模版项目生成工具

作者: i校长 | 来源:发表于2020-03-21 15:19 被阅读0次

    引言

    不知道大家用过Spring Initializr没有,这个是鼎鼎大名的Spring boot 在线生成工具,一个完美的生态,给开发者提供太多的便利,默默付出着,可为什么没有一个Android项目的在线生成工具呢?大家都不需要吗,我并不这么想,大家都知道Jetpack提供了一套Android应用开发的各种组件,甚是方便,而且官方还专门开源了这个architecture-components-samples,里面有大量的模版的项目,不光是官方,有很多的作者也都针对MVVM做了开源,我本人也做过MVP的开源项目,都是基于实际开发经验搭建起来的。
    知名的MVVM:

    • MVVM-Architecture
    • Jetpack-MVVM-Best-Practice
    • MVVMHabit
      等等吧,但是对于这些项目,你有没有一种困惑,如果我们用他们总结好的经验去开发新的项目,是不是面临修改包名,添加一些自己喜欢的框架依赖等等需求,但这怎么做的到呢?这就是我接下来要做的事情,做一个在线Android项目生成工具

    Jetpack在线生成工具

    为什么叫Jetpack生成工具呢,为什么?你自己体会,哈哈,这不是重点,重点是我们要做出什么样子,请看设计图,确切说是实现图,因为已经部署了,请点击标题查看




    三张图,看清楚了吗?其实这个在线工具主要有如下功能
    • 自定义包名
    • 自定义项目名
    • 选择开发语言
    • 选择要集成的框架,集成框架分为默认依赖,就是在build.gradle中添加基础依赖,添加用例的话就是添加基础的封住+demo示例。
    • MVVM架构模版选择,后期集成更多的MVVM模版进来提供给大家自定义项目
      现在看来是不是有点意思了,但这些功能如何实现呢?下面我讲讲我的实现思路

    实现

    基本的构成 = 网站 + 服务
    网站我选择用flutter实现,因为flutter的便利已经让我爱不释手,一套代码运行android、ios、web,很不错
    服务我选择nodejs,因为nodejs最适合做这种小工具,开发简单,运行稳定。

    flutter 实现

    已经 开源至 github 我做的网站整套代码都在这里
    ibaozi
    请看如图中的代码实现

    jetpack包

    nodejs 实现

    跟大家分享下经验
    其实最大的难点就是,包名的替换,关键字的替换,网上搜了很多,找到如下几个特别火的,可以任选其一实现
    https://yeoman.io/
    https://github.com/wycats/handlebars.js
    参考项目:
    https://github.com/dekzitfz/generator-code-base-android
    最关键的代码实现

       this.fs.copyTpl(
              this.templatePath('settings.gradle'),
              this.destinationPath(rootDir + '/settings.gradle'),
              {app_name: this.answers.name.replace(/\s/g, '')}
            );
    

    该项目就是通过这段代码,复制模版代码,然后替换里面定义好的app_name,然后将替换好的代码粘贴到另一个路径里。

    todo

    未来会加入更多的模版代码进来,造福于你们。也欢迎想合作的私信我,我们聊下合作模式。

    服务部署中,第一版测试版马上就要跟您见面了,眨眨眼再刷新网站试试看😄

    相关文章

      网友评论

        本文标题:一个在线的Jetpack模版项目生成工具

        本文链接:https://www.haomeiwen.com/subject/rybyyhtx.html