移动开发

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. 松开双指,半透明背景

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

响应式编程之手写Reactor

前言 前文提到了响应式编程,响应式规范Reactive streams,以及响应式扩展Reactor的简单使用 在使用Reactor时我一直很好奇,它是怎么做到的? 好奇心驱使我想要自己去写一个Reactive streams的实现,并参照Reactor源码来看看大神是如何实现的 话不多说,开始写代码(本文比较啰嗦,因为掺杂了自己的实现思路) 简单序列的发布者 看一下Reactor的一个简单例子