13

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

 4 years ago
source link: https://www.jianshu.com/p/19f97654c451?
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

22020.03.21 15:19:10字数 873阅读 1,868

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

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

Jetpack在线生成工具

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

webp

三张图,看清楚了吗?其实这个在线工具主要有如下功能

  • 自定义包名
  • 自定义项目名
  • 选择开发语言
  • 选择要集成的框架,集成框架分为默认依赖,就是在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,然后将替换好的代码粘贴到另一个路径里。

网站在重构中,为了功能的完整性和稳定性,未来会继续更新,感谢您的支持,多多关注Jetpcak.net.cn,未来会呈现一个完整的网站给您,感谢🙏


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK