PPT地址:js in iOS Dev
iOS开发中常用到与js交互的技术,本文总结一些这方面的参考资料:
iOS x js
iOS有很多和js相关的原生组件和库,例如显示网页的UIWebView、WKWebView,执行JS的JavaScriptCore。
UIWebView
UIWebView的使用方法可以参考苹果官方文档和唐巧博客里的总结:
UIWebView - UIKit | Apple Developer Documentation
WKWebView
UIWebView的使用方法可以参考苹果官方文档,实践中遇到的问题现旗有总结过:
WKWebView - UIKit | Apple Developer Documentation
JavaScriptCore
JavaScriptCore的使用方法可以苹果官方文档和以下几篇博客:
JavaScriptCore | Apple Developer Documentation
iOS JavaScriptCore使用 | 刘彦玮的技术博客
Cross-Platform
跨平台开发是现在的热门,例如:
Mobile App Development & App Creation Software - Xamarin
都具有开发App的能力。最为常见的js跨平台开发iOS应用的方式还属ReactNative,Weex和NativeScript。
ReactNative
ReactNative可以使用JS写Native代码,它是基于React框架的,可以参考一下网站:
React Native | A framework for building native apps using React
GitHub - reactnativecn/react-native-guide: React Native指南汇集了各类react-native学习资源、开源App和组件
React Native通信机制详解 « bang’s blog
Weex
Weex则是基于Vue框架的,可以参考一下网站:
Weex中文文档 · weexteam/article Wiki · GitHub
Weex原理概述 · Issue #32 · weexteam/article · GitHub
NativeScript
NativeScript则是基于Angular框架的,相对前两者不是很火,可以参考官网:
Hot Patching
热补丁是指通过js或其他脚本技术,在App上线之后,下发脚本对App代码进行热更新,更新原理一般都要用到MethodSwizzling,MethodSwizzling技术可以查看一下网址:
常见的热更新技术有WaxPatch和JSPatch,网易的AppPatch,以及一些动态App的方式。可参考以下几个网站:
WaxPatch
JSPatch
JSPatch 实现原理详解 · bang590/JSPatch Wiki · GitHub
AppPatch
Dynamic App
动态App方案是用Objective-C编写代码,代码通过JS等中间语言实现动态性,解决了不会JS的iOS程序员想写动态App的烦恼,有以下的方案:
滴滴 iOS 动态化方案 DynamicCocoa 的诞生与起航 - CocoaChina_让移动开发更简单
最后可以看一下这篇文章,是对iOS动态化技术演变的一个很好的总结
Programming Method
编程思想上,iOS也经常借鉴前端开发的思想,例如组件化,函数式编程,MVVM,Reactive编程等。
组件化
函数式编程
GitHub - ipader/SwiftGuide: 这份指南汇集了Swift语言主流学习资源,并以开发者的视角整理编排。http://dev.swiftguide.cn
MVVM & Reactive
GitHub - ReactiveCocoa/ReactiveCocoa: Streams of values over time
GitHub - ReactiveX/RxSwift: Reactive Programming in Swift
状态管理
GitHub - ReSwift/ReSwift: Unidirectional Data Flow in Swift - Inspired by Redux
异步编程
GitHub - mxcl/PromiseKit: Promises for Swift & ObjC
Swift 并行编程现状和展望 - async/await 和参与者模式
网友评论