移動開發(fā)工具/服務(wù)市場日新月異,各種工具和移動后端服務(wù)有的作為產(chǎn)品的一部分功能,有的則自成一個獨立的產(chǎn)品。
本文我們將總結(jié)和推薦當(dāng)下最優(yōu)秀的六款移動開發(fā)工具,其中有些是在本地電腦運行的IDE工具,有些則是云端的網(wǎng)頁IDE,有些定位于企業(yè)應(yīng)用開發(fā),有些則面向個人開發(fā)者甚至學(xué)生。
這些開發(fā)工具的智能化(傻瓜化)程度也千差萬別,有些簡單到只需要拖放就可完成開發(fā),例如EachScape、NSB/AppStudio和Salesforce1,有些則為開發(fā)者提供API在Xcode或Eclipse中開發(fā),例如Appcelerator就服務(wù)于那些使用SDK開發(fā)原生應(yīng)用的開發(fā)者。
從產(chǎn)品模式上來看,有的移動開發(fā)工具與MBaaS(移動后端即服務(wù))服務(wù)綁定,有的則沒有;有些能夠讀取和寫入后端數(shù)據(jù)庫記錄,但這需要開發(fā)者編寫一個RESTful界面,有些則不需要。
這些移動開發(fā)工具也并非盡善盡美,例如支持HTML5的開發(fā)工具可能不支持你喜歡的JavaScript框架。而能夠生成原生或混合APP的開發(fā)工具,可能會提供與PhoneGap Build集成的在線APP開發(fā)服務(wù),但也有工具需要開發(fā)者自己用原生SDK開發(fā)APP。
市面上用于開發(fā)工作的編輯器非常多,筆者會經(jīng)常因為不同的編程語言該如何選擇好用的編輯器而感到糾結(jié)。而在隨后從事 React Native 開發(fā)工作過程中,對相應(yīng)的編輯器做了一些探索和研究,本文總結(jié)了一些非常適合移動應(yīng)用開發(fā)的編輯器和 IDE。
-
官網(wǎng):https://nuclide.io/
-
Github 項目地址:facebook / nuclide(https://github.com/facebook/nuclide)
-
文檔:
-
設(shè)置:https://nuclide.io/docs/editor/setup/
-
Nuclide with React Native:https://nuclide.io/docs/platforms/react-native/
-
支持平臺:Windows、Mac、Linux
-
Licence:開源
-
特性:
-
內(nèi)置調(diào)試
-
遠(yuǎn)程開發(fā)
-
Developing Hack
-
支持 Mercurial
-
工作集
Nuclide 是基于 Atom 之上構(gòu)建的單獨的一個包,其提供可編程性且社區(qū)非?;钴S。它為 React Native、Hack 和 Flow 項目提供一流的開發(fā)環(huán)境。
-
官網(wǎng):https://atom.io/
-
Github 項目地址:atom(https://github.com/atom)
-
文檔:
-
設(shè)置:http://flight-manual.atom.io/
-
Atom with React Native:https://blog.sendbird.com/tutorial-build-a-messaging-app-using-react-native/
-
支持平臺:Windows、Mac、Linux
-
Licence:開源
-
特性:
-
跨平臺編輯
-
內(nèi)置包管理器
-
智能自動補(bǔ)全
-
文件系統(tǒng)瀏覽器
-
多個窗格
-
查找和替換
Atom 是一款現(xiàn)代化、易用、可控的文本編輯器。Atom 被開發(fā)人員廣泛應(yīng)用于多種編程語言。它有一個龐大而活躍的社區(qū),誕生了很多有用的插件。
Atom 常用的包:
-
官網(wǎng):https://www.sublimetext.com/
-
Github 項目地址:SublimeText(https://github.com/SublimeText)
-
文檔:
-
設(shè)置:https://www.sublimetext.com/docs/3/
-
SublimeText for React Native:https://zaicheng.me/2016/06/20/react-native-initial-setup/
-
為 React-JSX 開發(fā)設(shè)置 SublimeText:(http://www.nitinh.com/2015/02/setting-sublime-text-react-jsx-development/)
-
支持平臺:Windows、Mac、Linux
-
Licence:可以免費下載和試用,繼續(xù)使用需購買 License。
-
特性:
-
Goto Anything 功能
-
多個選擇
-
命令終端
-
分心自由模式
-
拆分編輯
-
即時項目開關(guān)
-
插件 API
-
可自定義任何東西
-
跨平臺
-
設(shè)置 React Native:nitinh.com/2015/02/setting-sublime-text-react-jsx-development/
Sublime Text 是一個復(fù)雜的文本編輯器,可用于編寫代碼、做標(biāo)記和編寫普通文本。社區(qū)提供了大量的插件擴(kuò)展其功能。Sublime Text 一直是開發(fā)人員最喜歡的編輯器。
Sublime Text 常用包
-
官網(wǎng):https://code.visualstudio.com/
-
Github 項目地址:Microsoft/vscode(https://github.com/Microsoft/vscode)
-
文檔:
-
設(shè)置:https://code.visualstudio.com/docs
-
使用 Visual Studio Code 開發(fā) React Native 應(yīng)用:https://blogs.msdn.microsoft.com/visualstudio/2016/02/22/develop-reactnative-apps-in-visual-studio-code/
-
支持平臺:Windows、Mac、Linux
-
特性:
-
內(nèi)置 Git 命令
-
可擴(kuò)展并且可定制
Visual Studio Code 是由 Microsoft 為 Windows、Linux 和 OS X 開發(fā)的源代碼編輯器。它是免費和開源的,支持調(diào)試、嵌入式 Git 控件、語法高亮、智能代碼補(bǔ)全、代碼段和代碼重構(gòu)。
擴(kuò)展
-
ReactNative Tools - 此擴(kuò)展為React Native 項目提供了開發(fā)環(huán)境。你可以調(diào)試代碼,從命令終端快速運行 react-native 命令,并使用 IntelliSense 瀏覽 React Native API 的對象、函數(shù)和參數(shù)。
Vim編輯器
-
官網(wǎng):http://www.vim.org/
-
Github 項目地址:vim/vim(https://github.com/vim/vim)
-
文檔:
-
Vim 文檔:http://www.vim.org/docs.php
-
為 React-JSX 設(shè)置 Vim:https://jaxbot.me/articles/setting-up-vim-for-react-js-jsx-02-03-2015
-
License:開源
-
支持平臺:Mac、Linux
-
特性:
-
持久、多層次的撤銷樹
-
廣泛的插件系統(tǒng)
-
支持?jǐn)?shù)百種編程語言和文件格式
-
強(qiáng)大的搜索和替換功能
-
能夠與許多工具集成
Vim 是一種高度可配置的文本編輯器,可以非常高效地創(chuàng)建和更改任何類型的文本。大多數(shù) UNIX 系統(tǒng)都以 “vi” 的形式支持它。許多開發(fā)人員喜歡使用 Vim 進(jìn)行各種編輯工作。Vim 非常穩(wěn)定,并且在不斷發(fā)展而變得更好。
Vim 插件
-
官網(wǎng):https://www.gnu.org/software/emacs/
-
文檔:
-
官方文檔:https://www.gnu.org/software/emacs/documentation.html
-
針對 React Native 的初始設(shè)置:http://www.cyrusinnovation.com/initial-emacs-setup-for-reactreactnative/
-
License:遵循 GPL
-
支持平臺:Windows、Mac、Linux
-
特性:
-
內(nèi)容感知編輯模式,包括語法著色,適用于多種文件類型。
-
完整的內(nèi)置文檔,包括新手教程。
-
支持幾乎所有腳本語言的 Unicode 編碼。
-
高度可定制,使用 Emacs Lisp 代碼或圖形界面。
-
具有用于下載和安裝擴(kuò)展的包系統(tǒng)。
GNU EMACS 是一個可擴(kuò)展、可定制、免費、自由的文本編輯器。
擴(kuò)展
-
web-mode.el - 它是一個自主的 emacs 主模塊,用于編輯 Web模板。它與許多語言兼容,包括 JSX(React)。
-
官網(wǎng):http://spacemacs.org/
-
Github 項目地址:syl20bnr/spacemacs(https://github.com/syl20bnr/spacemacs)
-
文檔:
-
官方文檔:http://spacemacs.org/doc/DOCUMENTATION.html
-
License:開源
-
支持平臺:Windows、Mac、Linux
-
特性:
-
密鑰綁定使用助記符前綴進(jìn)行組織
-
可發(fā)現(xiàn) - 創(chuàng)新的實時顯示可用的鍵綁定。
-
相似的功能具有與之相同的密鑰
-
簡單的查詢系統(tǒng)可以快速找到可用的層、包等。
-
社區(qū)驅(qū)動的配置提供了強(qiáng)大的用戶可調(diào)的包,bug 可被快速修復(fù)。
Spacemacs 是一個社區(qū)驅(qū)動的 Emacs 發(fā)行版 - 最好的編輯器既不是 Emacs 也不是Vim,它是 Emacs 和 Vim 相結(jié)合!
擴(kuò)展
-
React layer - 適用于 React 的 ES6 和 JSX 配置層。它將自動識別 .jsx 和 .react.js 文件。一個用于 React集成的包層。
-
官網(wǎng):https://www.decosoftware.com/
-
Github 項目地址:decosoftware/deco-ide(https://github.com/decosoftware/deco-ide)
-
文檔:
-
官方文檔:https://www.decosoftware.com/docs
-
支持平臺:Mac(僅適用于iOS)
-
License:開源
-
特性:
Deco 是專為 React Native 打造的 IDE。它是一個用于編寫 React Native 應(yīng)用程序的一體化解決方案,無需任何環(huán)境設(shè)置即可下載和使用。Deco 專注于組件重用,并支持用戶對 UI 的實時編輯,從而改進(jìn)了React Native 開發(fā)工作流程。
-
官網(wǎng):https://www.jetbrains.com/webstorm/
-
文檔:
-
官方文檔:https://www.jetbrains.com/webstorm/documentation/
-
使用外部工具:https://blog.jetbrains.com/webstorm/2016/08/using-external-tools/
-
License:收費(單個用戶第一年需支付 129 美元)
-
支持平臺:Windows、Mac、Linux
-
特性:
-
智能編碼協(xié)助
-
支持最新技術(shù)
-
版本控制系統(tǒng)
-
無縫工具集成
-
調(diào)試、跟蹤和測試
-
內(nèi)置終端
WebStorm 建立在開源 IntelliJ 平臺之上,JetBrains 已經(jīng)開發(fā)和完善了15多年。它提供與 VSC、本地歷史功能的緊密集成,具有充滿活力的插件生態(tài)系統(tǒng),是完全可配置的,還提供大量其他的功能。WebStorm 為 React 和 JSX 提供高級支持,并提供 React Native 應(yīng)用程序的核心編碼協(xié)助。
-
官網(wǎng):https://macromates.com/
-
文檔:
-
官方文檔:http://manual.macromates.com/en/
-
License:收費(單個用戶 License 為48.75歐元)
-
支持平臺:Mac
-
特性:
-
CSS 選擇器可確定操作和設(shè)置的范圍
-
快速概述和導(dǎo)航功能彈出
-
可以把你最喜歡的腳本語言作為插件集成
-
從文檔中運行 Shell 命令
-
代碼高亮
-
可與 Xcode 協(xié)作并構(gòu)建 Xcode 項目
TextMate 并不是 IDE,但是通過使用其強(qiáng)大的片段、宏和獨特的范圍界定系統(tǒng),它通??梢蕴峁┘词故蔷幊陶Z言特定的 IDE 都缺乏的功能。React 不直接支持,但是借助下面的插件可以很容易地獲得對大多數(shù) React 代碼所基于的 JSX 的支持。
插件
-
javascript-jsx.tmbundle - 用于JSX(React)的 Textmate Bundle。目前支持語法高亮。
總結(jié)
所有代碼編輯器都具有豐富而強(qiáng)大的功能。且其中的插件和擴(kuò)展都可以適應(yīng) React Native 環(huán)境,因此在遷移到 React-Native 時,我們不必遷移到不同的代碼編輯器。