Giáo trình mô đun Phát triển ứng dụng di động cơ bản (Nghề: Tin học ứng dụng - Trình độ: Trung cấp) - Trường CĐ Kinh tế - Kỹ thuật Bạc Liêu trình bày các bài học về: Cài đặt Android Studio; Phát triển ứng dụng di động, Xây dựng ứng dụng Android;... Mời các bạn cùng tham khảo giáo trình tại đây.
UBND TỈNH BẠC LIÊU TRƯỜNG CĐ KINH TẾ - KỸ THUẬT BẠC LIÊU GIÁO TRÌNH MƠ ĐUN: PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG CƠ BẢN NGÀNH: TIN HỌC ỨNG DỤNG TRÌNH ĐỘ: TRUNG CẤP Ban hành kèm theo Quyết định số: /QĐ- … ngày … tháng … năm …… Hiệu trưởng trường CĐ Kinh tế - Kỹ thuật Bạc Liêu Bạc Liêu, năm 2020 TUYÊN BỐ BẢN QUYỀN Tài liệu thuộc loại sách giáo trình nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo Mọi mục đích khác mang tính lệch lạc sử dụng với mục đích kinh doanh thiếu lành mạnh bị nghiêm cấm LỜI GIỚI THIỆU Giáo trình biên soạn theo đạo Ban giám hiệu, nhằm nâng cao chất lượng giảng dạy Biên soạn theo thời gian nhằm đáp ứng kế hoạch đào tạo Phát triển ứng dụng di động mô đun chuyên môn bắt buộc chuyên ngành Tin học ứng dụng Cấu trúc giáo trình gồm 10 bài: Bài 1: Cài đặt Android Studio chạy ứng dụng Hello World; Bài 2: Giao diện người dùng; Bài 3: Trình chỉnh sửa bố cục; Bài 4: Hiện thị cuộn văn bản; Bài 5: Activities Intents; Bài 6: Vòng đời trạng thái hoạt động; Bài 7: Ý định ngầm; Bài 8: Trình gỡ lỗi; Bài 9: Kiểm tra mã; Bài 10: Thư viện hỗ trợ Xin chân thành cảm ơn Ban Giám hiệu, Phòng Đào tạo, Khoa Cơ – Luật – Nghiệp vụ đạo góp ý cho giáo trình Cảm ơn sâu sắc quý Thầy cô thuộc tổ chuyên môn Tin học tận tình phản biện, góp ý chun mơn cho giáo trình Mặc dù cố gắng biên soạn giáo trình đầy đủ nội dung theo chương trình trình bày trực quan, logic, dễ hiểu Nhưng chắn không tránh khỏi thiếu xót, mong thơng cảm mong tiếp tục nhận góp ý quý Thầy cô bạn học sinh Tác giả MỤC LỤC BÀI VIẾT CHƯƠNG TÌNH ĐẦU TIÊN BẰNG KOTLIN 1 Chạy chương trình Kotlin 2 Sửa đổi chương trình 3 Mở rộng chương trình 4 Tóm tắt BÀI VIẾT CHƯƠNG TRÌNH CHÚC MỪNG SINH NHẬT BẰNG KOTLIN Tạo lời chúc mừng sinh nhật Tạo sử dụng biến In biểu ngữ sinh nhật có đường viền 11 Tạo bánh với nhiều lớp nến 20 Mã giải pháp 25 Khắc phục cố 25 Tóm tắt 26 BÀI .28 TẢI VÀ CÀI ĐẶT ANDROID STUDIO 28 Làm quen với Android Studio 28 Xác minh yêu cầu hệ thống 28 Tải Android Studio xuống 29 Cài đặt Android Studio .29 Tạo ứng dụng bạn 35 Chạy ứng dụng bạn thiết bị ảo (trình mơ phỏng) 40 Tìm tệp dự án bạn 45 Tóm tắt 47 BÀI .49 TẠO ỨNG DỤNG THIỆP SINH NHẬT 49 Thiết lập ứng dụng Chúc mừng sinh nhật 49 Thêm Chế độ xem văn vào bố cục 56 Thêm tạo kiểu cho văn 65 Tóm tắt 69 BÀI .71 THÊM HÌNH ẢNH VÀO ỨNG DỤNG ANDROID 71 Thiết lập ứng dụng 71 Thêm ImageView 74 Áp dụng phương pháp lập trình hay 83 Tóm tắt 87 Bài tập 87 Tạo số ngẫu nhiên .90 Tạo lớp Xúc xắc 91 Trả giá trị lượt gieo xúc xắc 95 Thay đổi số mặt xúc xắc 97 Tuỳ chỉnh xúc xắc .98 Áp dụng phương pháp lập trình hay 100 Tóm tắt 101 BÀI .102 TẠO ỨNG DỤNG TƯƠNG TÁC DICE ROLLER (ĐỔ XÚC XẮC) .102 Thiết lập ứng dụng 103 Tạo bố cục cho ứng dụng 105 Giới thiệu Activity 115 Tạo Nút (Button) tương tác 118 Thêm logic đổ xúc xắc 124 Áp dụng phương pháp lập trình hay 126 Tóm tắt 128 BÀI .130 THÊM HÀNH VI CÓ ĐIỀU KIỆN TRONG KOTLIN 130 Đưa định mã 130 Tạo trò chơi Lucky Dice Roll (Xúc xắc may mắn) 134 Sử dụng câu lệnh when .136 Mã giải pháp 138 Tóm tắt 139 BÀI 10 141 THÊM HÌNH ẢNH VÀO ỨNG DỤNG DICE ROLLER 141 Cập nhật bố cục cho ứng dụng 142 Thêm hình ảnh xúc xắc 146 Sử dụng hình ảnh xúc xắc 149 Hiện hình ảnh xúc xắc dựa lượt tung xúc xắc 155 Áp dụng phương pháp lập trình hay 159 Tóm tắt 160 Tài liệu tham khảo: 161 GIÁO TRÌNH MƠ ĐUN Tên mô đun: Phát triển ứng dụng di động Mã mơ đun: MĐ21 Vị trí, tính chất, ý nghĩa vai trị mơ đun: - Vị trí: Mơ đun Phát triển ứng dụng di động mô đun bắt buộc thuộc khối mô đun chuyên ngành đào tạo chuyên môn nghề Mô đun Phát triển ứng dụng di động bố trí sau học xong mơn học chung chương trình đào tạo trung cấp - Tính chất: Chương trình mơ đun bao gồm số nội dung Phát triển ứng dụng di động bản, việc sử dụng ứng dụng di động đời sống, học tập hoạt động nghề nghiệp sau - Ý nghĩa vai trị mơ đun: Khi Điện thoại thơng minh “phổ cập” phát triển Mobile App – Ứng dụng di động điều tất yếu Ngày có nhiều ứng dụng di động đời Ta kể đến app mạng xã hội, mua sắm, ví điện tử ứng dụng sức khỏe, đặt hàng… Rất nhiều doanh nghiệp thay đổi cách tiếp cận khách hàng họ cách chuyển sang di động Tất muốn tiếp cận đối tượng mục tiêu nhanh chóng với trợ giúp công nghệ Các tảng sử dụng rộng rãi để phát triển ứng dụng di động Android IOS Trong Android chiếm thị phần lớn Mục tiêu mô đun: - Về kiến thức: Cách cài đặt sử dụng Android Studio IDE Cách sử dụng quy trình phát triển để xây dựng ứng dụng Android Cách tạo dự án Android từ mẫu có sẵn Cách thêm thơng báo nhật ký vào ứng dụng bạn cho mục đích gỡ lỗi - Về kỹ năng: Tạo trình giả lập (thiết bị ảo) để chạy ứng dụng bạn máy tính Tạo chạy ứng dụng thiết bị ảo thực - Về lực tự chủ trách nhiệm: + Nhận thức tầm quan trọng, có trách nhiệm việc phất triển sử dụng ứng dụng di động đời sống, học tập nghề nghiệp; + Có thể làm việc độc lập theo nhóm việc áp dụng số nội dung mô đun vào học tập, lao động hoạt động khác Nội dung mô đun: BÀI VIẾT CHƯƠNG TÌNH ĐẦU TIÊN BẰNG KOTLIN Giới thiệu Trong học này, bạn viết chương trình ngơn ngữ Kotlin thơng qua trình soạn thảo tương tác mà bạn chạy trình duyệt Bạn xem chương trình (program) loạt lệnh để hệ thống thực số hành động Ví dụ: bạn viết chương trình tạo thiệp sinh nhật Trong chương trình đó, bạn viết lệnh in văn chúc mừng tính tuổi người dựa năm sinh họ Cũng giống việc bạn sử dụng ngôn ngữ người để giao tiếp với người khác, bạn sử dụng ngơn ngữ lập trình để giao tiếp với hệ điều hành máy tính May mắn thay, ngơn ngữ lập trình phức tạp ngơn ngữ người logic! Các ứng dụng Android viết ngơn ngữ lập trình Kotlin Kotlin ngôn ngữ đại tạo để giúp nhà phát triển viết mã cách hiệu lỗi Sẽ khó để bạn vừa học cách tạo ứng dụng, vừa học kiến thức lập trình lúc Vì vậy, bắt đầu số nội dung lập trình trước bắt đầu tạo ứng dụng Việc làm quen với số kiến thức lập trình không bước quan trọng để tạo ứng dụng, mà giúp bạn sau dễ dàng tạo ứng dụng khố học Trình soạn thảo mã công cụ giúp bạn viết mã, giống cách trình xử lý văn giúp bạn tạo tài liệu văn Trong học lập trình này, bạn sử dụng trình soạn thảo Kotlin (Kotlin editor) có tính tương tác trình duyệt Tức bạn cài đặt phần mềm để thực bước trình phát triển ứng dụng Mục tiêu: Sử dụng trang web tương tác trình duyệt web Tạo, thay đổi, hiểu chạy chương trình Kotlin tối giản có chức thông báo Sản phẩm bạn tạo ra: Một chương trình ngơn ngữ lập trình Kotlin thơng báo bạn chạy chương trình Nội dung: 1 Chạy chương trình Kotlin Trong nhiệm vụ này, bạn sử dụng trình soạn thảo trang web để bắt đầu lập trình ngơn ngữ Kotlin Sử dụng trình soạn thảo mã có tính tương tác Thay cài đặt phần mềm máy tính, bạn sử dụng cơng cụ dùng tảng web để tạo chương trình Trên trình duyệt, mở https://developer.android.com/training/kotlinplayground Thao tác mở cơng cụ lập trình dùng trình duyệt Bạn thấy trang tương tự ảnh chụp hình đây, có trình soạn thảo mã Đây mã chương trình trình soạn thảo: Chạy mã chương trình Quy trình chạy chương trình mà bạn tạo khơng khác biệt q nhiều so với quy trình chạy chương trình trình xử lý văn máy tính Điểm khác biệt bạn chạy chương trình để hồn thành nhiệm vụ (hoặc chơi trò chơi), bạn chủ yếu quan tâm đến việc mà chương trình làm cho bạn mà khơng quan tâm đến mã giúp chương trình hoạt động Khi lập trình, bạn xem làm việc với mã thực tế tạo nên điều kỳ diệu Hãy xem chương trình làm gì! i Trong trình soạn thảo, góc bên phải, tìm biểu tượng hình tam giác màu trắng xanh lục nhấp vào biểu tượng để chạy chương trình ii Nhìn vào ngăn iii Nhận thấy Hello, world! xuất hình Giờ đây, bạn biết chương trình làm gì: Chương trình in (hoặc xuất ra) thông báo hello world (xin chào giới) Biên dịch (compile) trình dịch mã chương trình Kotlin sang dạng mà hệ thống chạy Q trình biên dịch hồn tất đồng nghĩa với việc khơng có lỗi chương trình ngăn cản q trình chạy Nếu có cố cố xuất ngăn Sửa đổi chương trình Thay đổi mã Hello World (Xin chào giới) Hãy thay đổi chương trình khác chút i Thay đổi văn "Hello, world!" thành "Happy Birthday!" ii Chạy chương trình cách nhấp vào nút chạy màu xanh dương xanh lục bên phải iii Ở cùng, bạn thấy Happy Birthday! xuất hiện, minh hoạ Cách thức hoạt động Làm để thực việc này? Có vẻ cần nhiều mã để in nội dung bất kỳ! Nếu bạn muốn người bạn viết "Hello, world!" ("Xin chào, giới!") mảnh giấy, có nhiều thông tin ngụ ý Nếu bạn đơn giản nói với họ "Hãy viết "‘Hello world!" mảnh giấy này", họ đưa giả định thơng tin bạn khơng nhắc tới Ví dụ: họ cho họ cần dùng bút bạn muốn họ viết câu chữ cái! Máy tính khơng đưa giả định nên bạn phải cung cấp lệnh xác bao gồm tất bước Giống ngơn ngữ tiếng Anh có cấu trúc, ngơn ngữ lập trình Nếu học ngơn ngữ khác bạn hiểu thách thức việc học ngữ pháp, tả, bảng chữ ký hiệu từ vựng Việc học lập trình có thách thức tương tự, may mắn thay, trình phức tạp logic nhiều so với việc học, chẳng hạn học tiếng Anh Tìm hiểu phần chương trình Bây giờ, xem qua mã Mỗi phần chương trình phục vụ mục đích cụ thể bạn cần tất phần để chạy chương trình Hãy bắt đầu với từ fun từ ngơn ngữ lập trình Kotlin fun viết tắt hàm (function) Hàm phần chương trình thực nhiệm vụ cụ thể Lưu ý: Kotlin có nhiều từ đặc biệt có ý nghĩa cụ thể Khi học lập trình ngơn ngữ Kotlin, bạn học từ Chúng thường gọi từ khoá từ dành riêng main tên hàm Các hàm đặt tên nên bạn phân biệt hàm Hàm tên main hàm (hoặc hàm chính) gọi bạn chạy chương trình Mọi chương trình Kotlin cần hàm tên main Tên hàm đứng trước hai dấu ngoặc đơn () Bên dấu ngoặc đơn, bạn đưa thông tin vào hàm để sử dụng Giá trị đưa vào hàm gọi "argument" (đối số) viết tắt args Bạn tìm hiểu thêm đối số sau Chú ý cặp dấu ngoặc nhọn {} sau dấu ngoặc đơn Bên hàm mã hoàn thành nhiệm vụ Những dấu ngoặc nhọn chứa dịng mã Nhìn vào dịng mã nằm dấu ngoặc nhọn: Dòng mã in văn Happy Birthday! println yêu cầu hệ thống in dòng văn Bạn đưa văn cần in vào bên dấu ngoặc đơn Lưu ý văn in nằm dấu ngoặc kép Điều cho hệ thống biết nội dung bên dấu ngoặc kép in xác thiết lập Để thật in văn bản, toàn lệnh println phải nằm hàm main Vậy xong Chương trình Kotlin nhỏ Mở rộng chương trình In nhiều thơng báo Tuyệt vời! Bạn in dòng văn println() function Tuy nhiên, bạn đưa dịng lệnh vào hàm tuỳ thích cần để hồn thành nhiệm vụ Thêm hình ảnh xúc xắc vào ứng dụng i Trong Android Studio, nhấp vào View (Xem) > Tool Windows (Cửa sổ cơng cụ) > Resource Manager (Trình quản lý tài ngun) trình đơn nhấp vào thẻ Resource Manager (Trình quản lý tài nguyên) bên trái cửa sổ Project (Dự án) ii Nhấp vào biểu tượng dấu + bên Resource Manager (Trình quản lý tài nguyên), chọn Import Drawables (Nhập đối tượng vẽ) Thao tác mở trình duyệt tệp iii Tìm chọn tệp hình ảnh xúc xắc Bạn chọn tệp đầu tiên, chọn tệp khác giữ phím Shift iv Nhấp vào Open (Mở) v Nhấp vào Next (Tiếp theo) nhấp vào Import (Nhập) để xác nhận bạn muốn nhập tài nguyên 147 vi Nếu tệp nhập thành công, hình ảnh xuất Resource Manager (Trình quản lý tài nguyên) (app>res>drawable) cho ứng dụng bạn 148 Khá lắm! Trong nhiệm vụ tiếp theo, bạn sử dụng hình ảnh ứng dụng Lưu ý quan trọng! – Bạn tham chiếu đến hình ảnh mã Kotlin nhờ mã nhận dạng tài nguyên (resource ID): R.drawable.dice_1 R.drawable.dice_2 R.drawable.dice_3 R.drawable.dice_4 R.drawable.dice_5 R.drawable.dice_6 Sử dụng hình ảnh xúc xắc Thay hình đại diện mẫu i Trong Design Editor (Trình chỉnh sửa thiết kế), chọn ImageView ii Trong Attributes (Thuộc tính) phần Declared Attributes (Thuộc tính khai báo), tìm thuộc tính srcCompat cơng cụ (được đặt thành hình đại diện) Hãy nhớ thuộc tính srcCompat cơng cụ sử dụng hình ảnh bạn cung cấp chế độ xem Design Android Studio Chỉ nhà phát triển thấy 149 hình ảnh xây dựng ứng dụng Hình ảnh khơng xuất bạn thực chạy ứng dụng trình mơ thiết bị iii Nhấp vào xem trước tí hon hình đại diện Thao tác mở hộp thoại chọn tài nguyên để sử dụng cho ImageView iv Chọn dice_1 vẽ nhấp OK Ồ! ImageView chiếm tồn hình Tiếp theo, bạn điều chỉnh chiều rộng chiều cao ImageView để không che khuất Button v Trong cửa sổ Attributes (Thuộc tính) bên Constraints Widget (Tiện ích điều kiện ràng buộc), tìm thuộc tính layout_width layout_height Các thuộc tính đặt thành wrap_content, nghĩa ImageView cao rộng nội dung (hình ảnh nguồn) bên vi Thay vào đó, đặt chiều rộng cố định 160dp chiều cao cố định 200dp ImageView Nhấn Enter ImageView nhỏ nhiều 150 Bạn thấy Button gần với hình ảnh vii Thêm khoảng cách 16dp từ nút tới lề cách thiết lập lề Constraint Widget (Tiện ích điều kiện ràng buộc) Sau chế độ xem Design (Thiết kế) cập nhật, ứng dụng trông đẹp nhiều! 151 Lưu ý: Hãy sử dụng pixel không phụ thuộc vào mật độ (dp) làm đơn vị xác định kích thước cho kích thước hình ảnh thay đổi theo tỷ lệ cho phù hợp với độ phân giải pixel thiết bị Thay đổi hình ảnh xúc xắc nhấp vào nút Bố cục khắc phục, bạn cần cập nhật lớp MainActivity để sử dụng hình ảnh xúc xắc Hiện có lỗi ứng dụng, tệp MainActivity.kt Nếu cố chạy ứng dụng, bạn thấy lỗi dựng này: cục i Lý mã bạn tham chiếu đến TextView mà bạn xoá khỏi bố Mở MainActivity.kt (app > java > com.example.diceroller > MainActivity.kt) Mã tham chiếu đến R.id.textView, Android Studio không nhận ii Trong phương thức rollDice(), chọn mã tham chiếu đến TextView xố mã 152 iii Vẫn rollDice(), tạo biến tên diceImage thuộc kiểu ImageView Đặt giá trị cho biến với ImageView bố cục Sử dụng phương thức findViewById() truyền mã nhận dạng tài nguyên cho ImageView, R.id.imageView làm đối số nhập Nếu bạn muốn biết cách tìm mã nhận dạng tài nguyên ImageView, xem id đầu cửa sổ Attributes (Thuộc tính) Khi bạn tham chiếu đến mã nhận dạng tài nguyên mã Kotlin, nhớ nhập mã (chữ i thường, chữ V hoa, khơng có dấu cách) Nếu khơng, Android Studio báo lỗi iv Thêm dòng mã để kiểm tra xem bạn cập nhật ImageView cách nhấp vào nút hay không Kết tung xúc xắc lúc "2" mà sử dụng hình ảnh dice_2 cho mục đích thử nghiệm Mã gọi phương thức setImageResource() ImageView, truyền mã nhận dạng tài nguyên cho hình ảnh dice_2 Thao tác cập nhật ImageView hình thấy hình ảnh dice_2 Phương thức rollDice() có dạng sau: v Chạy ứng dụng để xác minh ứng dụng chạy khơng có lỗi Ứng dụng khởi động với hình trống, ngoại trừ nút Roll (Tung xúc xắc) 153 Sau bạn nhấn vào nút, hình ảnh xúc xắc cho thấy giá trị xuất Tuyệt!! 154 Bạn thay đổi hình ảnh dựa thao tác nhấn nút! Bạn đạt mục tiêu rồi! Hiện hình ảnh xúc xắc dựa lượt tung xúc xắc Rõ ràng kết xúc xắc lúc Hãy sử dụng logic luồng điều khiển mà bạn học lớp học lập trình Thêm hành vi có điều kiện cho lượt tung xúc xắc để hình ảnh xúc xắc phù hợp xuất hình tuỳ thuộc vào lượt tung xúc xắc ngẫu nhiên Trước bạn bắt đầu nhập mã, định hình cách ứng dụng hoạt động cách viết số mã giả để mơ tả điều xảy Ví dụ: Nếu người dùng tung xúc xắc 1, hình ảnh dice_1 Nếu người dùng tung xúc xắc 2, hình ảnh dice_2 v.v Lưu ý: Mã giả (pseudocode) nội dung mơ tả khơng thức cách hoạt động số mã Mã giả sử dụng số phần tử ngơn ngữ máy tính if / else, mô tả thứ theo cách dễ hiểu Mã hữu ích cho việc hoạch định phương pháp tiếp cận trước định toàn chi tiết Bạn viết mã giả câu lệnh if / else Kotlin dựa giá trị lần tung xúc xắc 155 Tuy nhiên, việc viết if / else cho trường hợp lại việc lặp lặp lại Bạn biểu thị logic theo cách đơn giản câu lệnh when Như ngắn gọn (ít mã hơn)! Hãy sử dụng phương pháp ứng dụng bạn Cập nhật phương thức rollDice() i Trong phương thức rollDice(), xố dịng mã đặt mã nhận dạng tài nguyên hình ảnh thành hình ảnh dice_2 lần ii Thay câu lệnh when để cập nhật ImageView dựa giá trị diceRoll sau Khi bạn thực xong thay đổi, phương thức rollDice() có dạng iii Chạy ứng dụng Việc nhấp vào nút Roll (Tung xúc xắc) thay đổi hình ảnh xúc xắc thành giá trị khác Ứng dụng hoạt động rồi! 156 Tối ưu hoá mã Nếu muốn viết mã súc tích nữa, bạn thay đổi mã sau Việc khơng ảnh hưởng đến người dùng ứng dụng, mã ngắn lặp lại Bạn nhận thấy lệnh gọi tới diceImage.setImageResource() xuất lần câu lệnh when Điểm thay đổi trường hợp mã nhận dạng tài nguyên sử dụng Tức bạn tạo biến để lưu trữ mã nhận dạng tài nguyên để sử dụng Sau đó, bạn gọi diceImage.setImageResource() lần mã truyền vào mã nhận dạng tài nguyên i Thay mã mã sau 157 Có khái niệm đây, biểu thức when thực trả giá trị Với đoạn mã này, biểu thức when trả mã nhận dạng tài nguyên Mã nhận dạng tài nguyên lưu trữ biến drawableResource Sau đó, bạn sử dụng biến để cập nhật tài nguyên hình ảnh hiển thị ii Xin lưu ý when gạch chân màu đỏ Nếu di chuột qua đó, bạn thấy thơng báo lỗi: when' expression must be exhaustive, add necessary 'else' branch (biểu thức "when" phải đầy đủ, thêm nhánh "else" cần thiết) Lỗi giá trị biểu thức when gán cho drawableResource, when phải đầy đủ — phải xử lý tất trường hợp để giá trị trả về, bạn thay đổi sang xúc xắc 12 mặt Android Studio đề xuất thêm nhánh else Bạn khắc phục cách thay đổi trường hợp thành else Các trường hợp từ đến giống nhau, tất trường hợp khác bao gồm else xử lý iii Chạy ứng dụng để đảm bảo ứng dụng hoạt động bình thường Hãy nhớ kiểm tra đủ để đảm bảo bạn thấy tất số xuất với hình ảnh xúc xắc từ đến Đặt thông tin mô tả nội dung thích hợp ImageView Hiện bạn thay số tung xúc xắc hình ảnh, trình đọc hình khơng biết điểm số xúc xắc Để khắc phục điều này, sau bạn cập nhật tài nguyên hình ảnh, cập nhật thông tin mô tả nội dung ImageView Thông tin mô tả nội dung phải văn mô tả nội dung ImageView để trình đọc hình diễn đạt nội dung Trình đọc hình đọc thành tiếng thơng tin mơ tả nội dung Vì vậy, hình ảnh lượt tung xúc xắc "6" xuất hình, thơng tin mơ tả nội dung đọc "6" thành tiếng 158 Lưu ý: Thường thơng tin mơ tả nội dung phải sử dụng tài nguyên chuỗi dịch sang ngôn ngữ khác Tuy nhiên, đề cập đến vấn đề học sau Áp dụng phương pháp lập trình hay Cải thiện trải nghiệm mở ứng dụng Khi người dùng mở ứng dụng lần đầu tiên, ứng dụng có giao diện trống (ngoại trừ nút Roll (Tung xúc xắc)) Điều bất thường Có thể người dùng khơng biết điều xảy ra, vậy, thay đổi giao diện người dùng thấy lượt tung xúc xắc ngẫu nhiên lần đầu khởi động ứng dụng tạo Activity Khi đó, người dùng dễ dàng hiểu thao tác nhấn vào nút Roll (Tung xúc xắc) tạo lượt tung xúc xắc Nhận xét mã 159 Bạn thêm nhận xét (comment) vào mã để mơ tả xảy đoạn mã Sau bạn thực tất thay đổi này, phương thức rollDice() bạn trông giống sau Chúc mừng bạn hoàn tất ứng dụng Dice Roller! Bây bạn mang ứng dụng chơi bạn bè! Tóm tắt Sử dụng setImageResource() để thay đổi hình ảnh xuất ImageView Sử dụng câu lệnh luồng điều khiển biểu thức if / else biểu thức when để xử lý nhiều trường hợp ứng dụng, chẳng hạn hình ảnh tuỳ theo hoàn cảnh Bài tập Thực việc sau: Thêm viên xúc xắc khác vào ứng dụng cho nút Roll (Tung xúc xắc) cho kết xúc xắc Bạn cần ImageViews bố cục? Điều ảnh hưởng đến mã MainActivity.kt? Kiểm tra làm: Sau hồn thiện, ứng dụng bạn phải khơng gặp lỗi chạy cho thấy hai viên xúc xắc 160 Tài liệu tham khảo: [1] https://developer.android.com/courses/pathways/android-basics-kotlin-one [2] https://developer.android.com/courses/pathways/android-basics-kotlin-two [3] https://developer.android.com/courses/pathways/android-basics-kotlin-three [4] https://developer.android.com/courses/pathways/android-basics-kotlin-four 161 ... 161 GIÁO TRÌNH MƠ ĐUN Tên mơ đun: Phát triển ứng dụng di động Mã mô đun: MĐ21 Vị trí, tính chất, ý nghĩa vai trị mơ đun: - Vị trí: Mơ đun Phát triển ứng dụng di động mô đun bắt buộc thuộc khối mô. .. nội dung Phát triển ứng dụng di động bản, việc sử dụng ứng dụng di động đời sống, học tập hoạt động nghề nghiệp sau - Ý nghĩa vai trị mơ đun: Khi Điện thoại thơng minh “phổ cập” phát triển Mobile... thuộc khối mô đun chuyên ngành đào tạo chuyên môn nghề Mô đun Phát triển ứng dụng di động bố trí sau học xong mơn học chung chương trình đào tạo trung cấp - Tính chất: Chương trình mơ đun bao gồm