Skip to content

devYoungyang/iOS-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

  • 1.Class类的底层实现原理 - 链接 链接

  • 2.Category分类的底层实现原理 - 链接

  • 3.Block块的底层实现原理和使用 - 链接一 链接二

  • 4.@autoreleasepool自动释放池的底层实现原理 autoreleasepool

  • 5.KVO键值观察底层实现原理和使用 - 链接 链接

  • 6.KVC简直编码的底层实现原理使用. 链接

  • 7.Runtime机制的原理 链接 链接 链接 链接 链接 链接

  • 8.Runtime的Swizzle黑魔法方法交换和应用场景 - 链接

  • 9.Runtime的属性关联使用 - 链接

  • 10.OC消息发送转发机制原理 链接

  • 11.iOS事件响应链和事件传递原理 链接

  • 12.iOS中的多线程编程、主要是GCD的底层实现、 GCD异步函数+并发队列+信号量实现同步操作、GCD线程组的使用、GCD线程栅栏的使用、进程线程的区别?进程间的通讯方式?- 多线程

  • 13.应用程序的生命周期和试图控制器的生命周期 链接 链接

  • 14.UIView的渲染和屏幕显示图像的原理以及卡顿产生的原因和解决方案 链接

  • 15.深copy,浅copy,以及修饰符的区别 链接 链接

  • 16.UITableViewCell的复用原理和UITableView的优化方式 链接 链接

  • 17.iOS中的数据持久化的方式有哪些?

  • 18.沙盒机制

  • 19.iOS中的内存管理机制(ARC和MRC) 链接 链接

  • 20.iOS中的网络编程 NSURLSession、AFNetworking的实现原理和网络数据缓存以及Socket网络编程的原理、GET和POST的区别

  • 21.HttpsHttp协议的区别与联系、TCP和UDP区别与联系?http http tcp

  • 22.iOS中的锁机制,各种锁的优缺点?锁的作用!链接

  • 23.ReactiveCocoa(RAC)函数响应式编程框架的原理以及配合MVVM设计模式的使用

  • 24.MVCMVVM的区别与联系?各自的优缺点?MVP模式 链接 链接 链接 链接

  • 25.实现一个单例。单例的优缺点

  • 26.SDWebImage的底层实现原理

  • 27.iOS中的加密算法底层实现和使用、对称加密:AES,DES,MD5 、非对称加密:RSA

  • 28.代理,block,通知,KVO的区别与联系

  • 29.调试方式和Instruments的使用、单元测试、lldb(gdb)常用的调试命令 lldb 单元测试

  • 30.RunLoop机制原理 - 链接 链接 链接

  • 31.iOS组件化开发方案

  • 32.iOS原生与H5的交互、JavaScriptCore的使用

  • 33.iOS的基础动画、CoreGraphicsQuartzCore

  • 34.iOS中的传值方式

  • 35.Runtime如何实现 weak 属性 weak

  • 36.OC对象的本质 链接

  • 37.const,static,extern关键字的区别 链接

  • 38.最快让你上手ReactiveCocoa之基础篇 链接

  • 39.iOS的小技巧总结,绝对有你想要的 链接

  • 40.iOS无埋点数据SDK的整体设计与技术实现 链接

  • 41.iOS 性能调优,成为一名合格iOS程序员必须掌握的技能 链接

  • 42.微信,QQ这类IM app怎么做——谈谈Websocket 链接

  • 43.iOS 模块分解—「Runtime面试、工作」看我就 🐒 了 ^_^. 链接

  • 44.OC最实用的runtime总结,面试、工作你看我就足够了! 链接

  • 45.史上最详细的的iOS之事件的传递和响应机制 - 原理篇 链接

  • 45.23种设计模式及案例 链接

  • 46.手把手教你利用Jenkins持续集成iOS项目 链接

  • 47.iOS MVVM+RAC 从框架到实战 链接

  • 48.iOS即时通讯,从入门到“放弃”? 链接

  • 49.iOS 图片加载框架-SDWebImage解读 链接

  • 50.iOS,面试必看,最全梳理 链接

  • 51.iOS组件化思路-大神博客研读和思考 链接

  • 52.iOS面试题大全-点亮你iOS技能树

  • 53.2017年5月iOS招人心得(附面试题) 链接

  • 54.2018-iOS面试题<一> 链接

  • 55.玩转iOS开发:装逼技术RunTime的总结篇 链接

  • 56.iOS面试珠玑 链接

  • 57.超详实Git简明教程与命令大全 链接

  • 58.iOS秋招面经---我是如何通过多家公司的面试 链接

  • 59.面向对象设计的六大设计原则 链接

  • 60.2018年 iOS 面试心得 链接

  • 61.出一套 iOS 高级面试题 链接

  • 62.分分钟让你理解HTTPS 链接

  • 63.git基本操作,一篇文章就够了!链接

  • 64.面试带你飞:这是一份全面的 计算机网络基础 总结攻略 链接

  • 65.HTTP从入门到放弃 链接

  • 66.一个渣硕iOS春招总结 链接

  • 67.iOS 性能优化总结 链接

  • 68.程序员也想改 Lottie 动画?是的! 链接

  • 69.八大基础排序总结 链接

  • 70.iOS 组件化 —— 路由设计思路分析 链接

  • 71.《图解HTTP》知识点摘录 链接

  • 72.一篇文章,教你学会Git 链接

  • 73.iOS App 稳定性指标及监测 链接

  • 74.揭秘 iOS 布局 链接

  • 75.iOS常见基础面试题(附参考答案) 链接

  • 76.移动端 iOS 年终工作总结-纯干货请自备酒水 链接

  • 77.iOS多线程:『GCD』详尽总结 链接

  • 78.iOS 保持界面流畅的技巧 链接

  • 79.图解TCP三次握手与四次分手 链接

  • 80.Token 认证的来龙去脉 链接

  • 81.YYCache 源码解析 链接

  • 82.深入分析MVC、MVP、MVVM、VIPER 链接

  • 83.面试 -- 网络 HTTP 链接

  • 84.面试 -- 网络 TCP/IP 链接

  • 85.知道这20个正则表达式,能让你少写1,000行代码 链接

  • 86.JS正则表达式完整教程 链接

  • 87.蜂鸟商家版 iOS 组件化 / 模块化实践总结 链接

  • 88.iOS 学习资料整理 链接

  • 89.2018.4月份iOS面试经历 链接

  • 90.来来来!关于iOS基础总结咱俩好好唠唠 链接

  • 91.IOS的性能优化 链接

  • 92.iOS App 签名的原理 链接

  • 93.深入理解RunLoop 链接

  • 94.面向切面编程之 Aspects 源码解析及应用 链接

  • 95.iPhone安装包的优化 链接

  • 96.今日头条iOS客户端启动速度优化 链接

  • 97.校招攻略:43份优质面经汇总(iOS开发) 链接

  • 98.iOS绘图教程 链接

  • 99.Core Animation编程指南 链接

  • 100.iOS单元测试(作用及入门提升) 链接

  • 101.iOS UIWebView与WKWebView 链接

  • 102.iOS多线程详解 链接

  • 103.iOS Core Animation详解 链接

  • 104.iOS Quartz2D详解 链接

  • 105.iOS instancetype和id区别详解 链接

  • 106.@property参数详解 链接

  • 107.iOS Runtime之三:成员变量和属性 链接

  • 108.iOS 视图控制器转场详解 链接

  • 109.ReactiveCocoa 讨论会 链接

  • 110.写iOS SDK注意事项 链接

  • 111.MVVM使用ReactiveCocoa 链接 源码解析 链接 链接

  • 112.+load 与+initialize的区别 链接

  • 113.AFNetworking到底做了什么?链接 链接 链接 链接 链接

  • 114.iOS下音视频通信-基于WebRTC 链接

  • 115.iOS中UIWebView与WKWebView、JavaScript与OC交互、Cookie管理看我就够 链接

  • 116.iOS 开发中你是否遇到这些经验问题 链接 链接

  • 117.iOS日常工作之常用宏定义大全 链接

  • 118.页面间跳转的性能优化 链接. 链接

  • 119.多年iOS开发经验总结 链接

  • 120.iOS 万能跳转界面方法 链接

  • 121.如何快速的开发一个完整的iOS直播app 链接

  • 122.3分钟实现iOS语言本地化/国际化(图文详解) 链接

  • 123.Texture 布局篇 链接

  • 124.新大陆:AsyncDisplayKit链接

  • 125.理解 iOS 和 macOS 的内存管理 链接

  • 126.iOS显示性能优化过程讲解 链接

  • 127.iOS数据安全-编码和加密算法 链接

  • 128.iOS开发系列--代码混淆 链接

  • 129.隐式动画和显式动画 链接

  • 130.搞iOS的,面试官问Hash干嘛?原因远比我下面要介绍的多 链接


