
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文介绍了Flutter中SharedPreferences(SP)的使用方法和工程化封装方案。SP是官方提供的轻量级本地存储方案,支持基本数据类型和字符串列表,底层基于Android/iOS原生实现。文章详细说明了SP的核心概念、使用步骤(添加依赖、获取实例、数据操作),并重点分享了工程化封装思路:通过SPKeys类统一管理键值,利用SPUtils工具类实现同步化调用,在应用启动时预加载实例。这
打开一个app的时候速度比较慢,等一会才能看到UI,有很多种原因,下面是我根据这些个情况做出的多种优化,记录一下。1、采用动态布局:先是优化了布局,减少层级嵌套,使用merge优化等等。但发现加载xml布局还是慢了点,于是改为动态布局,布局的时间减少了好几倍。2、利用MessageQueue.IdleHandler()回调按照activity的生命周...

1. assert(boolean)官方解释是:Throws an AssertionError if the value is false and runtime assertions have been enabled on the JVM using the -ea JVM option.简单理解是:用来检测执行结果,当boolean为false时,抛出AssertionError,但是需要

我们知道常见的应用开发框架主要有:模块化、组件化、插件化,那么随着各个应用不断的迭代升级,应用的开发框架也从最开始的单App模块到多模块化,再到组件化与插件化。那么对于一般的应用开发框架,应该遵循什么样的设计原则呢?首先,我想到的是不能过度设计,一口不能吃一个大胖子,一来就嚷着要做插件化是不太现实的,框架应该跟随应用需求一步步迭代或重构。其次,直接使用AS创建一个新项目,会缺少应用迭代升级的一些常

策略设计模式做的事情就是,将不同的行为策略进行独立封装,与类在逻辑上解耦。根据不同的上下文,切换选择不同的策略,然后用类对象进行调用。有如下例子,一个游泳运动员会蛙泳、仰泳、自由泳多种游泳姿势,我们可以将游泳这个行为封装成接口,根据不同的场景我们可以调用不同的游泳姿势,如下代码所示:package com.agg.kotlinapplicationinterface SwimStra...
Flutter跨端UI组件复用方案技术可行,支持通过Add-to-App模式将Flutter模块嵌入原生Android和iOS项目。Android可打包为.aar,iOS可生成.xcframework,通过MethodChannel实现双向通信。方案采用模块化工程结构,统一管理主题资源,建议通过私有仓库分发组件。虽然存在轻微性能损耗和调试复杂度,但能显著提升开发效率和视觉一致性。调研结论表明该方案

Kotlin的访问控制分为限制修饰符与可见性修饰符 。限制修饰符当你想要指定一个类、方法及属性的修改或者重写权限时,你就需要用到限制修饰符。限制修饰符包括:默认(final)、open、abstract、sealed。由于Kotlin中类、方法及属性默认是final,不可被继承或重写的,所以要继承或重写必须加上open。Kotlin与Java的限制修饰符比较限...
三、泛型型变:协变、逆变与不变3.1 协变3.1.1 基本定义如果在定义的泛型类、接口和泛型方法的泛型参数前面加上 out 关键词,说明这个泛型类、接口和泛型方法是协变。也就是说,A 是 B 的子类,那么 List<A> 也是List<B> 的子类。class Demo {interface Producer<out T> { // 在泛型类型形参前面指定 ou
访问者设计模式,是GoF阐述的23中常见设计模式中,行为型设计模式的一种。访问者设计模式,表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变个元素类的前提下定义作用于这些元素的新操作。使用该设计模式可以让我们能够访问到各个元素,于是我们可以将相关方法的实现放在类的外部,这样就可以使得类不再臃肿。下面是具体的代码实现:sealed class Target {abstr...
Kotlin什么是Kotlin:目标(更好的Java)、编程方式(面向对象命令式编程+函数式编程(Scala有包括宏))、一些改良(单例模式,data数据类,NPE,可变性,更多的语法糖,类型推导)为什么使用Kotlin:a、Kotlin在空安全、扩展函数、协程和语法糖带来诸多特性,让代码量减少,也更加易读;b、Google一直在大力推Kotlin,目前很多源码都是Kotlin,并且可以和Java








