## **翻譯說明**

本書原著為《App Inventor—Create Your Own Android Apps》,2011年由O'Reilly出版社出版,作者是來自舊金山大學的David Wolber教授、App Inventor發明人、MIT的Hal Abelson教授、谷歌工程師Ellen Spertus以及Liz Looney。
本書針對零基礎的編程學習者,前13章為案例教學,通過對13個簡單應用的逐步講解,學習者可以對編程的過程及基本概念有所了解,并掌握使用App Inventor編程的方法。后面的11章是指南或手冊,從專業角度對編程的概念加以梳理,并針對Android應用特有的傳感器及Web訪問做了系統的介紹,使學習者對編程的認識上升到理論的高度。
本書的英文版來自[BOOK2](http://www.appinventor.org/book2)網站,該作品采用[“署名-非商業性使用-相同方式共享3.0 未本地化版本”](http://creativecommons.org/licenses/by-nc-sa/3.0/)的版權許可協議,而譯文遵從同樣的[4.0版國際許可協議](http://creativecommons.org/licenses/by-nc-sa/4.0/)。中文版地址:http://www.17coding.net

## **作者簡介**

本書的主創作者David Wolber來自美國舊金山大學,是一位計算機科學專業的教授,他喜歡籃球、閱讀、政治、哲學、心理學。他使用Python語言講授計算機科學導論,最近又在一個特殊課程中,使用App Inventor for Android講授計算機編程入門,旨在讓那些非計算機專業的學生也能創造出自己的應用軟件作品。
## **譯者簡介**

譯者在新浪微博及博客上自稱“老巫婆”,本科為物理學,做過大學教師、創業者、銷售主管、程序員、開發項目經理、IT培訓教師等,喜愛游戲及編程,最近發現喜歡翻譯工作,因此才有了這本《App Inventor——Create Your Own Adroid Apps》的中文譯本。
## **背景知識**
### **身世**
App Inventor for Android簡稱App Inventor,最初是谷歌公司提供的一個開源的web應用,現在由麻省理工學院(MIT)負責維護及運營。
### **歷史**
該應用由谷歌公司的Hal Abelson創建,于2010年7月12日上線運行,2010年12月15日公開發布。2011年下半年,谷歌公司公布了應用的源碼,關閉了服務器,投資創建了MIT移動學習中心。該中心負責App Inventor的后續開發及運營維護,并于2012年3月發布了App Inventor的MIT版本,此后,又于2013年12月6日發布了App Inventor 2,并將此前的版本命名為“經典App Inventor”。
### **創建背景**
App Inventor的創建依據是結構主義的學習理論,該理論強調主動學習,認為編寫程序將成為激發強大思想的有效工具。在此理論的影響下,從20世紀60年代開始,在MIT的Logo小組以及Logo語言發明人Seymour Papert的積極努力下,一系列與計算機及教育有關的活動在整個美國相繼發展起來,并一直持續至今。包括樂高頭腦風暴機器人(Lego Mindstorms)、StarLogo語言以及App Inventor在內的一些列與學習有關的發明,都是這些活動的組成部分。
## **開發準備**
### **開發環境**
任何一臺可以通過**瀏覽器**訪問**互聯網**的**計算機**,都可以作為開發的硬件環境,App Inventor的運行環境為瀏覽器,請使用**非IE**瀏覽器。
### **賬戶申請**
使用App Inventor需要用谷歌賬戶進行登錄,以便進行個人作品的保存。因此首先訪問[http://www.google.com](http://www.google.com/),點擊右上角“登錄”,進入登錄頁面后,選擇“創建賬戶”,填寫相關的注冊信息之后,還需要進行電話短信驗證,兒童最后由父母來代為申請。賬戶申請成功后,會自動轉為登錄狀態。
### **首次進入App Inventor開發環境**
在瀏覽器中輸入[http://ai2.appinventor.mit.edu](http://ai2.appinventor.mit.edu/),進入登錄頁面,要求再次輸入密碼。輸入密碼后點擊“登錄”,出現提示頁面,告知你登錄App Inventor需要使用你的谷歌賬戶,但不會將你的個人信息和密碼開放給App Inventor。
選擇“Allow(允許)”,之后進入App Inventor的歡迎頁面,要求你填寫一份簡短的自愿調查,以便了解用戶并改進產品。可以選擇“立即參與(Take Survey Now)”、“稍后參與(Take Survey Later)”或“不參與(Never Take Sruvey)”。無論是否參與調查,最終將進入另一個歡迎頁面(每次進入開發環境之前,都會看到這個歡迎頁面)。該頁面的兩個鏈接會分別打開一個窗口,說明如何設置開發的測試設備(Android設備或模擬器),這個頁面有兩個信息值得注意:①模擬器和USB連接的測試設備目前只支持蘋果和windows操作系統,不支持Linux;②開發環境不久將實現對IE的支持,言外之意現在不支持IE。
點擊“continue”按鈕,進入最后一個歡迎頁面,提示你尚未建立任何項目,并提示你如何建立新項目;另一個提示是,如果你曾經建立過項目,但在這里看不到,推測你可能之前使用的是版本1.0,并提供了1.0版本的鏈接。鼠標點擊任意位置,正式進入開發環境。
### **開發測試之一:WiFi連接**
開發過程中可以用Android設備對應用進行實時測試,但前提是在Android設備上安裝“[AI伴侶](http://www.17coding.net/download/MITAI2Companion.apk)”軟件,掃描下面圖01的條碼可實現軟件的下載及安裝:

**圖 01 用條碼掃描軟件掃描下載AI伴侶**
測試設備具體連接方法如下:
1\. 在Android設備上運行AI伴侶,如圖02;

**圖 02 測試連接:手機上的操作**
2\. 在電腦上App Inventor開發環境中點擊“connect--AI Companion>”,系統自動生成一個二維碼,以及對應的六個字母的編碼,如圖03所示;

**圖 03 測試連接:電腦上的二維碼及編碼**
3\. 在手機上可以直接輸入編碼,并點擊“connect with code”,或掃描二維碼,即可建立連接;
4\. 開發中的應用將在手機上運行。
### **開發測試之二:USB連接**
#### **電腦端的操作**
1\. 下載[aiStarter](http://vdisk.weibo.com/s/vCICwOO7Zj9H);
2\. 以administration身份登錄windows;將aiStarter安裝在默認的C:盤上;
3\. 運行aiStarter。
#### **手機端設置**
1\. 下載并安裝[AI伴侶](http://www.17coding.net/download/MITAI2Companion.apk);
2\. 設置手機的USB調試模式:設置->開發者選項->選中USB調試;
3\. 運行AI伴侶;
#### **連接手機與電腦**
在App Inventor開發環境里選擇“連接->USB”,稍等片刻即可。經測試Nexus S可以成功連接。
#### **提示**
使用USB連接進行實時測試,整個安裝連接過程是否順利,取決于很多因素,列舉如下:
1\. 安卓設備的型號(MIT網站提供):
* Nexus One
* Nexus S
2\. 安裝aiStarter時必須以administration身份登錄windows;
3\. 手機上打開USB調試模式。
### **開發體驗**
為了解決國內用戶連接App Inventor可能出現的限制,我們正在嘗試將App Inventor的開發環境移植到非谷歌的服務器上,并對環境進行了漢化。目前這項工作正在進行中,為了讓用戶盡早體驗到使用App Inventor開發Android應用的快樂,我們將測試版本向用戶開放。測試版本暫時沒有做用戶登錄設定,您所創建的應用對全體用戶可見。點擊本頁面右上角的“開發體驗”按鈕即可進入開發環境。
### **屏幕切換案例**
[SwitchScreen.apk](http://www.17coding.net/download/0/SwitchScreen.apk)
[SwitchScreen.aia](http://www.17coding.net/download/0/SwitchScreen.aia)
### **用AI2開發的俄羅斯方塊**
[Tetris_singleListItem.apk](http://www.17coding.net/download/0/Tetris_singleListItem.apk)
- 簡介
- 序言
- 前言
- 第 1 章 Hello 貓咪
- 第 2 章 油漆桶
- 第 3 章 打地鼠
- 第 4 章 開車不發短信
- 第 5 章 瓢蟲快跑
- 第 6 章 巴黎地圖旅游
- 第 7 章 安卓,我的車在哪?
- 第 8 章 總統測驗
- 第 9 章 木琴
- 第 10 章 出題及答題
- 第 11 章 廣播中心
- 第 12 章 遙控機器人
- 第 13 章 亞馬遜掌上書店
- 第 14 章 理解應用的結構
- 第 15 章 軟件工程與應用調試
- 第 16 章 應用中的存儲
- 第 17 章 創建動畫應用
- 第 18 章 程序中的決策:條件塊
- 第 19 章 數據列表編程
- 第 20 章 循環
- 第 21 章 定義過程
- 第 22 章 數據庫
- 第 23 章 傳感器
- 第 24 章 與Web API通信