MIT App Inventor是一款圖形化的APP開發(fā)環(huán)境,用戶能夠以拖曳積木的形式開發(fā)Android平臺的應(yīng)用程序。本書以App Inventor 2.0為開發(fā)平臺,結(jié)合大量的具體案例,如音樂搖搖樂、GPS計步器等,深入淺出地介紹了App的開發(fā)過程和App Inventor的編程功能,并且逐步講解第三方API應(yīng)用接口調(diào)用,App和Arduino硬件、Web服務(wù)結(jié)合等高級應(yīng)用。
本書適合中學生和學有余力的小學高年級學生,同時也適用于零基礎(chǔ)的大學生、成年初學者。只要對安卓App開發(fā)感興趣,或者對創(chuàng)客感興趣,本書將是一本不可多得的創(chuàng)客秘籍。
說起App Inventor在我國的發(fā)展,老巫婆(金從軍老師)是一個無法繞開的名字。她和她的丈夫張路*早將App Inventor 2漢化,并推出離線版,為App Inventor的國內(nèi)推廣,做了很多重要的工作。我和我的兒子謝集自學App Inventor 2,全靠她翻譯的幫助文件。有趣的是,我在2014年才從老巫婆的博客上發(fā)現(xiàn)一個細節(jié): 2013年上海創(chuàng)客嘉年華活動中,我和吳俊杰等教師在創(chuàng)客論壇上演講,呼吁創(chuàng)客們關(guān)注中小學教育,坐在*排拿著攝像機的就是她和張路老師。后來她告訴我,那天聽了我們的演講后,他們就下決心要為兒童編程做點事,回到北京就開始做App Inventor 2漢化、翻譯工作。
序言
算起來,我應(yīng)該是App Inventor的國內(nèi)早期用戶了。大概是2011年年初,我在一個兒童編程軟件的排行榜中了解到App Inventor。作為一個信息技術(shù)學科的教師,我早已無法忍受教材的滯后,非常期待能開設(shè)一門關(guān)于智能手機編程方面的校本課程。其實早在2010年左右,我就買過幾本安卓手機編程的書,但覺得相對于中學生來說,Java的技術(shù)門檻有點高,最終放棄。通過一些介紹性的文章,我了解到App Inventor類似Scratch,是不可多得的兒童編程平臺?上Ш檬露嗄,我久等還是沒有下文。2011年認識了李大維,通過向他打聽情況,得知這個項目被谷歌關(guān)閉了,很失望。幸而很快又陸陸續(xù)續(xù)地傳來一些新消息,說App Inventor項目最后移交到美國麻省理工學院(MIT)云云。于是繼續(xù)等待,有空就上網(wǎng)搜搜新動態(tài)。2012年,我終于能訪問MIT的App Inventor項目網(wǎng)站了。雖然是英文版,但是摸索著還是成功地編寫了幾個小程序。我到現(xiàn)在還清楚地記著,編寫的第一個程序就是點擊我的名字,然后跳轉(zhuǎn)到我的新浪博客。那段時間,我正好在寫《S4A和互動媒體技術(shù)》一書,忙里偷閑中給S4A編寫了一個App,實現(xiàn)了將手機上的方向、加速度和位置等傳感器信息以遠程傳感器的形式,傳送給S4A。這一App的編寫過程后來也整理為一篇文章,作為《S4A和互動媒體技術(shù)》的附錄。那段時間,國內(nèi)還找不到一本關(guān)于App Inventor方面的原創(chuàng)書籍,可參考的資料很少。說起App Inventor在我國的發(fā)展,老巫婆(金從軍老師)是一個無法繞開的名字。她和她的丈夫張路最早將App Inventor 2漢化,并推出離線版,為App Inventor的國內(nèi)推廣,做了很多重要的工作。我和我的兒子謝集自學App Inventor 2,全靠她翻譯的幫助文件。有趣的是,我在2014年才從老巫婆的博客上發(fā)現(xiàn)一個細節(jié): 2013年上海創(chuàng)客嘉年華活動中,我和吳俊杰等教師在創(chuàng)客論壇上演講,呼吁創(chuàng)客們關(guān)注中小學教育,坐在第一排拿著攝像機的就是她和張路老師。后來她告訴我,那天聽了我們的演講后,他們就下決心要為兒童編程做點事,回到北京就開始做App Inventor 2漢化、翻譯工作!陡覍WApp Inventor 2》這本書從策劃到編寫、出版,經(jīng)歷了好幾年,周期比較長。和出版社簽約是在2013年,因為App Inventor一直沒有出官方版本,我就有合理的借口拖延下去。但是,關(guān)于App Inventor的校本課程,則從2013年下半年就開始開課了,書中的很多案例都是在教學中日積月累而成的。2014年年底,MIT在廣州市教育信息中心建立了官方服務(wù)器后,我們終于開始了寫書的工作。本書的第1章、第2章主要由張潔負責撰寫,第3章、第4章主要由鄭祥負責撰寫,第5章則由我完成。鄭祥是溫州四中負責創(chuàng)客教育的教師,他2012年參加工作后就和我?guī)熗浇Y(jié)對,開始研究App Inventor、Arduino等技術(shù),是國內(nèi)最早進入創(chuàng)客教育領(lǐng)域的中小學教師之一,在國內(nèi)創(chuàng)客教育圈內(nèi)已經(jīng)小有名氣。張潔是南京師范大學的教育技術(shù)碩士(現(xiàn)為南京市第十三中學教師),2014年開始在溫州中學實習,并開設(shè)App Inventor課程。這兩位教師在App Inventor方面都積累了大量的教學經(jīng)驗。因為我工作繁忙,在書的目錄設(shè)計方面考慮不太周到,讓鄭祥和張潔多走了一些彎路,做了些無用功。在長達一年多的編寫時間中,我們不斷推翻原稿,增加新內(nèi)容,收獲還是很多的。關(guān)于App Inventor和Arduino、Web的互動,是本書的亮點所在。我們希望廣大創(chuàng)客教師能從本書中得到啟發(fā): 只有軟硬結(jié)合,才能做出更多有趣的創(chuàng)客作品。我們尤其不希望大家僅把App Inventor看成一款學習編程的軟件,而是希望中小學生能夠通過對手機中各種傳感器的研究,以及對手機能支持的開源硬件的研究,設(shè)計出各種創(chuàng)意應(yīng)用。感謝南京師范大學的劉正云同學為本書做了認真的審讀,并提出了寶貴的意見。感謝叢書主編鄭劍春老師,能容忍我們一而再、再而三的拖稿,最后還給這本書很高的評價。也感謝我的兒子謝集,書中有幾個案例是他編寫的。因為他對編程的喜歡,才讓我有了更大的決心去做兒童編程的推廣工作。由于水平有限,書中難免存在疏漏和不足,懇請讀者批評指正。書中涉及的全部軟件和源文件,都可以在我的博客上下載(博客地址: http: //blog.sina.com.cn/xiezuoru),部分工具還會繼續(xù)更新。歡迎發(fā)送郵件到xiezuoru@vip.qq.com,期待得到你們真摯的反饋。
謝作如2016年5月
謝作如:溫州市百名領(lǐng)軍教師,溫州市名師,溫州市551人才,浙江省教育科研先進工作者,溫州大學客座研究員及碩士生導師,南京師范大學客座研究員,北京師范大學訪問學者,浙江省中小學信息技術(shù)教育分會理事,中國教育技術(shù)協(xié)會信息技術(shù)專業(yè)委員會理事。2010年獲菁華杯全國新課程中學優(yōu)質(zhì)課評選一等獎,2011年獲全國高中信息技術(shù)優(yōu)質(zhì)課大賽特等獎。
第1章Android和App Inventor11.1Android簡介11.1.1智能手機與Android系統(tǒng)11.1.2Android系統(tǒng)的廣泛應(yīng)用21.2Android的應(yīng)用開發(fā)工具41.2.1Android常見開發(fā)工具41.2.2Android圖形化開發(fā)工具51.3App Inventor 2概述61.3.1App Inventor 2可以做什么61.3.2App Inventor 2在中國6第2章初識App Inventor 282.1App Inventor 2環(huán)境搭建82.1.1賬戶申請82.1.2登錄App Inventor 292.1.3App Inventor 2程序調(diào)試92.1.4App Inventor 2操作界面132.2我的第一個App162.2.1新建項目172.2.2界面設(shè)計182.2.3編程實現(xiàn)202.2.4程序調(diào)試202.3基本組件與運算212.3.1基本組件212.3.2基本運算222.3.3基礎(chǔ)任務(wù)1溫度轉(zhuǎn)換器242.4變量與流程控制272.4.1變量272.4.2基礎(chǔ)任務(wù)2點我282.4.3流程控制的分支結(jié)構(gòu)292.4.4基礎(chǔ)任務(wù)3計算成績等級302.4.5流程控制的循環(huán)結(jié)構(gòu)322.4.6基礎(chǔ)任務(wù)4計算前n個正整數(shù)的和322.5自定義過程與函數(shù)352.5.1過程的定義與調(diào)用362.5.2基礎(chǔ)任務(wù)5過程362.5.3函數(shù)的定義與調(diào)用382.5.4基礎(chǔ)任務(wù)6求和小程序382.6媒體組件392.6.1常用組件介紹392.6.2基礎(chǔ)任務(wù)7音樂播放器402.7傳感器組件432.7.1方向傳感器組件432.7.2基礎(chǔ)任務(wù)8指南針432.7.3位置傳感器組件462.7.4基礎(chǔ)任務(wù)9經(jīng)緯度轉(zhuǎn)換器472.7.5加速度傳感器組件492.7.6基礎(chǔ)任務(wù)10加速度觀察器492.7.7計時器組件512.7.8基礎(chǔ)任務(wù)11最后10秒鐘51目錄 跟我學App Inventor 2〖2〗〖2〗 〖1〗 第3章App Inventor 2的編程實踐553.1App專題1健康測試儀553.2App專題2音樂搖搖樂613.3App專題3打地鼠653.4App專題4相片通信錄713.5App專題5GPS計步器82第4章App Inventor 2和Arduino944.1Arduino和Mixly944.1.1Arduino簡介944.1.2Mixly簡介954.2基于藍牙的串口通信964.2.1試驗1將Arduino的串口信息顯示在手機上974.2.2試驗2用手機串口控制Arduino1014.3范例1手機控制的LED燈1034.3.1工作流程分析1034.3.2硬件連接1034.3.3界面設(shè)計1044.3.4編程實現(xiàn)1054.3.5程序調(diào)試1074.4范例2揮手機器人1094.4.1結(jié)構(gòu)搭建1094.4.2運行原理分析1094.4.3界面設(shè)計1114.4.4編程實現(xiàn)1124.4.5程序調(diào)試1144.5讓手機擁有更多傳感器1154.5.1讓手機顯示外界溫度1154.5.2接收多個傳感器數(shù)據(jù)1184.5.3拓展應(yīng)用122第5章App Inventor 2和Web1245.1App Inventor 2的網(wǎng)絡(luò)組件1245.1.1網(wǎng)絡(luò)微數(shù)據(jù)庫及范例1245.1.2Web瀏覽框及范例1265.1.3Web客戶端及范例1275.2Web客戶端的高級應(yīng)用1315.2.1中文編碼和構(gòu)建HTTP頭部信息1315.2.2解析Json1355.3體驗物聯(lián)網(wǎng)技術(shù)1395.3.1中國移動物聯(lián)網(wǎng)開放平臺的設(shè)置1405.3.2編寫GPS自動記錄器1455.3.3物聯(lián)網(wǎng)應(yīng)用擴展1485.4App云服務(wù)器的設(shè)計1495.4.1App云服務(wù)器的設(shè)計1495.4.2App云用戶管理系統(tǒng)的開發(fā)1505.4.3App云用戶管理系統(tǒng)的應(yīng)用1555.5綜合范例聽寫神器1585.5.1開發(fā)背景1585.5.2工作原理分析1585.5.3服務(wù)器端和WebAPI的設(shè)計1595.5.4教師端的設(shè)計1625.5.5學生端的設(shè)計1635.5.6聽寫神器的使用說明166附錄AApp Inventor 2離線版的安裝與使用169附錄BAI伴侶的安裝與使用178參考文獻184后記185