功能性组件的简单整理,你一定有所启发~

基础组件

      就是一些基本的宏定义,全局字段,全局方法等,比如设备(宽高、机型、IDFA…)、颜色宏、appKit(id、名称、UA…)、单例宏等等

基础组建组成粗略图

UI组件

      日常开发来说,UI组件显得非常重要了,UI是一个非常庞大且重要的话题,并不是说iOS按照自己的部门做个组件库就可以了,为了保证各端的统一,你的UI组件库需要跟其他部门同步才行,这里就列一下简单的功能,具体等我后面会写一篇《UI统一解决方案》文章详细介绍,那么UI组件我们需要封装哪些内容呢?请看图

UI组件组成图

根据上图我们了解UI可以分解为 动画、字体、图标、控件(基本控件、业务控件),色板等等,而不单单只是UI控件,这里也简单介绍下基本控件和业务控件的区别,它们往往跟是否跟业务强关联,改动是否频繁、是否可以拿去到其他app使用有很大的不同,我们可以从这几个维度思考

小红点,基本控件,所有app通用


广告banner,业务控件,只属于广告业务

网络组件

      一般基于公司自己的网络请求、业务需求做二次封装,达到统一处理,快捷调用等效果,如缓存策略、错误码处理、域名解析、网络问题处理等等,当然,仅限于网络组件是不满足的,我们项目内的接口格式都统一化,所以还研发了一个网络代码自动生成工具,自动根据接口生成网络请求代码和模型,提高开发效率与质量

分类组件

      开发是自由的,你会发现项目里分类文件分散各处,而且方法功能可能还重复编码,所以不法,有一点需要说明下,针对数组越界崩溃这些分类的方法,已经没必要写了,因为下面有闪退组件做了预防,你再写相当于多调用了判断代码

闪退组件

      为了稳定线上崩溃率,闪退组件是必不可少的,它的内容就是针对一些常用的闪退,这里列了一些常见的闪退场景,如图


各种简单场景崩溃

hook了这些问题后,自定义上报到平台作为警告处理,让app还可以继续运行使用,可以说一个完善的闪退组件,它的功劳非常巨大

热修复组件

      热修复组件同闪退组件的目标一致,都是为了解决bug,由于JSPatch已经被禁用,所以本人自己研发了一套可以下发原生代码修复的热修复组件,达到线上出问题时可以及时发布热修复的效果,这个修复的原理有机会后续再写文章介绍

上报组件

      一般中大型的项目,都会有自己一套数据上报系统,那这时就需要封装一套通用的上报组件,所有开发人员使用这套组件可以有效减少上报的问题的发生

调试组件

      先来说个场景,测试反馈说收不到push,那么如何定位问题,她可能会直接来找你,但结果往往不是客户端的问题,这样就导致浪费了很多时间,那么假设我有个push的调试工具可以知道是哪里的问题,那不就可以解决了吗,所以调试组件就诞生了,调试是一个非常庞大的话题,很多东西都可以弄成调试组件,后面我会专门写篇文章来详细介绍有哪些好用的调试组件

地理组件

      跟地理相关的,比如获取城市列表,经纬度,地图等等,都封装为地理组件,方便快捷使用

视频、音频播放器组件

      app内多业务用到视频播放功能,可以统一使用播放器组件

分享组件

      基本每个app都会有第三方登录、分享功能吧,如果你要接入的时候,只需要按照readme的操作设置并调用,那么可以减少你非常大的时间量

web组件

      web也是非常复杂的,这里只做一些简单介绍,比如js与原生交互方案、cookie获取设置方案(我们都知道WKWebView的cookie有多蛋疼)、静态资源加载等等功能,后续有机会再写文章做详细介绍

多媒体

      图片/视频读取库、图片/视频的裁剪、压缩、上传等等操作,都可以列入到多媒体组件里面

统一打开页面组件

      如果你公司项目比较大或者比较多app,那么这个是非常有必要的,举几个场景:web跳转到原生某个页面,通过url跳转;push点击跳转、通用链接打开跳转、长链接mqtt打开跳转等等,所以统一非常有必要,具体后面有机会会详细介绍如果做统一打开页面的方案

其他组件

      还有一些其他的组件,可能每个公司不太一样,比如空白页组件,针对app每个页面空白时的处理;预加载组件,针对数据统一进行预加载的方式;蓝牙组件,封装了对蓝牙协议的统一处理等等;缓存组件,对所有的数据缓存进行统一化管理

这篇文章讲的功能组件大概就这些,这下领导问你,你也不用怕没技术优化可以做了吧️🤣,感谢观看^_^

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,928评论 6 509
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,748评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,282评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,065评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,101评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,855评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,521评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,414评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,931评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,053评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,191评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,873评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,529评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,074评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,188评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,491评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,173评论 2 357

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,735评论 2 59
  • 1、 github排名 https://github.com/trending,github搜索:https://...
    GB_speak阅读 9,802评论 2 117
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,055评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 6,885评论 0 2