《App Inventor開發訓練營》是2019年12月人民郵電出版社出版的圖書,作者是金從軍。
基本介紹
- 中文名:App Inventor開發訓練營
- 作者:金從軍
- ISBN:9787115489555
- 頁數:472頁
- 定價:99元
- 出版社:人民郵電出版社
- 出版時間:2019年12月
- 裝幀:平裝
- 開本:16開
內容簡介,圖書目錄,
內容簡介
App Inventor的出現大大降低了編程門檻,沒有程式設計經驗的編程愛好者可以在短時間內創建出炫目的安卓手機套用。本書帶領讀者通過動手實踐數個編程實例來了解程式開發的邏輯。書中內容共分為21章,包含15個完整的套用,覆蓋了遊戲、教學、工具、信息管理以及網路套用等。本書不僅詳細介紹了套用開發的步驟和要點,還針對每種套用的特徵給出了進一步最佳化的建議,忠實還原了套用開發過程中遇到的問題和解決方法,是一本的編程技術與理念並重的實踐指南。
圖書目錄
第 1章 水果配對 1
1.1 遊戲描述 1
1.2 界面設計 2
1.2.1 界面布局 2
1.2.2 組件屬性設定 3
1.2.3 上傳資源檔案 3
1.3 編寫程式——螢幕初始化 4
1.3.1 創建按鈕列表 4
1.3.2 讓按鈕顯示背面圖案 5
1.3.3 創建圖片列表 7
1.3.4 為按鈕指定正面圖案 7
1.3.5 隨機顯示正面圖案 9
1.4 編寫程式——處理按鈕點擊事件 11
1.4.1 流程圖 11
1.4.2 判斷兩個按鈕圖案的異同 12
1.4.3 處理兩個按鈕圖案相同的情況 13
1.4.4 處理兩個按鈕圖案不同的情況 14
1.4.5 代碼的復用——改進按鈕點擊事件處理程式 14
1.4.6 代碼的規整 16
1.4.7 改造閃現計時器的計時事件處理程式 17
1.4.8 測試 17
1.5 編寫程式——控制遊戲時長 21
1.5.1 控制遊戲時長 21
1.5.2 顯示剩餘時間 21
1.5.3 將剩餘時間計入總成績 22
1.6 編寫程式——設計遊戲結尾 22
1.6.1 顯示遊戲得分 22
1.6.2 保存遊戲得分 24
1.6.3 處理對話框的按鈕選擇 25
1.6.4 創建遊戲初始化過程 25
1.7 程式的測試與修正 26
1.7.1 選取列表項錯誤 26
1.7.2 重新開始遊戲時點擊按鈕無回響 29
1.7.3 重新開始遊戲時圖案排列不變 30
1.7.4 快速點擊按鈕時系統提示錯誤 31
1.8 代碼整理 32
第 2章 計算器 35
2.1 功能描述 35
2.1.1 符號及術語 35
2.1.2 具體功能 36
2.2 用戶界面設計 36
2.3 編寫程式——實現常規操作 37
2.3.1 輸入數字 37
2.3.2 點擊算符 38
2.3.3 點擊等號 39
2.3.4 代碼測試及說明 40
2.4 編寫程式——實現連續運算 40
2.4.1 代碼修改 40
2.4.2 測試及代碼修正 40
2.5 編寫程式——實現小數輸入 41
2.5.1 編寫按鈕點擊程式 41
2.5.2 代碼測試及程式修正 42
2.6 編寫程式——實現輔助功能 43
2.6.1 求相反數 43
2.6.2 刪除末尾數字 43
2.6.3 清除後數 44
2.6.4 清除全部信息 44
2.7 代碼回顧 44
2.7.1 要素關係圖 44
2.7.2 關鍵環節的狀態分析 44
第3章 九格拼圖 46
3.1 遊戲描述 46
3.2 界面設計 47
3.2.1 界面布局 47
3.2.2 資源檔案規格 48
3.3 難點分析 49
3.3.1 程式的主流程 49
3.3.2 術語解釋 49
3.3.3 難點分析 51
3.4 編寫程式——初始化 52
3.4.1 初始化全局變數 52
3.4.2 初始化組件屬性 55
3.4.3 螢幕初始化事件處理程式 55
3.4.4 跟蹤程式的執行過程 56
3.5 編寫程式——移動碎片 56
3.6 編寫程式——判斷拼圖是否成功 59
3.7 編寫程式——計算遊戲得分 60
3.7.1 統計遊戲耗時 60
3.7.2 統計碎片移動次數 60
3.7.3 計算遊戲得分 60
3.8 編寫程式——遊戲結束 61
3.8.1 提取歷史記錄 61
3.8.2 更新歷史記錄 62
3.8.3 處理對話框的完成選擇事件 63
3.8.4 添加重新開始按鈕 64
3.9 代碼整理 64
3.9.1 代碼清單 64
3.9.2 要素關係圖 65
第4章 天氣預報——基礎版 67
4.1 功能描述 67
4.2 預備知識 68
4.2.1 Web API簡介 68
4.2.2 HTTP協定 69
4.2.3 Web客戶端組件 72
4.2.4 JSON數據簡介 73
4.2.5 將JSON數據轉為列表數據 74
4.2.6 App Inventor處理鍵值對列表 75
4.3 請求數據 76
4.3.1 用戶界面設計 76
4.3.2 請求數據 77
4.3.3 將數據保存為檔案 79
4.4 數據結構分析 80
4.4.1 城市信息 81
4.4.2 七日預報 81
4.4.3 小時預報 82
4.4.4 生活指數 83
4.4.5 天氣實況 83
4.4.6 數據狀態 83
4.4.7 數據更新時間 84
4.5 呈現一組簡單的數據——城市信息 84
4.5.1 提取分類信息 84
4.5.2 顯示單項信息 85
4.5.3 規範信息的顯示格式 86
4.6 選擇顯示各類信息 87
4.6.1 基礎數據準備 87
4.6.2 顯示分類信息 90
4.7 程式的改進 95
4.7.1 判斷請求數據的結果 95
4.7.2 為數據添加單位 95
4.7.3 顯示當前數據類型 96
第5章 天氣預報——圖片版 98
5.1 功能描述 98
5.2 用戶界面設計 98
5.2.1 頁面布局 98
5.2.2 添加並設定組件 100
5.3 編寫程式——請求並整理數據 101
5.3.1 請求數據 101
5.3.2 數據整理 102
5.4 呈現有圖示的數據——七日天氣預報 106
5.4.1 設定用戶界面組件的可視屬性 106
5.4.2 圖示檔案的獲取 107
5.4.3 圖示的呈現 107
5.4.4 顯示文字信息 110
5.5 顯示其他種類信息 113
5.5.1 顯示城市基本信息 113
5.5.2 顯示生活指數信息 114
5.5.3 顯示天氣實況信息 116
5.5.4 顯示小時預報 118
5.6 其他功能 120
5.6.1 選擇顯示分類信息 121
5.6.2 默認設定與數據保存 121
5.7 功能完善與小結 123
5.7.1 診斷網路連線 123
5.7.2 項目小結 123
第6章 打地鼠 125
6.1 遊戲描述 125
6.2 素材準備 126
6.3 界面設計 126
6.4 編寫程式——地鼠的閃現 127
6.4.1 難點分析 128
6.4.2 編寫代碼 128
6.5 編寫程式——命中地鼠與得分 131
6.5.1 顯示擊打次數 131
6.5.2 命中地鼠 131
6.6 編寫程式——時間控制與遊戲結束 132
6.6.1 顯示遊戲剩餘時間 132
6.6.2 編寫遊戲結束程式 134
6.6.3 回套用戶的選擇 135
6.7 代碼整理 136
第7章 幼兒加法啟蒙 138
7.1 功能描述 138
7.2 素材準備 139
7.2.1 素材清單 139
7.2.2 素材規格 140
7.3 技術要點 140
7.3.1 用圖片組件顯示數字 140
7.3.2 用畫布組件繪製圖形 140
7.3.3 用隨機數合成顏色 140
7.3.4 用計時器組件控制套用的節奏 140
7.4 界面設計 140
7.5 編寫程式——套用初始化 143
7.5.1 按鈕初始化 143
7.5.2 動態設定螢幕的標題屬性 144
7.5.3 動態組件初始化 144
7.5.4 出題並顯示題目 145
7.5.5 測試 145
7.6 編寫程式——題目圖示 145
7.6.1 畫圓遇到的問題 146
7.6.2 繪製數量合適的彩色圓形 147
7.6.3 添加加號 147
7.6.4 階段測試 148
7.7 編寫程式——答題 148
7.7.1 顯示輸入的數值 149
7.7.2 清除錯誤答案 150
7.7.3 判斷對錯 150
7.7.4 顯示下一題 151
7.7.5 禁用選擇時長功能 152
7.7.6 隱藏圖示 153
7.7.7 階段測試 153
7.8 編寫程式——時間控制及得分 153
7.8.1 控制練習時長 153
7.8.2 計算並顯示得分 154
7.8.3 選擇練習時長 154
7.9 編寫程式——遊戲結束與重新開始 155
7.9.1 提取、顯示及保存歷史記錄 155
7.9.2 處理用戶選擇 156
7.9.3 最終測試 157
7.10 代碼整理 157
7.10.1 代碼清單 157
7.10.2 要素關係圖 158
第8章 簡易家庭賬本——登錄 160
8.1 概念解釋 160
8.1.1 什麼是套用 160
8.1.2 什麼是資料庫 161
8.2 App Inventor中的資料庫組件 163
8.2.1 數據的組織 163
8.2.2 新增數據項(記錄) 164
8.2.3 數據的查詢 165
8.2.4 刪除數據項 166
8.2.5 修改數據項 167
8.2.6 數據的請求與保存 167
8.3 家庭賬本套用的功能模組設定 168
8.4 登錄頁面的功能描述 169
8.4.1 預設選項功能 169
8.4.2 密碼保護功能 170
8.5 數據模型 170
8.5.1 對象模型 170
8.5.2 變數模型 171
8.5.3 列表的文本表示 171
8.5.4 登錄頁面的數據模型 171
8.5.5 界面設計 172
8.6 頁面邏輯 174
8.6.1 載入保存預設選 174
8.6.2 密碼設定 174
8.6.3 登錄功能 174
8.7 編寫程式 175
8.7.1 螢幕初始化 175
8.7.2 檔案管理器收到文本 175
8.7.3 開始按鈕點擊程式 177
8.8 測試 177
8.9 附錄:代碼背包功能簡介 178
第9章 簡易家庭賬本——導航選單與收入記錄 179
9.1 導航選單螢幕 179
9.1.1 數據模型 179
9.1.2 界面設計 179
9.1.3 頁面邏輯 180
9.1.4 編寫程式 180
9.1.5 測試 181
9.2 收入記錄的功能描述 182
9.3 收入記錄的數據模型 182
9.3.1 對象模型 182
9.3.2 變數模型 183
9.3.3 預設項列表 184
9.4 界面設計 184
9.5 頁面邏輯 185
9.6 編寫程式 187
9.6.1 發現過程 187
9.6.2 螢幕初始化 188
9.6.3 新增數據 189
9.6.4 修改數據 190
9.6.5 刪除數據 193
9.6.6 永久保存數據 193
9.6.7 返回主選單 194
9.7 測試與改進 195
9.8 附錄:計時器組件中的時間信息 197
9.8.1 什麼是時間點 197
9.8.2 設定日期格式 198
9.8.3 創建毫秒時間點 199
第 10章 簡易家庭賬本——系統設定 200
10.1 功能描述 200
10.2 數據模型 201
10.2.1 支出二級分類 201
10.2.2 支出專項 202
10.2.3 家庭成員與支付方式 202
10.2.4 重置密碼 202
10.3 界面設計 202
10.3.1 頁面布局 202
10.3.2 組件屬性設定 203
10.4 界面邏輯 204
10.4.1 螢幕初始化 204
10.4.2 設定預設項 204
10.4.3 重置密碼 205
10.4.4 恢復默認設定 205
10.5 編寫程式——選擇設定項 205
10.5.1 螢幕初始化 205
10.5.2 設定組件的顯示與隱藏 206
10.5.3 原始數據的綁定 207
10.5.4 組件初始化 208
10.5.5 設定選擇框的完成選擇事件 208
10.6 設定支出二級分類 208
10.6.1 選擇支出一級分類 208
10.6.2 修改二級分類 209
10.6.3 刪除二級分類 210
10.6.4 新增二級分類 210
10.6.5 測試 211
10.7 設定支出專項 212
10.7.1 選中某個支出專項 213
10.7.2 新增與修改 213
10.7.3 刪除 216
10.7.4 測試 217
10.7.5 測試中的問題 218
10.8 設定家庭成員及支付方式 220
10.8.1 選擇設定項 220
10.8.2 新增與修改簡單項 220
10.8.3 刪除簡單項 221
10.8.4 測試 222
10.9 完善新增與修改功能 223
10.10 其他設定及返回主選單 224
10.10.1 密碼重置 224
10.10.2 恢復默認設定 225
10.10.3 返回主選單 226
第 11章 簡易家庭賬本——支出記錄 227
11.1 功能描述 227
11.2 數據模型 228
11.2.1 對象模型 228
11.2.2 變數模型 229
11.2.3 預設項列表 230
11.3 界面設計 230
11.4 界面邏輯 231
11.5 編寫程式 233
11.5.1 編寫過程 233
11.5.2 螢幕初始化 236
11.5.3 選擇一級分類 237
11.5.4 新增及修改支出記錄 237
11.5.5 選擇已輸入項及刪除選中項 238
11.5.6 輸入信息的永久保存 238
11.5.7 返回主選單 239
11.6 測試與改進 239
11.6.1 螢幕初始化 240
11.6.2 新增支出記錄 241
11.6.3 修改及刪除 241
11.6.4 保存與返回 242
11.6.5 改進 242
第 12章 簡易家庭賬本——收支查詢 244
12.1 功能描述 244
12.1.1 收入查詢 244
12.1.2 支出查詢 245
12.2 數據模型 245
12.2.1 對象模型 245
12.2.2 動態變數模型 246
12.3 界面設計 247
12.4 技術準備——繪製動態表格 248
12.4.1 表格的屬性 249
12.4.2 繪製單頁數據表格 251
12.4.3 繪製多頁表格 254
12.4.4 選中一行數據 257
12.4.5 選中行的閃爍效果 257
12.4.6 顯示頁碼 260
12.5 界面邏輯 261
12.6 編寫程式——聲明全局變數並創建過程 263
12.6.1 名副其實的變數 263
12.6.2 不變的變數 264
12.6.3 可以充當變數的過程——有返回值的過程 264
12.6.4 改變世界的過程——無返回值過程 269
12.7 編寫程式——事件處理 272
12.7.1 螢幕初始化 272
12.7.2 日期選擇事件 273
12.7.3 篩選條件選擇程式 273
12.7.4 主篩選項選擇程式 274
12.7.5 查詢按鈕點擊程式 274
12.7.6 劃屏翻頁事件 274
12.7.7 選中單行數據程式 275
12.7.8 與刪除單行數據相關的程式 275
12.7.9 數據導出 277
12.7.10 批量刪除 277
12.7.11 返回主選單 278
12.8 測試與改進 278
12.8.1 收入查詢測試 278
12.8.2 支出查詢測試 282
12.8.3 功能改進——提供操作反饋 289
第 13章 簡易家庭賬本——年度收支匯總 292
13.1 功能描述 292
13.2 數據模型 293
13.2.1 表格數據 293
13.2.2 折線圖數據 294
13.2.3 全局變數 295
13.3 技術準備——繪製折線圖 296
13.3.1 繪製坐標軸 297
13.3.2 繪製圖例 298
13.3.3 寫標註文字 299
13.3.4 繪製折線圖 301
13.4 用戶界面設計 303
13.5 頁面邏輯 304
13.5.1 螢幕初始化 304
13.5.2 選中匯總項目 305
13.5.3 數據篩選與匯總 305
13.5.4 返回主選單 305
13.6 編寫程式——創建過程 305
13.6.1 可以充當變數的過程——有返回值過程 305
13.6.2 與繪圖相關的過程——無返回值過程 308
13.7 編寫程式——事件處理程式 312
13.7.1 螢幕初始化 312
13.7.2 匯總按鈕點擊程式 313
13.7.3 匯總項目選擇程式 313
13.7.4 返回按鈕點擊程式 314
13.8 測試與改進 314
13.8.1 測試 314
13.8.2 改進 315
第 14章 簡易家庭賬本——分類匯總及其他 318
14.1 技術準備——繪製餅狀圖 319
14.1.1 數據模型 319
14.1.2 繪圖方法 320
14.2 年度收入分類匯總 324
14.2.1 數據模型 324
14.2.2 頁面邏輯 325
14.2.3 編寫代碼——過程與事件處理程式 325
14.3 年度個人收入匯總 331
14.4 年度支出分類匯總 333
14.5 年度專項支出匯總 336
14.6 月度收入、支出分類匯總 338
14.7 使用手冊 341
14.7.1 用戶界面設計 341
14.7.2 編輯並上傳HTML 文檔 342
14.7.3 測試 342
14.8 開發心得及改進思路 343
14.8.1 開發心得 343
14.8.2 改進方法及思路 346
第 15章 數學實驗室(一):雞兔同籠 350
15.1 雞兔同籠解法之一——手動枚舉法 350
15.1.1 功能說明 351
15.1.2 用戶界面設計 351
15.1.3 頁面邏輯 353
15.1.4 編寫代碼 353
15.1.5 測試 355
15.1.6 討論 355
15.2 雞兔同籠解法之二——程式枚舉法 356
第 16章 數學實驗室(二):素數問題 358
16.1 N是否為素數 358
16.1.1 最“笨”的算法 358
16.1.2 算法的改進 359
16.2 N以內的素數 360
16.2.1 求N以內的素數 360
16.2.2 改造“N是素數”過程 361
第 17章 數學實驗室(三):公約數與公倍數 363
17.1 求M與N的最大公約數 363
17.1.1 概念陳述 363
17.1.2 概念的數學表示 363
17.1.3 概念的程式表示 364
17.1.4 求任意兩個整數的最大公約數 365
17.2 求M與N的最低公倍數 370
17.2.1 問題的數學表示 370
17.2.2 問題的程式表示 370
17.3 小結 372
第 18章 數學實驗室(四):繪製函式曲線 373
18.1 坐標變換 373
18.1.1 畫布坐標系統 373
18.1.2 平面直角坐標系 375
18.1.3 兩個坐標系之間的坐標變換 377
18.2 繪製坐標軸 377
18.2.1 界面設計 378
18.2.2 編寫代碼 379
18.3 繪製二次函式曲線 382
18.3.1 繪製最簡單的二次曲線 382
18.3.2 繪製任意係數的二次曲線 384
18.3.3 連續改變係數值 386
18.4 繪製三角函式曲線 388
18.4.1 坐標軸的位置 389
18.4.2 編寫過程——繪製正弦函式 389
18.5 小結 391
第 19章 尋找加油站 392
19.1 概述 392
19.1.1 功能描述 392
19.1.2 數據來源 393
19.1.3 術語 393
19.1.4 開發步驟 393
19.2 用戶界面 394
19.3 套用邏輯設計 395
19.4 編寫程式:設定地圖尺寸 395
19.4.1 畫布寬度的計算公式 396
19.4.2 用代碼實現對畫布寬度的設定 396
19.4.3 對代碼的解釋 397
19.5 獲取一張地圖 398
19.5.1 理解靜態地圖API 398
19.5.2 編寫代碼 400
19.6 搜尋加油站 401
19.6.1 理解搜尋API 401
19.6.2 編寫搜尋URL 401
19.6.3 為搜尋URL編寫代碼 401
19.6.4 執行搜尋操作 401
19.6.5 接收伺服器返回的信息 402
19.6.6 為列表選擇框設定可選項 404
19.6.7 在地圖上顯示選中的加油站 405
19.7 中心點的定位 406
19.7.1 GPS定位 406
19.7.2 地址定位 408
19.8 顯示全部加油站 412
19.8.1 為名稱列表添加選項 412
19.8.2 拼接全部加油站的經緯度字串 412
19.9 地圖的左右移動 414
19.10 功能完善及代碼整理 414
19.10.1 隱藏地址布局 414
19.10.2 保存當前地址信息 414
19.10.3 代碼清單 415
第 20章 貪吃蛇 416
20.1 功能說明 416
20.2 用戶界面 417
20.3 繪製背景 418
20.3.1 畫線與畫方塊 418
20.3.2 行列與坐標之間的轉換 418
20.3.3 繪製方塊 419
20.3.4 繪製背景 420
20.4 蛇頭的受控移動 420
20.4.1 描述蛇頭的位置 420
20.4.2 描述蛇頭的方向 420
20.4.3 蛇頭的移動 421
20.4.4 蛇頭的轉向 422
20.5 果子的生成 422
20.6 蛇吃果子 422
20.6.1 記錄蛇身位置 423
20.6.2 蛇身加長 423
20.6.3 果子再生與得分增加 424
20.7 碰壁與自吃 425
20.8 附屬功能 426
20.8.1 暫停與繼續 426
20.8.2 重新開始 426
20.8.3 防止自毀 427
20.8.4 出果位置避開蛇身 428
20.8.5 退出遊戲 428
20.9 代碼整理 428
20.9.1 常量 428
20.9.2 變數 429
20.9.3 有返回值的過程 429
20.9.4 無返回值的過程 430
20.9.5 事件處理程式 431
第 21章 因式分解之十字相乘 432
21.1 功能說明 432
21.1.1 名詞解釋 432
21.1.2 功能描述 432
21.2 用戶界面 433
21.2.1 首頁 433
21.2.2 答題頁 434
21.3 為首頁編寫程式 436
21.3.1 螢幕初始化 436
21.3.2 選擇難度與題量 436
21.3.3 查看歷史記錄 437
21.3.4 開始答題及退出 437
21.4 答題頁頁面邏輯 437
21.5 答題頁初始化 439
21.5.1 顯示狀態信息 439
21.5.2 下拉框數據綁定 440
21.5.3 草紙提示文字 440
21.5.4 題目的生成 441
21.5.5 題目係數——由數值轉化為文本 443
21.5.6 形式答案的顯示 444
21.5.7 題目的顯示 444
21.6 答題 445
21.6.1 選擇答案 446
21.6.2 提交答案 447
21.6.3 出下一題 449
21.6.4 可擦寫草紙 450
21.7 交卷 450
21.7.1 顯示答題結果 451
21.7.2 顯示正確答案 453
21.7.3 保存成績 453
21.7.4 返回首頁或再來一次 455
21.8 區分題目難度 456
21.9 套用功能評估 458
21.10 代碼整理 459
21.10.1 全局變數 459
21.10.2 過程 459
21.10.3 事件處理程式 460
後記 461
附錄A 開發工具、測試方案與學習資源 462
附錄B 不同的App Inventor漢化版本 468