- 博客(30)
- 资源 (6)
- 收藏
- 关注
原创 Android 使用modbus协议与可能遇到的问题解决一览
本篇文章主要演示android的串口通讯功能,其中需要使用serialport模块(下载链接),注意: 串口通讯需要root权限,需要将应用设置成‘android:sharedUserId=“android.uid.system”’即可,如果出现串口通讯无法访问设备,首先看串口名称与波特率是否一致,如果都一致看看是否是打开串口就失败了,如果出现无权限的情况,可能是Android版不支持与该设备通讯,可以考虑让嵌入式工程师使用。
2023-07-29 13:49:08
1564
原创 flutter 使用Bloc+PageView+BottomNavigationBar实现传统首页布局
本篇文章主要记录首页框架搭配bloc的使用示例,本篇文章将会使用上一篇文章中的代码,有兴趣的朋友可以去参考一下实现,除了使用pageview还有另外一种实现,但是最后发现那种方式有两个问题,一个是进入首页后会加载所有PageWidget,第二个是每次切换PageWidget时都会走一遍build方法,这显然不符合实际使用场景,所以这里参考部分文章对PageView的使用,也引入了PageView的页面缓存与懒加载完美的符合实际使用,下面看示例。
2023-07-08 09:21:40
760
原创 Flutter 使用bloc模拟首页实现下拉刷新
思考:这篇文章主要是记录bloc与下拉刷新功能的使用本篇文章是延续上一篇文章中所包含的bloc和自定义http库的使用,使用发现在上一篇文章中对bloc的理解有些误区导致最后实现好几个方式都感觉不尽人意,最终尝试查看官方示例与个人示例进行比对后发现了问题所在, 下面是效果图: (注:所使用的api来源于wanandroid api)flutter bloc与上下拉刷新使用记录演示‘est_repository.dart’:用于调用主页面对应接口。
2023-06-30 10:03:07
758
原创 Flutter如何使用mvi? bloc结合自定义http库的实现
提示:本篇并不算严谨的科普文章,仅仅只是记录使用bloc的思路?} } /// 定义ui状态 sealed class BannerState {} /// 需要发送的事件 class BannerEvent extends MyFromEvent {// 负责数据请求 final BannerRepository _repository = BannerRepository();
2023-06-21 14:09:32
1219
原创 Android 关于mvi框架优化(第三篇)
`思考:能不能进一步简化?`这篇文章是对mvi第二篇的一个简化版本,本次封装解决两个问题:>1. 响应类型使用 data class 后只能被响应一次>2. 独立处理的响应状态,有概率导致收发不一致的bug目前版本经过测试,有个小问题,便是如果需要每次请求都响应则必须开启加载状态,但收获是将状态和加载状态放到了一起处理,这样可以有效避免收发不一致的情况。
2023-06-19 15:57:18
813
原创 Android mvi 第二篇
鉴于之前的文章没有针对于mvi做详细说明,才有了本篇对mvi的详细讲解,其实思路比较简单,就是使用Flow替换掉了livedata,为什么使用Flow呢,那只能说在kotln体系里面flow是强于rxjava了,本人喜欢使用代码作为实际说明,也有理解不足的地方,欢迎大家前来指正与交流,当前mvi已经基于之前的版本做了小升级,将原有mvi没有状态的设计现在加入到了现有的架构中,让架构更加灵活,同时flow貌似有些小改动在我之前使用其他人的例子出现api过时的情况,这里做出了调整,但未来可能当前使用的api还是
2023-06-09 17:15:50
1318
原创 Android使用多模块+MVI+Koin+Flow构建项目框架
目前mvi架构挺火的,结合其它人提供的思路将其整合到了新框架中, 本想在路由框架上使用ARouter的, 但ARouter不支持AndroidX虽然也能用, 但是作为强迫症患者还是想着简化与替代, 挺看好TheRouter但是当把项目配置升级到最新版本也很难导入进来就只能尝试自己手写了。
2023-05-29 22:16:10
1147
3
原创 Python3开发抽奖系统
使用python3.11作为开发版本,使用读取json的方式代替数据库,主要实现了用户抽奖与管理员管理功能,仅供学习使用。
2022-11-02 17:26:06
249
原创 使用SpringBoot与Gradle搭建多模块项目
使用的技术是springboot+ktor+mybatis-plus,可以参考 上一篇文章,此处将springmvc替换成ktor,ktor使用内置服务器是netty性能高效的同时也支持协程调度,整体整合之后启动比原有的速度快上不少,ktor是kotlin一个公司弄出来的所以不用担心项目不在维护的问题,目前ktor也能使用Shiro做为权限管理,整体而言感觉可以嵌入spring生态中,本案例仅仅只是模拟真实开发环境中需要用到的多模块项目的方式,项目本身只做为演示,实际使用过程需要在此基础上做好模块规划与项目
2022-06-21 17:20:44
1593
原创 SpringBoot整合Ktor2与MybatisPlus
使用springboot整合ktor与mybatis-plus,采用kotlin+gradle,欢迎大家评鉴。
2022-06-21 14:18:31
630
原创 ktor 2.0的使用教程之实现log日志和jwt封装与异常处理
最近找寻能快速开发的web框架,比如对py的 fastapi,go的gin以及c#的.netcore与php的laveral做了研究,php被排除的原因只是因为环境安装过于麻烦而且还容易出错(如果是php大佬勿喷),go和py其实也挺不错的,go的问题是生态与自身的问题导致开发效率并不优秀,py确实不错可惜不太懂fastapi的异常机制,最终选择使用ktor。
2022-05-30 11:12:43
1408
原创 Android 仿ios四级联动地址选择器
需求变化何其多,地址选择三级不满意非得四级?,产品经理果然是程序猿的宿敌,花了一天时间搞定,有需要可直接拿过去使用。
2021-12-16 17:52:29
2532
1
原创 rust yew使用教程(二)
序言 依旧使用例子演示,例子包含定义组件,以及将组件点击事件传递给上一个组件处理,例子如下:src/btn_widget.rsuse yew::prelude::*;pub struct MyButton { link: ComponentLink<Self>, props: Props,}#[derive(PartialEq, Properties, Clone)]pub struct Props { pu
2021-12-02 17:41:05
1368
原创 rust yew使用教程(一)
序言 通过官方例子了解项目创建,热更新,以及编译,新版本的yew比之前方便很多,有配套工具,可以做到类似vue与react这样热更新,实时查看自己代码,yew还可以调用外部js与内部调用js api等,官方文档-中文链接。一、创建项目(注: 新版本不用使用lib做为项目)cargo new yew-app二、在Cargo.toml文件中添加yew作为依赖项[dependencies]# 你可以在此处查看最新版本: https://crates.io
2021-11-25 09:48:42
2841
原创 rust 为yew项目创建自己的服务端渲染环境
引言 最近了解yew的rust项目,感觉挺有意思的,不知道能不能避开前端相关的技术,毕竟现在前端体系需要了解的东西过于繁杂,yew的项目编译后貌似只能服务端渲染才能运行,但是官方介绍的服务端渲染方式总感觉还得继续安装奇奇怪怪的东西,为了减少依赖,才有了自己写一个简单的用于测试运行yew项目。一、rust web框架选择 目前生产环境可用的web框架貌似只有acitx,rocket也行不过自己使用的时候必须使用rust的不稳定版本,这会导致项目突然一下无法运行,很是玄学,actix个人认为有点过于庞
2021-11-23 18:19:46
833
原创 Android 实现SKU选择通用方式
效果如下:说明:实现sku的方式一般采用在获取到数据后拆分所有条件的可能性,实现方式参考js的实现,代码如下:SkuHelp.kt/**不考虑服务端的格式类型,将对应格式翻译成如下格式: *[ * { "颜色": "红", "尺码": "大", "型号": "A", "skuId": "3158055" }, * { "颜色": "白", "尺码": "大", "型号": "A", "skuId": "3158054" }, * { "颜色": "白",
2021-11-18 11:44:13
2563
原创 Android RecyclerView+Lifecycle+ViewBinding简化使用
前言之前一直使用kotlin,kotlin的插件挺好用的,现在建议使用ViewBinding,索性将获取布局方式修改为ViewBinding,之前了解Jetpack系列感觉Lifecycle挺好用的,将Android中组件化提高了一个档次,所以有了以下封装,好了废话不多说直接上代码.1.先上接口,此接口主要将Adapter中需要实现的功能代理出去interface AdapterImpl<B: Any, VB: ViewBinding> { /// 初始化viewBinding
2021-07-20 09:58:21
528
原创 关于RecyclerView你不能不知道的秘密
概述关于RecyclerView的描述网络上已经很多了,这里不再继续深入探讨,本章主要方向为简化开发流程,每次使用rv的时候我都会想还得去写适配器这样既浪费时间也不方便快速开发和对问题的定位,便有了将适配器直接封装在控件中这样只需要每次使用自定义对应业务的rv即可把一些负责的业务逻辑独立出去,也可以简化开发流程提高效率。RV万能适配器我们先需要万能适配器来简化adapter的代码,万能适配器封装如下:public abstract class CommonAdapter<T> exte
2020-10-27 15:36:06
104
原创 Flutter 环境搭建与配置
本人使用uos系统,指令和ubuntu类似,win环境在环境变量里面配置,配置过程大致一致下载flutter配置环境变量如果linux无法识别设备,参考如下方式下载gradle,并配置gradle项目加载比较慢配置阿里云代理配置android_sdk总结下载fluttergit clone https://gitee.com/mirrors/Flutter.git配置环境变量export PUB_HOSTED_URL=https://pub.flutter-io.cnexport FLUTTER_
2020-08-29 14:36:09
1138
原创 flutter 项目中路由的封装
前言这算一个综合文章吧,网上关于flutter的路由有两种,一种是静态路由一种是动态路由,这里选择静态路由方便管理,我看过很多文章说的是静态路由无法跳转带参数,我现在的这种方案可以实现并在项目中实际使用,可实现跳转页面切换动画,动画是参考其它文章做的修改,当然如果你自己有更好的实现动画方案也可以自定义,我这边只提供一个思路,对于动态路由其实也可以做到和静态路由一样方便管理,由于当时遇到了一个不是bug的bug代码已经删掉了,有兴趣的可以自行尝试。正文1.创建route.dart,该文件主要是用来统一路
2020-07-28 16:39:26
1439
原创 rust之简单文件读取完整版
前段时间一直在思考虽然之前发布的配置文件读取库可以使用,但总感觉可拓展性太差了,万一哪天我需要读取json配置呢!所以绞尽脑汁想到了一个不算完美的解决方案,该方案是事件n版后的简洁版,直接上代码:先定义通用文件读取以及文件访问接口// 文件读取统一接口pub trait ConfReadImpl { // path: 文件路径 fn read_conf(&mut se...
2020-04-09 10:24:06
2974
原创 rust面向对象之继承
rust实现继承和类c语言差异较大,基本上和go的继承类似,一脉相承的理念,接下来我们看例子:// 定义父结构体Animal#[derive(Debug)] struct Animal { age: u16, } impl Animal { fn new(age: u16) -> Self { Self { age } } } i...
2020-04-09 09:49:27
6335
2
原创 Vs Code 配置rust环境
目录一、安装rust二、安装Vs Code插件一、安装rust下载rust工具: 点击下载rustup-init | win.rustup.rs安装rust:打开rustup-init.exe安装有2种选择,gnu或者msvc工具链gnu(本文使用MinGW-w64)占用空间小(500M),对于初步的rust使用足够了。msvc(本文使用Visual Studio Bui...
2020-03-26 14:09:55
4038
2
原创 rust初体验之简单配置文件读取
简单实现ini、conf文件读取与解析缓存,可用于项目文件配置.1.需要使用到全局变量用于项目缓存,导入如下库:lazy_static = "1.4.0"2.具体实现#[macro_use]extern crate lazy_static;use std::io;use std::fs::File;use std::io::{BufReader, BufRead};use s...
2020-02-29 21:21:17
4406
原创 rust初体验之观察者模式
rust初体验之观察者模式项目环境实现思路抽象观察者抽象被观察者接口调用总结项目环境1.idea 2019.1.32.rust 1.20.2 (13979c968 2019-10-16)实现思路抽象观察者trait Observer { fn update(&self, msg: &str);}抽象被观察者接口trait Observer { fn...
2019-12-09 11:23:51
724
原创 Kotlin:Ktor项目整合SpringBoot和Ktorm教程
Kotlin整合SpringBoot2+Ktor+Ktorm开发环境项目创建项目配置ktor封装定义configuration项目实例总结开发环境idea 2019.3kotlin 1.3.41spring boot 2.1.6.RELEASEktor 1.2.2ktorm 2.4项目创建使用idea创建kotlin项目,创建项目需使用gradle,如需使用maven创建项目请...
2019-07-22 18:26:43
2563
Android 串口通讯模块,包含数据位校验位停止位设置
2023-07-29
Android MVI示例,升级版(注: 该版本只提供'lib-base'使用方式和Android MVI示例类似)
2023-05-30
Python3开发抽奖系统源代码
2022-11-02
使用SpringBoot与Gradle、搭建多模块项目
2022-06-21
rust-conf-demo.zip
2020-04-09
go-sakuraSnow.7z
2020-01-19
Spring boot+Ktor+Ktorm.demo.7z
2019-07-22
使用javafx2搭建简单客户端嵌入浏览器项目
2018-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人