目 錄
第1章 基礎知識 1
1.1 開始Kotlin之旅 1
1.1.1 安裝JDK 3
1.1.2 編譯Kotlin程序 4
1.1.3 運行第一個Kotlin程序 6
1.1.4 在IDE中工作 8
1.2 Kotlin編程語言基礎知識 10
1.2.1 Kotlin知識 10
1.2.2 面向對象程序設計 28
1.3 Kotlin的優(yōu)點 30
1.4 利用Kotlin開發(fā)Android應用程序 31
1.4.1 設置Android Studio 31
1.4.2 構建第一個Android應用程序 34
1.5 Web基礎知識 42
1.5.1 Web的含義 42
1.5.2 超文本傳輸協(xié)議 42
1.5.3 客戶端和服務器 43
1.5.4 HTTP請求和響應 43
1.5.5 HTTP方法 43
1.6 本章小結 44
第2章 構建Android應用程序—俄羅斯方塊游戲 45
2.1 Android概述 45
2.1.1 活動 46
2.1.2 意圖 46
2.1.3 意圖過濾器 47
2.1.4 片段 47
2.1.5 服務 47
2.1.6 加載器 47
2.1.7 內容提供商 47
2.2 理解俄羅斯方塊游戲 48
2.3 創(chuàng)建用戶界面 49
2.3.1 ConstraintLayout 51
2.3.2 定義尺寸資源 54
2.3.3 視圖 56
2.3.4 視圖組 57
2.3.5 定義字符串資源 62
2.3.6 處理輸入事件 65
2.3.7 與SharedPreferences協(xié)同工作 70
2.3.8 實現(xiàn)游戲活動布局 75
2.4 App清單文件 78
2.4.1
81
2.4.2 81
2.4.3 81
2.4.4 82
2.4.5 83
2.4.6 83
2.5 本章小結 83
第3章 俄羅斯方塊游戲的邏輯和功能 84
3.1 實現(xiàn)游戲體驗過程 84
3.1.1 圖塊建模 85
3.1.2 構建應用程序模型 100
3.1.3 創(chuàng)建TetrisView 111
3.2 MVP模式簡介 122
3.2.1 MVP的含義 122
3.2.2 MVP實現(xiàn) 123
3.3 本章小結 123
第4章 設計并實現(xiàn)Messenger后端應用程序 124
4.1 設計Messenger API 124
4.1.1 應用程序編程接口 124
4.1.2 REST 125
4.1.3 設計Messenger API系統(tǒng) 125
4.2 實現(xiàn)Messenger后端 128
4.2.1 PostgreSQL 128
4.2.2 創(chuàng)建新的Spring Boot應用程序 129
4.2.3 Spring Boot概述 132
4.2.4 限制API訪問 154
4.3 將Messenger API部署至AWS上 173
4.3.1 配置AWS上的PostgreSQL 173
4.3.2 向Amazon Elastic Beanstalk部署Messenger API 176
4.4 本章小結 178
第5章 構建Messenger Android App(第1部分) 180
5.1 開發(fā)Messenger App 180
5.1.1 納入項目依賴關系 180
5.1.2 開發(fā)登錄UI 182
5.1.3 設計注冊UI 209
5.2 本章小結 219
第6章 構建Messenger Android App(第2部分) 220
6.1 創(chuàng)建主UI 220
6.1.1 創(chuàng)建MainView 220
6.1.2 創(chuàng)建MainInteractor 222
6.1.3 創(chuàng)建MainPresenter 225
6.1.4 封裝MainView 227
6.1.5 創(chuàng)建MainActivity菜單 238
6.2 創(chuàng)建聊天UI 239
6.2.1 創(chuàng)建聊天布局 239
6.2.2 準備聊天UI模型 241
6.2.3 創(chuàng)建ChatInteractor和ChatPresenter 242
6.3 應用程序設置 249
6.4 Android應用程序測試 259
6.5 執(zhí)行后臺操作 260
6.5.1 AsyncTask 260
6.5.2 IntentService 260
6.6 本章小結 261
第7章 在數(shù)據(jù)庫中存儲信息 262
7.1 與內部存儲協(xié)同工作 262
7.1.1 向內部存儲中寫入文件 262
7.1.2 從內部存儲中讀取私有文件 263
7.1.3 基于內部存儲的示例程序 263
7.1.4 保存緩存文件 277
7.2 與外部存儲協(xié)同工作 277
7.2.1 獲得外部存儲許可 277
7.2.2 媒介的有效性 278
7.2.3 存儲共享文件 279
7.2.4 利用外部存儲緩存文件 279
7.3 網(wǎng)絡存儲 279
7.4 與內容提供商協(xié)同工作 295
7.5 本章小結 306
第8章 Android App的安全和部署 307
8.1 Android應用程序安全 307
8.1.1 內部存儲 307
8.1.2 網(wǎng)絡安全 308
8.1.3 輸入驗證 309
8.1.4 與用戶憑證協(xié)同工作 309
8.1.5 代碼混淆技術 309
8.1.6 廣播接收器的安全性 309
8.1.7 動態(tài)加載代碼 309
8.1.8 服務的安全性 310
8.2 啟用和發(fā)布Android應用程序 310
8.2.1 理解Android開發(fā)者程序策略 311
8.2.2 設置Android開發(fā)者賬號 311
8.2.3 本地化規(guī)劃 311
8.2.4 規(guī)劃同步版本 311
8.2.5 根據(jù)質量標準進行測試 311
8.2.6 構建可發(fā)布的APK 312
8.2.7 規(guī)劃應用程序的Play Store列表 312
8.2.8 將應用程序包上傳至alpha或beta測試 312
8.2.9 設備兼容性定義 312
8.2.10 啟用前報告評估 312
8.2.11 定價和應用程序分發(fā)配置 312
8.2.12 分發(fā)選項的選取 313
8.2.13 應用程序內產品和訂閱設置 313
8.2.14 制定應用程序內容評級 313
8.2.15 發(fā)布應用程序 313
8.2.16 發(fā)布Android應用程序 320
8.3 本章小結 324
第9章 創(chuàng)建Place Reviewer后臺應用程序 325
9.1 MVC設計模式 325
9.1.1 模型 325
9.1.2 視圖 325
9.1.3 控制器 326
9.2 設計并實現(xiàn)Place Reviewer后臺程序 326
9.2.1 用例標識 326
9.2.2 標識數(shù)據(jù) 327
9.2.3 設置數(shù)據(jù)庫 327
9.2.4 實現(xiàn)后臺應用程序 328
9.2.5 將后臺程序連接至Postgres 330
9.2.6 創(chuàng)建模型 330
9.2.7 創(chuàng)建數(shù)據(jù)存儲庫 333
9.2.8 Place Reviewer業(yè)務邏輯實現(xiàn) 334
9.2.9 Place Reviewer后臺應用程序的安全問題 336
9.2.10 基于Spring MVC的Web內容服務 340
9.3 利用ELK管理Spring應用程序日志 343
9.3.1 利用Spring生成日志 343
9.3.2 安裝Elasticsearch 343
9.3.3 安裝Kibana 345
9.3.4 Logstash 346
9.3.5 配置Kibana 347
9.4 本章小結 349
第10章 實現(xiàn)Place Reviewer前端 350
10.1 利用Thymeleaf生成視圖 350
10.1.1 實現(xiàn)用戶注冊視圖 351
10.1.2 實現(xiàn)登錄視圖 365
10.1.3 Google Places API Web服務 369
10.1.4 實現(xiàn)主視圖 371
10.1.5 生成評論 382
10.2 Spring應用程序測試 395
10.2.1 添加測試依賴關系 395
10.2.2 定義配置類 396
10.2.3 利用自定義配置設置配置類 396
10.2.4 編寫第一個測試程序 397
10.3 本章小結 400
后記 401