一位离职的前端同事,最近接了个 React Native
的活儿,遇到许多搞不定的问题,于是找到我帮忙“补课”(没有系统的学习 React Native
,也不具备原生 Android
和 iOS
开发基础知识)。
此前带过另一位前端同事入门 React Native
开发,有段时间甚至一天得花一两个小时,专门视频连线手把手传帮带,帮忙解决各种疑难杂症。
这可能是纯前端开发小伙伴,刚开始接触 APP 开发最头痛的一段。不管是 React Native
还是 Flutter
,虽然都号称跨平台开发,但如果没有相应平台(Android
、iOS
等)的开发基础,还是很难深入的。一般会卡在下面这些问题上:
- 开发环境的搭建和修改,可能涉及到
JDK
、Maven
、Ruby
、Gems
、CocoaPods
等; -
Android
和iOS
项目的一些配置,如build.gradle
、AndroidManifest.xml
、Info.plist
、Podfile
等; -
Android Studio
和XCode
的使用; -
Android
和iOS
原生代码的修改,包括Java
/Kotlin
和Objective-C
/Swift
; -
C/C++
源码编译问题的处理; - 命令行工具的使用,如
Shell
脚本编写、ADB
的使用、react-native run-*
命令的使用等; - 调试工具的使用,如
Flipper
、DevTools
、Reactotron
等; - 各种原生相关的三方库依赖问题处理;
- 由各种缓存所引发的问题处理;
另外,可能还会遇到诸如切换/点击响应很慢、画面卡顿等问题,感觉上没有原生的看上去丝滑。很多人会归咎于非原生,然而大部分时候并非如此。很可能是由于不明白相应的原理,导致写的代码执行效率太差。这是很大一部分纯前端小伙伴的通病。
时间精力允许的情况下,会在这里记录一些相应的问题解决方法。