移动开发
Flutter 网络封装 2022-10-12 周三
网络选择
Flutter自带httpClient,这个也是很好用的;
Http库,有个三方库的名字就叫这个;
Dio,这是目前最热门的,相当于iOS中AFNetworking。随大流,就选这个进行封装。
Dio引入
Dio是一个第三方库,所以需要先下载。使用一行命令就可以引入flutter pub add dio
dio: ^4.0.6
日志是需要的,最简单的就是用系统提供debugPrin
Android - 小红书优化 - 仿小红书滑动列表中双指触摸缩放图片的效果
一、小红书缩放图片效果
效果:在列表上双指触摸某个ImageView后,可直接对其进行手势缩放的效果,并且缩放的View可全屏延伸至状态栏,相比先点击图片进入大图页再对图片进行双指缩放的流程更加直接高效。如下视频效果:
小红书
但通过以上视频可发现小红书一些异常交互问题:
1. 缩放中心不是触摸时两指中心,而是图片中心,达不到指哪缩哪的效果;
2. 松开双指,半透明背景
Flutter iOS混编 解决flutter在iOS14+ debug模式上无法运行的问题
iOS项目引入Flutter后,安装Debug包,打开Flutter界面会出现"In iOS 14+, debug mode Flutter apps can only be launched from Flutter tooling, IDEs with Flutter plugins or from Xcode"问题。
image.png
解决办法如下:
用 [Xcode] 打
android 打包多个 apk
1、配置 gradle 文件
./app/build.gradle
android {
defaultConfig {
flavorDimensions "default"
}
// 多应用打包
productFlavors {
// 默认
defaults {
manifestPlaceholders = [app_name
iOS16适配 屏幕旋转横屏
背景
iOS16之前转屏方法setOrientation:, 16之后使用无效.
虽然Xcode14/iOS16提供了新的api但还是beta版, 不能直接打包上线, 所以要在旧版适配新版本.
怎么适配 尝试了很多方法, 比如横屏时直接present一个横屏VC, 但耗时耗力, 怎么花最小代价适配iOS16, 看下面...
未升级Xcode14提前调试iOS16
下载iOS16系统支持包
放到这个
android studio模块化之模块划分简易版
模块也好,组件也罢,都是需要做好模块区分的。
一、新建module
修改你的模块名,比如你原来的包名是aaa.bbb.ccc,那么模块名就会是aaa.bbb.模块名
二、统一依赖
当我们建立好的module之后,发现主项目app和mudole各自的build.gradle文件都有一些相同的依赖,这个这个时候,需要进行管理,避免混乱。
一些相同的依赖
ES6学习(17)async和await
async用来声明一个异步函数,返回值是一个promise对象,结合await使用,使异步代码看起来像同步代码。
async可以单独使用
如果没有返回值,则返回的状态是resolved,值是undefined
如果返回值是一个非promise类型,则返回的状态是resolved,值就是返回的这个值。
如果 抛出错误,则返回的状态就是rejected
如果返回的值是一个promise,则asyn
Android卡顿优化工具
线上监控的方案
1、BlockCanary
从Choregrapher中可以知道,帧的渲染是通过消息发送到主线程执行的。所以通过在计算msg的处理时间就可以判定是否发生卡顿。
Looper.java
public static void loop() {
...
for (;;) {
...
// This must be in a local va
unity Xcode 项目注意事项
1.xcode报错
Cannot use '@try' with Objective-C exceptions disabled
解决
修改target -> build settings -> All | Combined -> Apple LLVM Compiler 4.2 - Language 中 Enable Objective-C Exceptions为YES
