在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:jiangshide/framework开源软件地址:https://github.com/jiangshide/framework开源编程语言:Java 99.5%开源软件介绍:Technology Stack
Base framework
项目目的打造最简单与最全的移动客户端基础框架,兼容所有原生接口,让开发者使用最少的代码去最大化的实现项目需求,应变各种紧急项目快速迭代输出,让开发者只需要专注于业务的实现,客户端不限于设计模式,欢迎start 项目架构基于kotlin应用集成项目案例1.UI模块(通用导航栏,通用加载刷新,通用对话实现,二维码相关,以及基础用到的view...)1.1 通用导航栏1.1.1 底部通用导航栏实现:可滑动 public class MainActivity extends BaseActivity {
@Override
protected void initView(Bundle savedInstanceState) {
setView(mNavigationBar.initView(getSupportFragmentManager(), new HomeFragment(), new CircleFragment(), new PulishFragment(), new ShopFragment(), new MineFragment()).initData(new int[]{R.mipmap.tab_home, R.mipmap.tab_circle, R.mipmap.ic_launcher_round, R.mipmap.tab_shop, R.mipmap.tab_mine}, new int[]{R.mipmap.tab_home_selected, R.mipmap.tab_circle_selected, R.mipmap.tab_publish_selected, R.mipmap.tab_shop_selected, R.mipmap.tab_mine_selected}, getResArrStr(R.array.tab_main_title), R.color.font_gray, R.color.colorPrimary)
.setBgColor(getResColor(R.color.app_bg)), this);
}
@Override
protected void processLogic(Bundle savedInstanceState) {
mNavigationBar.showView(mTabIndex);
}
} 1.1.2 底部通用导航栏实现:不可滑动 public class MainActivity extends BaseActivity {
@Override
protected void initView(Bundle savedInstanceState) {
setView(mNavigationBar.initView(new HomeFragment(), new CircleFragment(), new PulishFragment(), new ShopFragment(), new MineFragment()).initData(mTabIndex, new int[]{R.mipmap.tab_home, R.mipmap.tab_circle, R.mipmap.ic_launcher_round, R.mipmap.tab_shop, R.mipmap.tab_mine}, new int[]{R.mipmap.tab_home_selected, R.mipmap.tab_circle_selected, R.mipmap.tab_publish_selected, R.mipmap.tab_shop_selected, R.mipmap.tab_mine_selected}, getResArrStr(R.array.tab_main_title), R.color.font_gray, R.color.colorPrimary,this)
.setBgColor(getResColor(R.color.app_bg)), this);
}
@Override
protected void processLogic(Bundle savedInstanceState) {
changeTab(mTabIndex);
}
} 1.2 通用加载刷新控制:只需要在设置view是添加一个bool等于true即可,如果不想有刷新就置为false setView(R.layout.home, this,true); 1.3 通用对话框实现:在Activity与Fragment中调用1.3.1 直接传入字符串,有取消按钮 loading("the dialog!"); 1.3.2 直接传入字符串,无取消按钮 loading("the dialog!").setOnlySure(); 1.3.2 自己定义View实现:可以传res与view loading(R.layout.default_dialog, new DialogView.DialogViewListener() {
@Override
public void onView(View view) {
TextView dialogContent = view.findViewById(R.id.dialogContent);
CusButton dialogCancel = view.findViewById(R.id.dialogCancel);
CusButton dialogSure = view.findViewById(R.id.dialogSure);
//...
}
}); 1.4. 附加Toast实现1.4.1 字符串 CusToast.fixTxt(getActivity(), "the toast!"); 1.4.1 自定义View:res与view CusToast.fixView(getActivity(), R.layout.toast); 1.4 二维码实现1.5 通用手势密码实现1.6 通用滚轮实现1.7 高级按钮操作等2.网络模块3.消息模块4.事件分发模块5.安全控制与认证模块6.数据适配模块7.升级模块(普通更新,热更新)7.1 普通同更新~默认:只需要一段代码即可
7.2 普通更新~截取更新核查结果 new UpdateView(this).init(new Callback() {
@Override
public void onSuccess(NetInfo info) throws IOException {
}
@Override
public void onFailure(NetInfo info) throws IOException {
}
}); 7.3 普通更新~截取更新文件下载请求过程 new UpdateView(this).init().setProgressListener(new ProgressCallback(){
@Override
public void onProgressMain(int percent, long bytesWritten, long contentLength, boolean done) {
super.onProgressMain(percent, bytesWritten, contentLength, done);
}
@Override
public void onResponseMain(String filePath, NetInfo info) {
super.onResponseMain(filePath, info);
}
}); 7.4 普通更新~同时截取更新核查与文件下载:自定义场景与界面展示 new UpdateView(this).init(new Callback() {
@Override
public void onSuccess(NetInfo info) throws IOException {
}
@Override
public void onFailure(NetInfo info) throws IOException {
}
}).setProgressListener(new ProgressCallback(){
@Override
public void onProgressMain(int percent, long bytesWritten, long contentLength, boolean done) {
super.onProgressMain(percent, bytesWritten, contentLength, done);
}
@Override
public void onResponseMain(String filePath, NetInfo info) {
super.onResponseMain(filePath, info);
}
}); 8.错误日志模块(java,native)9.HTML5交互模块10.分享模块项目集成(非常优雅的集成,最大化灵活控制,只需要几个步骤)1.在你的项目工程根目录所在的build.gradle中添加:maven { url "https://jitpack.io" } allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }//当前需要添加的
}
} 2.在你项目工程app所在目录下build.gradle中添加:implementation 'com.github.jiangshide:framework:1.0.7' dependencies {
implementation 'com.github.jiangshide:framework:1.0.7'//当前需要添加的
} 3.拷贝demo中gradle.properties文件覆盖自己项目中的gradle.properties,需要注意:3.1 如果打release包的话需要替换成自己的密钥文件与相关信息: KEY_FILE=demo
KEY_ALIAS=jsd
KEY_PASSWORD=jsddemo
STORE_PASSWORD=jsddemo 3.2 网络主机替换:需要替换成自己的IP或域名 #the net config
PRODUCTION=http://10.20.6.50:8091
PREPRODUCTION=http://10.20.6.50:8091
TEST=http://10.20.6.50:8091
API=/api/zdb/
UPDATE=update 3.3 api协议配置,可替换成自己实际协议的名称 #BaseData protocol
CODE=code
SUCCESS=success
TIME=date
MSG=msg 3.4 可修改网络默认配置the http params HTTP_CONNECT_TIME=30
HTTP_READ_TIME=30
HTTP_WRITE_TIME=30
HTTP_MAX_CACHE_SIZE=10 * 1024 * 1024
##### the four type:1~FORCE_NETWORK;2~FORCE_CACHE;3~NETWORK_THEN_CACHE;4~CACHE_THEN_NETWORK
HTTP_CACHE_TYPE=4
HTTP_IS_GZIP=true
HTTP_SHOW_LIFECYCLE_LOG=true 服务宗旨:一.面向中小企业及个人:1.提供专业的技术支持2.可做高度定制化需求#项目案例: 友情合作:
2023-10-27 2022-08-15 2022-08-17 2022-09-23 2022-08-13 |
请发表评论