MVPArms icon indicating copy to clipboard operation
MVPArms copied to clipboard

JessYan: 意见收集 😘,请进 QQ 群: 455850365

Open JessYanCoding opened this issue 8 years ago • 89 comments
trafficstars

  • 关于常见的 issues这里
  • 有什么问题可以直接进 QQ-Group 咨询

如果您对 MVPArmsJessYan 有什么好的建议, 都可以在下面留言以及讨论

JessYanCoding avatar Feb 14 '17 01:02 JessYanCoding

谢谢!整合了好多新兴技术,加法做了好多,什么时候做做减法呢?

JessYan 回复: Arms v2.5.0 版本开始, 已经在拆分 Arms 中非必须的库, 并且通过扩展库的方式,保证对旧版本的完美兼容,现在已经拆分了 support-designAndroidEventBusGlideAndroidAutoLayout 等库,这样的好处是使框架使用者可以自由的选择某种类型的三方库,还可以减轻 Arms 的体积,后面还将继续对 Arms 进行拆分,让 Arms 的扩展性更强,体积更轻,新增的功能或库,也将采用 接口 + 扩展库 的方式进行集成

GitHubAFeng avatar Feb 16 '17 07:02 GitHubAFeng

@JessYanCoding 牛逼的不要不要的。看了那么多RxJava、MVP、Retrofit等等的文章和例子,如今终于可以整合了!感谢无私分享,正在学习,准备使用本框架重构旧项目。

xiaobailong24 avatar Mar 17 '17 07:03 xiaobailong24

@xiaobailong24 好的,可以加qq群,有问题一起交流

JessYanCoding avatar Mar 17 '17 07:03 JessYanCoding

@JessYanCoding 好的,周末正好研究一下!

xiaobailong24 avatar Mar 17 '17 07:03 xiaobailong24

@JessYanCoding 建议 BaseApplication extends MultiDexApplication

ReepicheepRed avatar Jun 23 '17 09:06 ReepicheepRed

@ReepicheepRed BaseApplication 通过 AppDelegate 来做一些框架需要的操作,就是为了让开发者不是必须要继承 BaseApplication, AppDelegate 可以让开发者很方便的自定义一些可以满足自己需求的 Application,并且也不会影响到框架的运行,你的想法是站在 App 开发的角度, 需要框架很方便的实现自己的需求, 我站在框架设计的角度,要满足每个开发者每个 App 的需求是不可能做到的,所以我要做的是提供扩展的方式,让开发者能根据自己的需求自己去扩展,而不是一味的满足每个人的需求,这个是恶性循环,你需要 MultiDexApplication ,其他人可能并不需要,人家为什么要为了方便你的需求,而去被迫继承一个自己并不需要的 Application ,这个对于别人来说是不划算的事

JessYanCoding avatar Jun 23 '17 09:06 JessYanCoding

@ReepicheepRed 为了让开发者更方便的使用 MultiDex ,以及对一些框架的初始化,现提供 attachBaseContext 扩展方式

JessYanCoding avatar Jul 07 '17 08:07 JessYanCoding

厉害,很好,终于找到组织了

bopo avatar Jul 12 '17 01:07 bopo

群号是啥?加一下 一起交流

JanusKun avatar Aug 09 '17 03:08 JanusKun

@JanusKun 老哥,第一楼就有群号

JessYanCoding avatar Aug 09 '17 03:08 JessYanCoding

真的很棒!思想很厉害,向作者学习,多谢开源

fightcoder avatar Aug 09 '17 07:08 fightcoder

首先非常感谢大神的无私奉献!我是一个小白,还是有些地方不懂,如果大神有时间能出个视频讲解一下就好了!

2286033294 avatar Sep 07 '17 06:09 2286033294

有木有相对简单的mvp模式demo,这个看着有些蒙蔽,熟悉点的只有rxjava,retrofit..。。看引用了很多的框架,,要一个一个学习再学习你在这个哇

zhou9527 avatar Sep 15 '17 08:09 zhou9527

@zhou9527 不管是 MVP ,还是 RxJava ,以及 RetrofitDagger , Github 简单的 Demo 真的太多,一搜一大堆,你就自己找吧,就是因为 Github 上大部分的此类型 AppDemo ,写的是在太简单了,所以我才写的这个框架属于进阶版,这个框架自动屏蔽没入门的朋友,因为你没入门根本看不懂,更说明你可成长的空间非常大,这时候你应该感到焦虑而更努力的自己主动去学,这些技术已经不算最火的技术了,我 16年 初就把这个框架写出来了,大部分人都会,大部分人都会的东西,而你不会,那无论面试还是工作肯定会有些许劣势,但现在这个时候才去学也不晚,你也有好处,那就是现在这方面的资料真的太多了,坑被踩完了,学习起来非常快,所以别问我了,直接花时间去硬啃

JessYanCoding avatar Sep 15 '17 09:09 JessYanCoding

AndroidAutoLayout 不维护了,之后会选择移除吗

hxlailfh1314 avatar Sep 21 '17 09:09 hxlailfh1314

@hxlailfh1314 现在框架不是强制使用 AndroidAutoLayout ,不声明 Androidmanifest 中的 meta,就不会使用, AndroidAutoLayout 虽然不维护了,但是并不代表他没有价值,依然有很多项目在使用它,带来了很多便利,作为使用两年的老用户,也并没遇到什么大的 Bug ,在某些使用场景使用起来非常愉快,所以暂时不会移除,以后看情况再做打算,如果你不喜欢用,可以不声明 meta

JessYanCoding avatar Sep 21 '17 09:09 JessYanCoding

