最近在在帮朋友写一个笔记应用,需要一个笔记的导入功能,场景如下:在File App中选择一个文件,比如pdf,点击分享,展现分享面板,分享面板下面的Action菜单,需要展示“在xxx中打开”,点击此菜单,打开app,并将文件导入到App中。
这篇文章之前在公司技术公众号发表过,今天转移到自己的blog来。原地址:https://mp.weixin.qq.com/s/npkoQtdnmx6JXymHNil_rw
随着业务的扩张,RN等新技术的引入,App进行着高速的版本迭代。技术面对业务的变更越来越频繁,App体量越来越大,功能也越来越复杂....
有一段时间没有关注公司App的启动状况了,今天公司PM反馈App启动速度非常慢,让帮忙协助排查下问题。这里记录下整个过程。并涉及到一些大致的优化方法。
以下所有数据均采用iPhone 6 plus测试,性能好的手机会更快,比如iPHone X MAX
2018年随着App组件化以及完成,H5在App中由XXXBLWebViewJSBridge和XXXBIZLenderWeb两大组件支撑,其中XXXBLWebViewJSBridge负责Native和H5之间进交互的通道管理,XXXBIZLenderWeb则是H5运行的容器和业务Handler,比如:方法调用、服务调用、页面跳转等。由于H5在App中加载的特性,开发人员必须关注H5的性能,比如:白屏时间、可交互时间、完全加载时间等。App中所有的H5加载时间都会对用户体验有直接的影响,进而影响整个App的体验。
配置中心的数据结构需要兼顾统一性和个性化。 统一的数据结构是抽象管理逻辑的基础,针对同一的数据结构可以设计出通用的管理界面,存储逻辑。 而具有一定的个性化则能针对不同场景更好的码字业务需求
在App开发中,特别是金融行业的App开发过程中,会涉及到手机号,身份证号,银行卡号等敏感信息,这些信息的展示和传输不能够直接使用明文的,否则极容易进行信息泄露。下面介绍下我们的处理过程。
随着组件越来越多,壳工程打包依赖的组件每次都要重新编译,为了提高编译速度,将组件进行二进制化势在必行。而我们App是从8.0开始支持。所以我们组件二进制化采用static library和部分dynamic framework的方式。
app目前已经完成以下组件的接入。并持续对目前主工程中的基础类、通用业务类和业务类进拆分。当前大量业务还存在与主工程,主工程还暂时未形成壳工程,随着业务的拆分组件化,主工程中只剩下配置,则会形成真正的壳工程。目前暂将其视为携有业务的壳工程。
之前确定过组件化方案,也在按照方案的步骤一步步在执行。随着平台组基础组件的逐个建立,App主工程也对基础组件进行接入。在此之前App也按照业务功能模块划分了文件夹。后面可进一步将公共资源下沉,并拆分业务组件。
通过持续集成,可以让我们通过自动化手段高频率地去获取产品反馈并响应反馈的过程。iOS可持续化集成应该包含3个基本模块:
在做iOS可持续化集成需要用到以下工具:bundler、fastlane、Jenkins、ipapk-server