**為什么要自己開發而不使用官方版本?**
這個問題要看我們的做少兒編程教育的需求是怎么樣的。
scratch本身提供了離線版本以及官網在線平臺供我們使用,這足以滿足我們對于編程教學模塊的需求。但是對于一些教育培訓機構或者學校而言,他們可能需要在此基礎上整合學生信息,整合課程體系,對學生的學習情況進行統一管理和在線數據分析,包括支持課程作品的分享與轉發,構建自己的教學品牌并實現線上的傳播推廣,等等,都需要我們在支持編程教學功能的基礎上,引入線上社區、課程管理、綜合管理等更豐富的功能,而這些就是二次開發的主要工作。
**為什么要選擇3.0?**
不管是從架構還是從UI上,3.0都比2.0都有了很大的改變。
特別是3.0采用HTML5而不是2.0版本使用的flash,隨著H5技術逐漸發展,原本采用flash技術的已經逐漸在向H5轉移,相對于flash來講,H5在頁面的裝載速度上整體上會更快一些,另外也相對較為省電。更為重要的是,flash對于移動端沒什么辦法,IOS壓根就不支持它。Scratch 3.0是可以在手機和平板上運行的,因為H5需要的是Javascript的支持,這在現代瀏覽器上基本都是沒問題的,移動端也不例外。
另外Scratch 3.0是向下兼容的,因此原來2.0的項目在3.0上也是可以運行的,但從實際測試的效果來看,有些2.0的項目還是會讓3.0崩潰。
所以如果計劃采用Scratch的,選擇3.0是肯定的,如果已經采用了2.0的版本,我的建議是逐漸遷移到3.0上,不管怎么說,單單移動端可以運行的理由就足夠了,更不用說其他的一些新的功能比如聲音控制Scratch項目。當然目前來開3.0還有一些功能上不穩定的地方,但在MIT和各位開源工作者的一起努力下,都會逐漸得到解決。
**Scratch 3.0為我們開源了哪些東西?**
[https://github.com/LLK](https://github.com/LLK)是scratch官方的git倉庫。3.0相關的工程主要包括以下幾個:


我們這里主要基于**scratch-gui**項目進行二次開發,它就是一個開源scratch 3.0編輯器,效果就是[https://llk.github.io/scratch-gui/develop/](https://llk.github.io/scratch-gui/develop/)。
在使用它創建作品的基礎上,我們希望能夠實現用戶管理、用戶社區、作品在線編輯和云端保存、作品分享、自定義品牌logo和角色等主要功能。
至于其他的項目,我也還沒有開始研究,但是從項目介紹我們可以知道scratch-paint是繪圖編輯器,scratch-www是像scratch官網一樣的作品社區,scratch-I10n是國際化相關的,而如果想對scratch編輯器本身做更高級的擴展,可以研究scratch-vm項目,它本身也是被包含在scratch-gui項目中了。
下一章我們將開始著手拉取scratch-gui項目的代碼到我們本地,搭建環境將它運行起來。