"58同城iOS客户端Hybrid框架探索"
本文主要介绍了58同城iOS客户端Hybrid框架的设计和演进过程中遇到的问题,以及解决方案。Hybrid框架是指同时使用Native与Web的App, Native界面具有良好的用户体验,但是不易动态改变,且开发成本较高。因此,很多主流App都采用Native与Web混合的方式搭建。
1. 通讯方式以及通讯框架
在Hybrid框架中,Web与Native之间的通讯是首要考虑的问题。最初,58App采用了AJAX请求的方式进行通讯,但是这种方式存在内存泄露问题,且Native在回调给Web结果时无法确定回调给哪个WebView。为了解决这个问题,58iOS客户端采用了JavaScriptCore.framework框架,通过JavaScriptCore.framework框架,可以实现Web与Native之间的双向通讯。
2. 缓存原理及缓存框架
缓存是提升Web页面响应速度的一个有效手段。58iOS客户端采用了缓存机制来对Web资源进行缓存,提高了页面的加载速度。缓存框架的设计需要考虑到缓存的有效性、缓存的更新机制等问题。
3. 性能
iOS8推出了WebKit框架,WKWebView是WKWebKit框架的核心组件,WKWebView在性能上远优于UIWebView,并且提供了一些新的功能。但是,WKWebView不支持自定义缓存。58iOS客户端经过调研和测试,发现了一些从UIWebView升级到WKWebView的可行解决方案。
4. 耦合
58iOS客户端最初的Hybrid框架设计过于简单,导致Web载体页渐渐变得十分臃肿,继承关系十分复杂。为了解决这个问题,58iOS客户端采用了模块化设计,使用MVC模式来组织代码,降低了耦合度,提高了代码的可维护性和可扩展性。
58同城iOS客户端Hybrid框架探索中遇到的问题和解决方案为读者提供了有价值的参考。 Hybrid框架的设计需要考虑到通讯方式、缓存机制、性能优化和耦合度控制等多个方面。