应用市场用户争夺越来越激烈,优质化的用户体验成为决定现在的一款APP软件是否留住用户的关键,所以如何开发高性能的优质APP,成为时下最受关注的热点。本文总结几点开发APP的技巧供大家参考:

  • 1、定位好核心功能
  • 在做一款高性能的优质APP之前,得先想好这款APP需要解决用户哪些实际的需求,然后提炼出这款APP的主要功能,一个APP并不需要花里胡哨的功能,核心功能才是需要定位清楚的关键。
  • 2、做好应用架构评估
  • 在定位好核心功能之后,接下来就要做好应用架构评估。一般不匹配的技术选择、低效的网络配置、可扩展性的限制、不符合移动端的UI设计等都会影响应用程序性能,所以做好清晰完整的APP架构规划才有利于构建用户所需的系统功能。
  • 3、养成良好的编程习惯
  • 良好的编程习惯可以提高程序的执行效率,让应用开发事半功倍。程序员可以从程序结构模块化、命名规则化、注释简介明了化、文本格式易读化等方面让程序结构清晰、合理,使得程序代码易于读懂跟修改。
  • 4、加速程序启动跟响应时间
  • 大家日常中都使用过APP,APP的快速启动与响应往往会让我们改观它其他方面的不足,所以程序员应该在后台线程上花点功夫,将操作从主线移动到一个单独的线程中,缓存从磁盘存储中打开和阅读,客户端证书在后台加载。
  • Cookies反序列化和解码放在后台,相信通过这些改变,UI将会更加快速的出现在屏幕上。主意,用Xcodedebug时watchdog并不运行,一定要把设备从Xcode断开来测试启动速度。
  • 5、使用最新版本的软件开发SDK、API
  • 随着安卓、iOS平台的不断发展与更新,软件开发平台的性能会得到不断的改进,可以帮助程序员编写出运行更稳定、响应更迅速的应用程序。
  • 6、使用SuperWebView,让APP支持动态更新
  • 对于已经上线的app面对更新新功能时, SuperWebView功能支持动态更新,这样的好处在于可以不通过应用商店的审核,用户无需重新下载APP,即可受到新功能的更新信息。
  • 7、使用StrictMode调解android性能
  • StrictMode是用来检测程序中违规情况的开发者工具,意思是严格模式,程序员最常用它来检测主线程中本地磁盘和网络读写等耗时的操作,使用此模式,当系统检测出主线程违例的情况会将应用的违例细节暴露给程序员,方便程序员优化和改善程序。
  • 8、使用Hierarchy Viewer调试应用布局
  • Hierarchy Viewer会让你选择设备或者模拟器上正在运行的进程,显示出它的layout的树型结构,模块上的交通灯代表了它在测量、布置和绘画时的性能,帮助你找到瓶颈部分,从而改善性能。
  • 9、优化应用耗电量
  • 当用户发现一个APP很耗电时,用户往往会选择卸载掉应用来保存手机电量,根据调查显示,当一个APP中有使用到GPS定位、网络传输、屏幕亮度、CPU频率等时就会非常耗电,所以程序员应该对应用优化这几点以降低耗电风险。
  • 10、优化应用布局,确保布局简单、浅层
  • 使用lint工具查看view层级有哪些地方可以优化,帮助你找到不必要对控件镶套以及所见布局资源对方法,尽量减少资源的使用,控件越少、布局层次越浅,性能就越好。
  • 11、规划应用的离线体验
  • 如果当用户连接不上Wi-Fi或者移动信号的时候,你的APP依然可以使用,那么一定会在用户心里添加不少的印象分,所以在规划APP应用时,可以考虑将这一设计规划其中。
  • 12、发布之前尽量少用调试跟诊断
  • 如果你的应用程序已经开发了一段时间,你的应用程序中有可能已经被嵌入了一些日志跟调试代码,这些可能会给系统的性能带来一定的影响,因此建议尽量少用或者禁止使用这些功能。
  • 13、缓存
  • 通常来说,一个APP是由多个组件构成的,在这些组件中都有缓存的影子,当缓存后的数据再次被调用时就可以直接提供数据,提高数据的响应速度。因此缓存是改善应用程序响应速度和降低CPU负载的有效方式。
  • 14、充分利用云移动
  • 充分利用云移动传输来传递服务器与数据中心的移动内容,因为服务器与数据中心与终端移动用户之间有绝对的地理优势,不过在做出选择之前一定要充分考虑到双方的负荷量及地理位置。
  • 15、整合资源
  • 对开发者来说,将Javascript代码和CSS样式放到公共的文件中供多个页面共享是一种标准的优化方法。这个方法能很简单的维护代码,并且提高客户端缓存的使用效率。

1.UI视图相关面试问题思维导图

2.Objective-C语言特性相关面试问题

3.Runtime相关面试问题思维导图

4.内存管理相关面试问题思维导图

5.Block相关面试问题思维导图

6.多线程相关面试问题思维导图

7.RunLoop相关面试问题思维导图

8.网络相关面试问题思维导图

9.设计模式相关面试问题思维导图

10.架构/框架相关面试问题思维导图

11.算法相关面试问题思维导图

12.第三方库相关面试问题思维导图

13.性能优化相关面试问题思维导图

14.音视频相关面试问题思维导图

15.核心动画相关面试问题思维导图

About

必会技能

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published