开发者社区> i校长> 正文

神奇的Android Jetpack 项目模版代码之线上生成

简介: 神奇的Android Jetpack 项目模版代码之线上生成
+关注继续查看

引言


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

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

Jetpack在线生成工具


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

image.png

image.png

image.png

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

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

实现


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

flutter 实现


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

image.png

nodejs 实现


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

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

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

todo


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

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


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android JetPack 之 Navigation
Android JetPack 之 Navigation
41 0
Android Jetpack Compose——Paging3
本Demo采用Hilt+Retrofit+Paging3完成,主要为了演示paging3分页功能的使用
70 0
Android Jetpack 浅析Hilt依赖注入
首先,某个类的成员变量称为依赖,如若此变量想要实例化引用其类的方法,可以通过构造函数传参或者通过某个方法获取对象,此等通过外部方法获取对象实例的称为依赖注入;而依赖注入又可以简单分为`手动注入`和`自动注入`两种方式;`Hilt`就是基于Dagger进行`场景化优化`的一个依赖注入库,Hilt是Google专门为Android平台打造的一个依赖注入库,在使用上极大程度进行啦简化(与dagger相比)
50 0
Android Jetpack Compose——一个简单的笔记APP
此项目功能较为简单,基本就是使用Room数据库实现CRUD,但是此项目实现了一个干净的架构,项目使用MVVM架构进行设计,每一个模块的职责划分清晰,功能明确,没有冗余的代码。其中涉及了Hilt依赖注入,对于数据库的的操作,使用接口实现类进行获取,然后将实现类的CRUD操作封装在一个数据类中,最后通过Hilt自动注入依赖,供外部调用。
80 0
Android Jetpack开庭
Android Jetpack开庭
34 0
安卓Jetpack组件Room数据库框架的使用(附Demo)
安卓Jetpack组件Room数据库框架的使用(附Demo)
98 0
安卓Jetpack进阶——map与switchMap(二)
第一篇我们将Transformations的map()方法拿来救场,为我们的User类保护了用户隐私。这篇我们就来看看switchMap(),这个方法使用场景非常固定,但可能比map()方法更加常用。
49 0
安卓Jetpack狠活——Lifecycles与LiveData(二)
书接上回,我们看过了LiveData的使用,自然也就明白了这玩意虽然好,但不能处处到位,因为需要你自己去post后才能得到,那如何不用在子线程一直苦苦等待就能给人一种在实时更新的感觉呢?那自然要用到我们的狠活——Lifecycle。
25 0
安卓Jetpack狠活——Lifecycles与LiveData(一)
今天在工作时,测试突然提了一个Bug给我,要求我将APP中某活动页面的UI界面要根据用户在由此页面跳转的下个页面操作,在返回时要实时更新。
28 0
大放光彩的安卓Jetpack组件-ViewModel(终)
前面我们已经说过Jetpack中ViewModel的作用、用法以及使用要点,但还缺少在Activity中的实例展示,所以本节我们将结合结果展示与代码进行解读,希望能更好的展示出ViewModel的风采。
30 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Android组件化实现
立即下载
蚂蚁聚宝Android秒级编译—— Freeline
立即下载
Android插件化:从入门到放弃
立即下载