框架上少引用了“com.squareup.retrofit2:converter-scalars:2.3.0” 所以不能支持返回参数是 String 类型。 不知道你这边 是否考虑加上这个。

hxlailfh1314 avatar Oct 17 '17 07:10 hxlailfh1314

@hxlailfh1314 框架已经提供了 RetrofitOkhttp 扩展参数的方式, 你自己引用, 自己使用就好了, 框架只需要让开发者能够按需扩展自己的需求, 而不需要自己去满足所有人的需求, 这就是框架作者和 App 开发者思想上最大的差别

JessYanCoding avatar Oct 17 '17 07:10 JessYanCoding

想问个问题哦,发现MVPArms更新迭代蛮快的,但是好像没有向下兼容,当依赖的新版本的时候,会造成很多兼容性问题。有的时候想更新版本,又怕更新出问题

yeyueduxing avatar Nov 01 '17 03:11 yeyueduxing

@yeyueduxing 集成化框架和其他功能性框架不一样, 功能性框架只是调用某些 API, 所以他可以很好的屏蔽一些风险, 但是集成化框架要复杂的多, 涉及到的方面远不是简单的调用几个 API 这么简单, 发布新版本时我也是尽量做到不影响旧版本, 在一些做了更改会影响到旧版本更新的地方, 我也在 更新日志 给出了详细的批注以及减小升级成本的方式, 我公司一个十几个模块几百个页面的组件化项目是直接远程依赖 Arms 的, 我每次也都是第一时间升级最新版本, 所以我心里是清楚升级最新版本所花费的成本的, 基本上我这个几百个页面的大项目升级的时间都是在半个小时以内, 大多都是几分钟就搞定, 所以更新你大可不必太过担心, 我这个项目十几个模块几百个页面, 如果更新成本太大我这个项目也是受影响最严重的, 我不可能自己坑自己的, 后面的更新也都会很稳定的

JessYanCoding avatar Nov 01 '17 03:11 JessYanCoding

嗯,好的,谢谢啊

yeyueduxing avatar Nov 01 '17 05:11 yeyueduxing

@JessYanCoding 你好,关于UserActivity等所有的activity和fragment初始化有个建议:dagger2其实有新的方式来规避,(可以让基类实现baseactivity集成HasActivityInjector),这样一劳永逸!setupActivityComponent这个方法都可以不用再多次初始化,甚至都没必要了。后续所有集成基类的activity或者fragment,都已经有对应HasActivityInjector,HasSupportfragmentInjector的方法了。然hou维护一个androidinjection(是为了activity和fragment oncreate的时候吧它们对应的inject进来!)望采纳。

kinzirva avatar Nov 26 '17 09:11 kinzirva

@kinzirva 谢谢你的建议, 关于 Dagger2 的新特性我也很久没关注了, 一直在忙别的东西, 第二个原因也是因为怕框架使用新的 特性 会影响之前的用户, 我后面会仔细研究下 Dagger2 以及 Dagger.Android 等新功能, 后续会推出

JessYanCoding avatar Nov 26 '17 09:11 JessYanCoding

@JessYanCoding 有个小建议哈,其实咱后面,也可以来一版kotlin的项目。我个人现在对app团队要求就是新的业务场景使用kotlin来实现。毕竟是个趋势了。(搞个实验室项目,主要收集和拓展新的框架或者语言特性,像微信 Tinker和360 Repugin那样。研发人员参与进来有贡献就ok)

kinzirva avatar Nov 27 '17 01:11 kinzirva

@kinzirva 你这个建议也是可以的, 但是这个框架, 目前来说基本上是我一个人来维护和迭代升级, 你看我每个月的提交记录也知道我从来就没休息过, 一直在完成自己对这个项目规划的一些目标, 所以在完成现有的一些规划之前, 实在抽不出时间搞其他实验版, 随着项目用户的增长, 我的压力也越来越大, 毕竟没有一个完美的框架可以应对所有用户的需求, 只有不断的用时间去做优化以及对一些东西做取舍框架才能更完美, 但这个推进的速度也许会很慢, 毕竟一个人的力量比不了那些专业团队

JessYanCoding avatar Nov 27 '17 02:11 JessYanCoding

在FragmentDelegate类中,有直接插入这个initData方法用于展示数据和网络请求 @Override public void onActivityCreate(Bundle savedInstanceState) { iFragment.initData(savedInstanceState); } 但是,如果Fragment想使用懒加载,在setUserVisibleHint中进行判断的话,就只能重新写个网络请求和数据加载的方法了。所以这个方法是不是可以优化下呢

yeyueduxing avatar Dec 08 '17 02:12 yeyueduxing

你不实现 initData(), 在 setUserVisibleHint() 中调用自己写的方法进行网络请求就可以了, 预设的方法只是为了规范, 并不强制你在当前的需求中一定会用到

JessYanCoding avatar Dec 08 '17 02:12 JessYanCoding

@yeyueduxing 可以参考下 https://github.com/xiaobailong24/MVVMArms/blob/master/arms/src/main/java/me/xiaobailong24/mvvmarms/base/BaseFragment.java

xiaobailong24 avatar Dec 08 '17 02:12 xiaobailong24

也知道这个,就是Activity中使用initData,Fragment使用其他的,强迫症感觉不对啊(。・`ω´・)。也没啥事就是了,谢谢了啊

yeyueduxing avatar Dec 08 '17 02:12 yeyueduxing

@xiaobailong24 嗯,你这样写也考虑过,但就是想直接引用MVPArms,在不修改底层的情况下扩展

yeyueduxing avatar Dec 08 '17 02:12 yeyueduxing