一位離職的前端同事,最近接了個 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
等; - 各種原生相關的三方庫依賴問題處理;
- 由各種快取所引發的問題處理;
另外,可能還會遇到諸如切換/點選響應很慢、畫面卡頓等問題,感覺上沒有原生的看上去絲滑。很多人會歸咎於非原生,然而大部分時候並非如此。很可能是由於不明白相應的原理,導致寫的程式碼執行效率太差。這是很大一部分純前端小夥伴的通病。
時間精力允許的情況下,會在這裡記錄一些相應的問題解決方法。