Kotlin Multiplatform (KMP) + Ktor 学习与实践文档一、概述Kotlin Multiplatform (KMP) 是 JetBrains 提供的跨平台开发方案,核心思想是逻辑层代码共享,UI 层保持原生。在 KMP 中,网络层通常使用 Ktor,这是一个由 JetBrains 开发的异步网络框架,天然支持多平台(Android、iOS、Desktop、Web)。
KMP + Ktor 的组合,能让我们用一套代码实现跨平台的网络请求逻辑。
二、Ktor 特性
跨平台支持:Android 使用 OkHttp,iOS 使用 NSURLSession,桌面和 Web 也有各自实现。
异步非阻塞:基于协程,性能高。
模块化插件:支持 JSON 序列化、认证、日志、WebSocket 等。
客户端与服务端统一:既能写客户端 SDK,也能写后端服务。
三、项目结构KMP 项目典型结构:
12345shared/ ├── commonMain/ # 共享逻辑 (Ktor 请求、Repository、UseCase) ├── androidMain/ ...
Flutter
未读介绍What is AutoRoute?它是一个 Flutter 导航包,支持强类型参数传递、轻松的深度链接,并使用代码生成来简化路由设置。也就是说,它只需要极少量的代码即可生成应用内部导航所需的一切。
Why AutoRoute?如果您的应用需要深层链接、受保护的路由,或者只是需要简洁的路由设置,那么您将需要使用命名/生成路由,并且最终需要为中介参数类编写大量样板代码,检查所需参数 、 提取参数等等。AutoRoute 可以为您完成所有这些工作,甚至更多。
安装将以下依赖项添加到您的 pubspec.yaml 文件:
123456dependencies: auto_route: [latest-version]dev_dependencies: auto_route_generator: [latest-version] build_runner:
1flutter pub add auto_route dev:auto_route_generator dev:build_runner
LeanBuilder 支持auto_route_generator:(10.2. ...
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148const TAG = "PreferencesUtil"const PREFERENCES_NAME = 'graduation_preferences'type ValueType = number | string | boolean | Array<number> | ...
HarmonyOS
未读由于HarmonyOS官方提供的网络请求比较复杂,不太适用于项目管理,需要进行网络框架的封装。
主要使用较广的第三方网络请求框架有 @ohos/axios 和 @ohos/retrofit
@ohos/axios 主要偏向前端,和前端的axios很相似,对于前端开发者能够很快上手
@ohos/retrofit 主要偏向Android和其retrofit框架相似,主要通过注解的方式进行网络请求
下载安装ohos/axios 的安装
1ohpm install @ohos/axios
ohos/retrofit 的安装
1ohpm install @ohos/retrofit
这里主要介绍 @ohos/axios 的封装使用
权限管理1ohos.permission.INTERNET
封装使用示例首先我们需要创建一个request.arkts的文件,进行对base_url的管理。如果我们需要对业务逻辑处理的话,需要先对code,msg,data进行封装处理
12345interface BaseResponse&l ...
1.RxJava基本概念和原理是什么?答案:RxJava 是一个用于响应式编程的库,通过 Observable(可观察对象)来发射数据流,并通过 Observer(观察者)来消费数据流。它使用操作符(Operators)来对数据流进行变换、过滤、合并等操作,允许我们以声明式的方式编写异步代码。
EventBus线程模式
EventBus支持订阅者和发布者在不同的线程中调用。可以使用线程模式来指定调用订阅者方法的线程。EventBus支持5种线程模式。
ThreadMode.POSRING
ThreadMode.MAIN
ThreadMode.MAIN_ORDERED
ThreadMode.BACKGROUND
ThreadMode.ASYNC
Android
未读函数响应式编程概述函数式编程是面向数学的抽象,把计算描述为一种表达式求值,函数可以在任何地方定义,并且可以对函数进行组合。
响应式编程是一种面向数据流和变化传播的编程范式,数据更新是相关联的。把函数式编程里的一套思路和响应式编程组合起来就是函数响应式编程。
函数响应式编程可以简化项目,特别是处理嵌套回调的异步事件、复杂的列表过滤和变化或者时间相关问题。在Android开发中主要的两大框架:RxJava和Agera。
RxJava:
异步处理库
可拓展的观察者模式
RxJava的异步操作是通过扩展的观察者模式来实现的。RxJava有四个角色Observable、Observer、Subscriber、Subject。
实习第一天 2024-7-21今天进行了入职报道,去到了人力资源部递交了一些入职材料,然后在会议室里签署了个人资料,实习协议书,保密协议,以及薪资条款。之后HR给我们讲解了一些工作注意事项,包括打卡等,然后再在HR的帮助下加入了工作的钉钉群。
之后,在部门的HRBP的带领下回到自己所在的部门,领取了自己的工作电脑(一个比较旧的ThinkPad),然后带领我到了自己的工位。我所在的公共安全与智能交通事业群挺大的有600多号人,其中我所在的平安事业部也有150左右的人员。
在这里我认识我的杨导师,我所在部门唯一一个Android开发工程师。我看了一下整个集团包括我一个才7个Android开发。
在进行简单的收拾之后,我开始了配置我的开发环境。刚开始并不是很熟悉,我以为我这台电脑需要密码才能打开,最后在我的摸索下我成功在域环境下注册了我的账号,打开这台工作电脑。
看着这台电脑里的内容我摸索了一会,主要有许多东西不知道不清楚是干嘛的。在我的磕磕碰碰下,终于我在下午配置好了Android的开发环境。
实习第二天 2024-7-22在今天早上,我开始测试我的Android的开发环境,创建了一个新的 ...























