Skip to content

其他

项目经验

项目功能:

  • 面试通APP提供了鸿蒙和前端的多种题目和内容,包括基础知识点问题、原理问题、项目问题等,满足不同程序员的需求。同时,面试通APP还包含各大公司的真实面试经验,便于用户找到心仪公司的面经。面试通APP支持用户自主选择学习内容,同时还提供了智能推荐和反馈机制,帮助用户更好地掌握知识和技能。主要功能:刷题系统、项目系统、面经系统、个人中心、历史记录等模块。

职责:

  • 我独立开发整个APP,从基础架构层搭建,业务层的开发,后期的优化
  • 基础架构:http 请求工具、日志工具、状态栏工具、沉浸式工具、鉴权工具、埋点工具,历史记录工具、用户权限工具、数据库操作工具
    • 导航组件、搜索框组件、骨架组件、标签组件、加载中组件、打卡、试题列表等通用组件封装
  • 业务模块:
    • 首页、项目、面经、我的、登录、项目详情、试题详情、面经详情、我的点赞收藏历史、打卡日历、学习时间、个人设置等
  • 优化
    • 埋点数据上报优化、录音波形体验优化、上传头像前压缩图片

PersistentStorage 和 Preferences 区别

1)存储方式

  • PersistentStorage:提供持久性的数据存储,数据在设备上保持不变,即使应用关闭或设备重启。它主要用于将选定的AppStorage属性保留在设备磁盘上,以确保这些属性在应用程序重新启动时的值与应用程序关闭时的值相同。
  • Preferences:可看做是配置项,为应用提供Key-Value键值型的数据处理能力,支持应用持久化轻量级数据。Preferences中的数据会被缓存在内存中,因此它可以获得更快的存取速度。

2)大小和类型

  • PersistentStorage:持久化变量最好是小于2kb的数据。不建议进行大量的数据持久化,因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在UI线程中执行,影响UI渲染性能。
  • Preferences:存储的数据不超过一万条,Key键为string类型,要求非空且长度不超过1024个字节。如果Value值为string类型,长度不超过16 * 1024 * 1024个字节。它适用于存储小型配置项数据。

3)使用场景

  • PersistentStorage:适用于存储需要在应用关闭或设备重启后仍然保留的数据。例如,应用的某些状态或配置信息,这些信息需要在应用重新启动时恢复。
  • Preferences:通常用于保存应用的配置信息,如用户的个性化设置(字体大小、是否开启夜间模式等)。由于数据被缓存在内存中,因此访问速度快、效率高,但不适合存储大量数据。

Preferences 和 RDB 区别

Preferences

  • 轻量级数据存储:首选项适用于存储轻量级的数据,如用户的个性化设置(如字体大小、是否开启夜间模式等)。这些数据通常不需要复杂的查询或关系处理,且数据量较小。
  • 键值对存储:首选项提供Key-Value键值型的数据处理能力,适用于存储简单的配置项或参数。
  • 快速访问:由于首选项的数据会被缓存在内存中,因此读取速度非常快,适合需要频繁访问的数据。

数据库

  • 复杂数据存储:当需要存储大量复杂数据时,数据库是更好的选择。数据库支持复杂的数据结构(如表、列、关系等),能够满足更高级的数据管理需求。
  • 高效查询:数据库提供了丰富的查询功能,能够支持复杂的查询语句和数据过滤,适合需要频繁查询和统计的应用场景。
  • 高并发处理:在需要处理高并发访问的应用中,数据库通过其内部机制(如索引、缓存等)能够提供更高效的数据处理能力。

Released under the Apache-2.0 License.