SlideShare a Scribd company logo
1 of 18
Download to read offline
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÀI TẬP MÔN HỌC
IT3910 – PROJECT 1 – 2015-2016
Giảng viên hướng dẫn : PGS.TS Trịnh Văn Loan
Sinh viên thực hiện : Nguyễn Văn Thiệu – 20133750
Lớp : KSTN-CNTT-K58
HÀ NỘI 2015
Project 1: Viết App Chát Text Trên Android
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 2
Mục Lục
..............................................................................................................................1
IT3910 – PROJECT 1 – 2015-2016....................................................................1
Lời mở đầu...........................................................................................................3
CHƯƠNG 1. MÔ TẢ YÊU CẦU.......................................................................4
1.1. Mô tả yêu cầu bài toán ........................................................................................... 4
1.2. Biểu đồ use case....................................................................................................... 4
CHƯƠNG 2. THIẾT KẾ CHI TIẾT ................................................................5
2.1. Thiết kế lớp.............................................................................................................. 5
2.1.1 Biểu đồ lớp.............................................................................................................................. 5
2.1.2. Thiết kế chi tiết lớp theo mô hình hướng đối tượng MVC................................................ 7
2.2. Thiết kế cơ sở dữ liệu / cấu trúc dữ liệu...............................................................11
CHƯƠNG 3. CHƯƠNG TRÌNH MINH HOẠ ..............................................12
3.1. Xây dựng chương trình .........................................................................................12
3.2. Kiểm thử đơn vị .....................................................................................................12
3.3. Kết quả chương trình ............................................................................................13
CHƯƠNG 4. KẾT LUẬN VÀ TỰ ĐÁNH GIÁ ................................................15
4.1 Kết luận..........................................................................................................................15
4.2 Kế hoạch làm việc .........................................................................................................15
Tổng kết..............................................................................................................17
1. Tài liệu tham khảo ..........................................................................................................17
2. Phụ lục..............................................................................................................................18
Danh mục hình ảnh được sử dụng ................................................................................................. 18
Danh mục bảng được sử dụng ....................................................................................................... 18
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 3
Lời mở đầu
Trong những năm gần đây, bắt đầu từ năm 2010 trở lại đây. Cơn vũ bão smart
phone đã tràn ngập trong nước ta. Ai ai cũng có một chiếc smart phone. Smart phone là
điện thoại thông minh tích hợp một nền tảng hệ điều hành di động với nhiều tính năng
hỗ trợ tiên tiến về điện toán và kết nối dựa trên nền tảng cơ bản của điện thoại di động
thông thường.
Ban đầu điện thoại thông minh bao gồm các tính năng của điện thoại di động
thông thường kết hợp với các thiết bị phổ biến khác như PDA, thiết bị điện tử cầm tay,
máy ảnh kỹ thuật số, hệ thống định vị toàn cầu GPS. Điện thoại thông minh ngày nay
bao gồm tất cả chức năng của laptop như duyệt web, Wi-Fi, các ứng dụng của bên thứ
3 trên di động và các phụ kiện đi kèm cho máy. Việc mua và dùng smart phone rất tiện
lợi vì nó có thể thay thế hoàn toàn một chiếc máy tính bình thường. Ngoài việc đó ra nó
còn là công cụ để kết nối mọi người với nhau với nhưng chức năng của một chiếc điện
thoại thông thường hoặc dùng các ứng dụng của bên thứ 3. Mặc dù các ứng dụng để kết
nối mọi người như Mạng xã hội, Chát trực tuyến rất tiện ích nhưng nó cũng đem lại
nhưng cái hại như chúng ta mất rất nhiều thời gian vào Mạng xã hội… Chính vì vậy
nhân việc học môn project 1 em lựa chọn đề tài “ Viết ứng dụng chat đơn giản kết nối
mọi người”. sử dụng ngôn ngữ lập trình hướng đối tượng Java và hệ điều hành Android.
Để hoàn thành được bài tập lớn này, em xin được gửi lời cảm ơn chân thành đến
thầy giáo hướng dẫn đề tài Thầy PGS.TS Trịnh Văn Loan, Giảng viên Khoa Công nghệ
Thông tin Trường Đại học Bách Khoa Hà Nội - đã hết lòng giúp đỡ, hướng dẫn, chỉ dạy
tận tình để em hoàn thành được đề tài này.
Hà Nội, tháng 12 năm 2015
Sinh viên Nguyễn Văn Thiệu
Lớp kstn-cntt-k58
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 4
CHƯƠNG 1. MÔ TẢ YÊU CẦU
1.1. Mô tả yêu cầu bài toán
- Về cơ bản, tổng quát hóa bài toán thì app cần có:
+ Giao diện đăng ký tài khoản, đăng nhập tài khoản
+ Giao diện hiển thị danh sách bạn bè, danh sách các cuộc trò chuyện, danh sách
user.
+ Giao diện hiện thị các đoạn chát giữa 2 user với nhau.
- Về chức năng chính của app là :
+ Chát/ gửi tin nhắn giữa 2 user thông qua internet.
1.2. Biểu đồ use case
Hình 1 : Biểu đồ use case
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 5
CHƯƠNG 2. THIẾT KẾ CHI TIẾT
2.1. Thiết kế lớp
2.1.1 Biểu đồ lớp.
Hình 2: Biểu đồ gói chứa các Activity
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 6
Hình 3: Biểu đồ gói chứa data
Hình 4 : Biểu đồ gói chứa manager
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 7
Hình 5: Biểu đồ gói chứa model
2.1.2. Thiết kế chi tiết lớp theo mô hình hướng đối tượng MVC
- Thiết kế chi tiết cho các lớp: Các thuộc tính, phương thức, mối quan hệ, ràng
buộc.
- Bài toán được thiết kế theo mô hình MVC với cấu trúc như sau:
- Thư mục app chưa các folder như sau:
Manifests : Chứa file AndroidManifest.xml (Phân quyền, chạy app, quản lý…)
- Thự mục java chứa mã nguồn chủ yếu là các package như sau:
Gói Util gồm 2 class: CustomFontUtils và ProgressGenerator. Gói hỗ trợ gói model và
gói data.
Gói appchat.com.thieunv.chatapplication : gồm các class chính là các Activity. Như
MainActivity, LoginActivity, CreateAccountActivity, ManagerUserActivity, SettingsActivity,
AboutActivity, ChatTwoUserActivity. Các Activity chủ yếu là thực hiện hành động, các function
của app. Và 1 Activity chính để app có thể hoạt động được là ChatApplication.
Gói data gồm 4 class là: Const (chứa các hằng số), DialogDate (Dữ liệu lịch/ngày tháng
năm), FontCache ( Hỗ trợ Font), PageAdapter (Bộ chuyển đổi page).
Gói manager gồm 3 class là : Page1 (Quản lý giao diện hiển thị danh sách bạn bè), Page2
(Quản lý giao diện danh sách các cuộc hội thoại) , Page3 (Quản lý giao diện danh sách user
dùng App). Gói này chủ yếu điều khiển hoạt động của các giao diện tương ứng. (Controller)
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 8
Gói model gồm 6 class là : CircleImageView (Tạo ảnh hình tròn), Conversation (Tin
nhắn), CustomAlertDialog (Thông báo hiển thị), CustomFontButton (Button),
CustomFontEditText (EditText), CustomFontTextView (TextView). (Model)
- Thự mục res chứa các Folder giao diện, hình ảnh, style của app.
+ drawable, mipmap : Chứa hình ảnh cho app.
+ layout, menu: Chứa giao diện hiển thị của app. (chính là View)
+ values : Chứa các thuộc tính như attrs, colors, dimens, strings, styles…
- Thư mục assets chứa fonts: hỗ trợ ngoài.
Hình 6: Hình ảnh cây thư mục chứa các gói
- Sau đây là mô tả một số thuộc tính và phương thức chư yếu của một số lớp chính.
- Mô tả chi tiết về 2-4 lớp quan trọng.
Bảng 1: Mô tả chi tiết các class chính
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 9
Tên Class Attribute Ý Nghĩa
-msg : String - Nội dung đoạn chát
-status : int - Trạng thái gửi tin nhắn
-date : Date - Thời gian gửi tin nhắn
-id_sender : int - Mã số của người gửi
Conversation
Function Ý Nghĩa
+getMsg() : String -Trả lại tin chát
+getDate(): Date -Trả lại thời gian gửi/nhận
+getSender(): int -Trả lại mã số người gửi
+getStatus(): int -Trả lại trạng thái gửi
+setMsg(msg: String) -Thiết lập tin nhắn
+setDate(date : Date) -Thiết lập thời gian gửi
+setSender(id_sender: int) -Thiết lập mã người gửi
+setStatus(status: int) -Thiết lập trạng thái gửi
+isSend() : boolean -Kiểm tra xem tin nhăn đã được gửi đi
+getuId1() : int -Trả lại mã uId của user
+getuId2(): int -Trả lại mã uId của user
+getmId(): String -Trả lại chuỗi mã uId1+”_”+uId2
+getContent(): String -Lấy nội dung đoạn chát
+setuId1(uId1: int) -Thiết lập mã người dùng đầu
+setuId2(uId2: int) -Thiết lập mã người dùng nhận
+setmId(mId: String) -Thiết lập mã gộp của user1 và user 2
+setContent(content:String) -Thiết lập nội dung đoạn chát.
-edtLoginUser : EditText -Thông tin đăng nhập username
-edtLoginPass : EditText -Thông tin đăng nhập password
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 10
#onCreate(bundle: Bundle)
LoginActivity loginFunction(v:View) -Check điều kiện đăng nhập vào app
-edtEmail : EditText - Tạo thông tin mới về email.
-edtUsername: EditText - Tạo thông tin với username để dùng
-edtPassword: EditText - Tạo password mới dùng cho user
CreateAccountActi
vity
-btnCreateAccount :
ActioinProcessButton
- Click vào sẽ tạo tài khoản mới
-progressGenerator :
ProgressGenerator
- Xử lý button đăng ký với trường hợp đặc biêt.
#onCreate(saved: Bundle)
+showCalender(v: View) -Hiển thị lịch
-createAccount() -Validate phần tạo tài khoản
-logUserIn(…) -Đăng nhập ngay sau khi đăn gkys xong
+onComplete() -Chuyển trang khi đăng nhập thành công.
-CURRENT_USER_ID: int -Mã số của người dùng hiện tại
-convList: ArrayList<Conversation> - Mảng chứa các tin nhắn
-Adp: ChatAdapter - Bộ chuyển đổi của các tin nhắn
-txt: EditText
-reveiver_userid: int -mã số người nhận
-lastMsgDate: Date - Lấy thời gian gửi tin gần nhất.
ChatTwoUserActiv
ity
-isRunning: boolean -Kiểm tra xem app chạy chưa
-hander : Handler
#onCreate(saved: Bundle)
-sendMessage() - Gửi tin nhắn
-loadConversationList() -Load dữ liệu các tin nhắn trên csdl
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 11
2.2. Thiết kế cơ sở dữ liệu / cấu trúc dữ liệu
- Thiết kế và chuẩn hoá CSDL
Hình 7: Hình ảnh bảng cơ sở dữ liệu
- Trong cả 3 bảng trên đều có các trường tự sinh sẵn của Parse như objectId
<String> khóa chính, createdAt <Date> : Ngày tạo , updatedAt <Date> : Ngày
cập nhật.
- Đường màu xanh chỉ rõ khóa liên kết của các bảng được sử dụng.
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 12
CHƯƠNG 3. CHƯƠNG TRÌNH MINH HOẠ
3.1. Xây dựng chương trình
- App có sử dụng một vài thư viện hỗ trợ của Android như
+ Parse 1.10.0 : Thư viện hỗ trợ về mặt cơ sở dữ liệu với các function như
Login, Logout, Check Validate, …
+ Picasso:2.5.2: Thư viện hỗ trợ ảnh.
+ Appcompat-v7:23.1.1, Google Design:23.1.1.
+ Android-process-button:1.0.0.
- Trong quá trình lập trình có tuân thủ quy tắc lập trình hướng đối tượng của
Java, thiết kế layout, giao diện theo chuẩn của Google Design Convension.
- Môi trường lập trình là Java, sử dụng IDE Android Studio kết hợp với Máy ảo
Genymotion.
3.2. Kiểm thử đơn vị
- Kịch bản chạy thử chương trình.
Bảng 2: Kịch bản kiểm thử chương trình
Mã lỗi Tên lỗi Use case
Trạng
thái
Người tạo Loại lỗi
Các bước tái tạo lỗi /
Dữ liệu kiểm thử
Kết quả thực tế
LG1-1
Không tồn tại
user trong
database
Đăng nhập
Thông
báo chưa
tồn tài tài
khoản
ThieuNv Chức năng
 Nhấn nút đăng nhập
với các trường hợp gõ
sai tài khoản hoặc mật
khẩu
 Nhấn nút đăng nhập
khi mới chỉ nhập tài
khoản hoặc mật khẩu
hoặc chưa nhập gì cả.
Hiện lên 1 dialog thông báo
Chưa tồn tại tài khoản.
CA1-1
Không xử lý
validate cho
trường email/
username
/pasword.
Tạo tài khoản
mới
Thông
báo
email
không
hợp lệ
ThieuNv
1- Chức năng
(logic)
 Gõ email không đúng
dạng abc@gmail.com
 Nhập các trường khác
bình thường
 Nhấn nút Create
Account
Thông báo lỗi email không
đúng dạng chuẩn.
AF1-1
Không xử lý kết
nhiều bạn cùng
lúc.
Kết bạn Còn lỗi ThieuNv
1- Chức năng
(Logic)
 Tiến hành ấn nút kết
bạn nhiều lần. App ngừng hoạt động.
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 13
Kết quả kiểm thử đơn vị (unit test) : cho thấy App chạy tốt nhưng vẫn còn một số lỗi
chưa xử lý được .
3.3. Kết quả chương trình
- Mô tả một số màn hình chức năng chính của chương trình
+ Giao diện chính của app
+ Giao diện đăng nhập để vào app sử dụng cần username và password.
+ Giao diện đăng ký tài khoản. Nếu người dùng chưa có tài khoản thì có thể
đăng ký tài khoản để sử dụng app.
+ Giao diện hiển thị danh sách bạn bè có trong app.
+ Giao diện hiển thi danh sách các cuộc trò chuyện với bạn bè.
+ Giao diện hiển thị danh sách những người sử dụng app mà chưa phải là bạn
bè.
+ Giao diện thể hiện các chức năng của app.
+ Giao diện chát giữa 2 user với nhau.
Hình 8: Giao diện chính, giao diện đăng ký, giao diện đăng nhập vào app
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 14
Hình 9: Giao diện chứa các danh sách như friends, users, conversations
Hình 10 : Giao diện chát và giao diện chứa thông tin người dùng
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 15
CHƯƠNG 4. KẾT LUẬN VÀ TỰ ĐÁNH GIÁ
4.1 Kết luận
- Kết quả đạt được : Qua quá trình làm bài tập lớn em đã nâng cao được tinh
thần, kỹ năng làm việc độc lập, kỹ năng viết báo cáo, slide, và quan trọng
nhất đó là nâng cao tư duy lập trình hướng đối tượng cũng như sử dụng thành
thạo ngôn ngữ lập trình hướng đối tượng java.
- Khuyết điểm: App vẫn còn một số lỗi em chưa khắc phục được. Một số chức
năng hay hữu ích có thể thêm vào app.
4.2 Kế hoạch làm việc
 Kế hoạch làm việc:
Tuần 2:
- Gặp thầy hướng dẫn, chọn chủ đề bài tập lớn.
Tuần 3:
- Tìm hiểu về Android và môi trường phát triển của Android
- Cài đặt Android Studio, Android SDK hỗ trợ viết code Android
- Cài đặt Genimotion và Virtual Box hỗ trợ máy ảo Android
- Tìm hiểu các thành phần trong Android App
Tuần 4:
- Tìm hiểu hệ thống Layout và View trong android như :
+ LinearLayout, TextView, Button, Processbar, ImageView, …
- Xây dựng giao diện đăng nhập, đăng ký tài khoản.
Tuần 5:
- Thiết kế Listview, ScrollView để quản lý tin nhắn từ các user khác đến.
- Xử lý “Đăng nhập”.
Tuần 6:
- Thiết kế trang ManagerUser để quản lý tin nhắn cũng như bạn bè.
- Thiết kế ViewPager để chuyển hiệu ứng giữa các Tab
- Tạo fake database để kiểm tra đăng ký và đăng nhập.
Tuần 7:
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 16
- Tìm hiểu và làm quen với cơ sở lưu trữ điện toán đám mây Parse.
- Tạo tài khoản, lập cơ sở dữ liệu cho app android và kết nối đến với Parse.
Tuần 8 :
- Thiết kế cơ sở dữ liệu trên Parse.
Tuần 9 + 10:
- Xử lý chát giữa 2 user và xử lý giao diện hiển thị bạn chát.
Tuần 10- 12:
- Hoàn thiện các chức năng cơ bản, các trang giao diện cơ bản.
- Review code, kiểm thử tìm lỗi, hoàn thiện App.
Tuần 13:
- Viết báo cáo theo đề cương chi tiết.
- Ghi đĩa CD và in báo cáo môn học.
- Nộp bản toàn bộ chương trình và báo cáo.
Tuần 14:
- Bảo vệ bài tập lớn môn học
- Nghe ý kiến nhận xét từ thầy hướng dẫn.
 Tự đánh giá bản thân : 90%
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 17
Tổng kết
1. Tài liệu tham khảo
[1] Lập trình Android Google Guide nguồn https://developers.google.com/android/
[2] Hướng dẫn cơ bản với Parse Query nguồn : https://parse.com/docs/android/guide
[3] Materials design Google App Android :
http://developer.android.com/intl/vi/design/material/index.html
[4] Android Design Principles:
http://developer.android.com/intl/vi/design/get-started/principles.html
[5] StackOverflow.com
Project 1: Viết App chat text trên android
Nguyễn Văn Thiệu – KSTN-CNTT-K58 18
2. Phụ lục
Danh mục hình ảnh được sử dụng
Tên Hình Trang Ý Nghĩa
Hình 1 4 Biểu đồ usecase
Hình 2 5 Biêu đồ chứa gói Activity
Hình 3 6 Biểu đồ chứa gói Data
Hình 4 6 Biểu đồ chứa gói Manager
Hình 5 7 Biểu đồ chứa gói Model
Hình 6 8 Hình ảnh cây thư mục chứa các gói
Hình 7 11 Hình ảnh bảng cơ sở dữ liệu
Hình 8 13 Giao diện chính, giao diện đăng nhập, giao diện đăng ký vào app
Hình 9 14 Giao diện chứa danh sách như friends, users, conversation
Hình 10 14 Giao diện chat và giao diện chứa thông tin người dùng
Danh mục bảng được sử dụng
Tên Bảng Trang Ý Nghĩa
Bảng 1 9 Bảng mô tả chi tiết các class chính
Bảng 2 12 Kịch bản kiểm thử chương trình

More Related Content

What's hot

Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...Long Kingnam
 
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTBài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTMasterCode.vn
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchBIC
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịThanh Hoa
 
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use caseTrung Chinh Hà
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHan Nguyen
 
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...Nguyễn Plus
 
Hệ thống quản lý rạp chiếu phim
Hệ thống quản lý          rạp chiếu phimHệ thống quản lý          rạp chiếu phim
Hệ thống quản lý rạp chiếu phimvennguyennoinho
 
Giáo trình mạng máy tính
Giáo trình mạng máy tínhGiáo trình mạng máy tính
Giáo trình mạng máy tínhHoài Phạm
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhJojo Kim
 

What's hot (20)

Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đĐề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
Đề tài: Ứng dụng giải trí trên thiết bị di động Android, HOt, 9đ
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
 
Phân Tích Thiết Kế Hệ Thống Thông Tin - Quản Lý Điểm
Phân Tích Thiết Kế Hệ Thống Thông Tin -  Quản Lý ĐiểmPhân Tích Thiết Kế Hệ Thống Thông Tin -  Quản Lý Điểm
Phân Tích Thiết Kế Hệ Thống Thông Tin - Quản Lý Điểm
 
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAYLuận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
Luận văn: Xây dựng ứng dụng Android xem video trực tuyến, HAY
 
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTBài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
 
Chương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà SáchChương trình Quản lý Nhà Sách
Chương trình Quản lý Nhà Sách
 
Đề tài: Quản lý học sinh trường mầm non Quốc tế Hữu Nghị, HAY
Đề tài: Quản lý học sinh trường mầm non Quốc tế Hữu Nghị, HAYĐề tài: Quản lý học sinh trường mầm non Quốc tế Hữu Nghị, HAY
Đề tài: Quản lý học sinh trường mầm non Quốc tế Hữu Nghị, HAY
 
Chuyên Đề Công Nghệ Phần Mềm PTIT
Chuyên Đề Công Nghệ Phần Mềm PTITChuyên Đề Công Nghệ Phần Mềm PTIT
Chuyên Đề Công Nghệ Phần Mềm PTIT
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Xây dựng biểu đồ use case
Xây dựng biểu đồ use caseXây dựng biểu đồ use case
Xây dựng biểu đồ use case
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng online
 
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
Báo cáo đồ án học phần 2: Tìm hiểu và viết ứng dụng tra từ điển viết tắt của ...
 
Hệ thống quản lý rạp chiếu phim
Hệ thống quản lý          rạp chiếu phimHệ thống quản lý          rạp chiếu phim
Hệ thống quản lý rạp chiếu phim
 
Đề tài: Quản lý bệnh nhân khám bệnh tại bệnh viện Tâm Phúc, 9đ
Đề tài: Quản lý bệnh nhân khám bệnh tại bệnh viện Tâm Phúc, 9đĐề tài: Quản lý bệnh nhân khám bệnh tại bệnh viện Tâm Phúc, 9đ
Đề tài: Quản lý bệnh nhân khám bệnh tại bệnh viện Tâm Phúc, 9đ
 
Giáo trình mạng máy tính
Giáo trình mạng máy tínhGiáo trình mạng máy tính
Giáo trình mạng máy tính
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
 

Similar to Ứng dụng chát realtime android

Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.docLuận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.docsividocz
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Umlhbgfd
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinNguyen Patrick
 
phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thongvantinhkhuc
 
Bài tập Lập trinh viên thiết bị di động
Bài tập Lập trinh viên thiết bị di độngBài tập Lập trinh viên thiết bị di động
Bài tập Lập trinh viên thiết bị di độngRobert Commando
 
Ky thuat-lap-trinh 13754342619
Ky thuat-lap-trinh 13754342619Ky thuat-lap-trinh 13754342619
Ky thuat-lap-trinh 13754342619Ky Nguyen Ad
 
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình C For Windows.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình C For Windows.docLuận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình C For Windows.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình C For Windows.docsividocz
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlMai Mit
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_umlAxnet Dung
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umldlmonline24h
 
Baigiangkythuatlaptrinh hvbcvt
Baigiangkythuatlaptrinh hvbcvtBaigiangkythuatlaptrinh hvbcvt
Baigiangkythuatlaptrinh hvbcvtAricent Bug
 

Similar to Ứng dụng chát realtime android (20)

Đề tài Quản lý tiền điện
Đề tài Quản lý tiền điệnĐề tài Quản lý tiền điện
Đề tài Quản lý tiền điện
 
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.docLuận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Ứng Dụng Cho Mobile.doc
 
Bao cao cuoi ky
Bao cao cuoi kyBao cao cuoi ky
Bao cao cuoi ky
 
Phan Tich Httt Bang Uml
Phan Tich Httt Bang UmlPhan Tich Httt Bang Uml
Phan Tich Httt Bang Uml
 
Giao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tinGiao trinh phan tich thiet ke he thong thong tin
Giao trinh phan tich thiet ke he thong thong tin
 
phan tich thiet ke he thong
phan tich thiet ke he thongphan tich thiet ke he thong
phan tich thiet ke he thong
 
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đĐề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
Đề tài: Xây dựng phần mềm quản lý bảo hiểm, HAY, 9đ
 
Bài tập Lập trinh viên thiết bị di động
Bài tập Lập trinh viên thiết bị di độngBài tập Lập trinh viên thiết bị di động
Bài tập Lập trinh viên thiết bị di động
 
GoogleDocs
GoogleDocsGoogleDocs
GoogleDocs
 
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
Phân Tích Dữ Liệu Phân Hạng Tín Dụng Dựa Trên Bộ Dữ Liệu Xyz Bằng Phần Mềm Or...
 
Ky thuat-lap-trinh 13754342619
Ky thuat-lap-trinh 13754342619Ky thuat-lap-trinh 13754342619
Ky thuat-lap-trinh 13754342619
 
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình C For Windows.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình C For Windows.docLuận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình C For Windows.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình C For Windows.doc
 
dccthp nmcntt
dccthp nmcnttdccthp nmcntt
dccthp nmcntt
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich httt_bang_uml
Phan tich httt_bang_umlPhan tich httt_bang_uml
Phan tich httt_bang_uml
 
Phan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng umlPhan tich hệ thống thông tin bằng uml
Phan tich hệ thống thông tin bằng uml
 
Tin hoc can ban bai tap
Tin hoc can ban   bai tapTin hoc can ban   bai tap
Tin hoc can ban bai tap
 
Ky thuat lap trinh
Ky thuat lap trinhKy thuat lap trinh
Ky thuat lap trinh
 
Ktlt
KtltKtlt
Ktlt
 
Baigiangkythuatlaptrinh hvbcvt
Baigiangkythuatlaptrinh hvbcvtBaigiangkythuatlaptrinh hvbcvt
Baigiangkythuatlaptrinh hvbcvt
 

Ứng dụng chát realtime android

  • 1. TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÀI TẬP MÔN HỌC IT3910 – PROJECT 1 – 2015-2016 Giảng viên hướng dẫn : PGS.TS Trịnh Văn Loan Sinh viên thực hiện : Nguyễn Văn Thiệu – 20133750 Lớp : KSTN-CNTT-K58 HÀ NỘI 2015 Project 1: Viết App Chát Text Trên Android
  • 2. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 2 Mục Lục ..............................................................................................................................1 IT3910 – PROJECT 1 – 2015-2016....................................................................1 Lời mở đầu...........................................................................................................3 CHƯƠNG 1. MÔ TẢ YÊU CẦU.......................................................................4 1.1. Mô tả yêu cầu bài toán ........................................................................................... 4 1.2. Biểu đồ use case....................................................................................................... 4 CHƯƠNG 2. THIẾT KẾ CHI TIẾT ................................................................5 2.1. Thiết kế lớp.............................................................................................................. 5 2.1.1 Biểu đồ lớp.............................................................................................................................. 5 2.1.2. Thiết kế chi tiết lớp theo mô hình hướng đối tượng MVC................................................ 7 2.2. Thiết kế cơ sở dữ liệu / cấu trúc dữ liệu...............................................................11 CHƯƠNG 3. CHƯƠNG TRÌNH MINH HOẠ ..............................................12 3.1. Xây dựng chương trình .........................................................................................12 3.2. Kiểm thử đơn vị .....................................................................................................12 3.3. Kết quả chương trình ............................................................................................13 CHƯƠNG 4. KẾT LUẬN VÀ TỰ ĐÁNH GIÁ ................................................15 4.1 Kết luận..........................................................................................................................15 4.2 Kế hoạch làm việc .........................................................................................................15 Tổng kết..............................................................................................................17 1. Tài liệu tham khảo ..........................................................................................................17 2. Phụ lục..............................................................................................................................18 Danh mục hình ảnh được sử dụng ................................................................................................. 18 Danh mục bảng được sử dụng ....................................................................................................... 18
  • 3. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 3 Lời mở đầu Trong những năm gần đây, bắt đầu từ năm 2010 trở lại đây. Cơn vũ bão smart phone đã tràn ngập trong nước ta. Ai ai cũng có một chiếc smart phone. Smart phone là điện thoại thông minh tích hợp một nền tảng hệ điều hành di động với nhiều tính năng hỗ trợ tiên tiến về điện toán và kết nối dựa trên nền tảng cơ bản của điện thoại di động thông thường. Ban đầu điện thoại thông minh bao gồm các tính năng của điện thoại di động thông thường kết hợp với các thiết bị phổ biến khác như PDA, thiết bị điện tử cầm tay, máy ảnh kỹ thuật số, hệ thống định vị toàn cầu GPS. Điện thoại thông minh ngày nay bao gồm tất cả chức năng của laptop như duyệt web, Wi-Fi, các ứng dụng của bên thứ 3 trên di động và các phụ kiện đi kèm cho máy. Việc mua và dùng smart phone rất tiện lợi vì nó có thể thay thế hoàn toàn một chiếc máy tính bình thường. Ngoài việc đó ra nó còn là công cụ để kết nối mọi người với nhau với nhưng chức năng của một chiếc điện thoại thông thường hoặc dùng các ứng dụng của bên thứ 3. Mặc dù các ứng dụng để kết nối mọi người như Mạng xã hội, Chát trực tuyến rất tiện ích nhưng nó cũng đem lại nhưng cái hại như chúng ta mất rất nhiều thời gian vào Mạng xã hội… Chính vì vậy nhân việc học môn project 1 em lựa chọn đề tài “ Viết ứng dụng chat đơn giản kết nối mọi người”. sử dụng ngôn ngữ lập trình hướng đối tượng Java và hệ điều hành Android. Để hoàn thành được bài tập lớn này, em xin được gửi lời cảm ơn chân thành đến thầy giáo hướng dẫn đề tài Thầy PGS.TS Trịnh Văn Loan, Giảng viên Khoa Công nghệ Thông tin Trường Đại học Bách Khoa Hà Nội - đã hết lòng giúp đỡ, hướng dẫn, chỉ dạy tận tình để em hoàn thành được đề tài này. Hà Nội, tháng 12 năm 2015 Sinh viên Nguyễn Văn Thiệu Lớp kstn-cntt-k58
  • 4. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 4 CHƯƠNG 1. MÔ TẢ YÊU CẦU 1.1. Mô tả yêu cầu bài toán - Về cơ bản, tổng quát hóa bài toán thì app cần có: + Giao diện đăng ký tài khoản, đăng nhập tài khoản + Giao diện hiển thị danh sách bạn bè, danh sách các cuộc trò chuyện, danh sách user. + Giao diện hiện thị các đoạn chát giữa 2 user với nhau. - Về chức năng chính của app là : + Chát/ gửi tin nhắn giữa 2 user thông qua internet. 1.2. Biểu đồ use case Hình 1 : Biểu đồ use case
  • 5. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 5 CHƯƠNG 2. THIẾT KẾ CHI TIẾT 2.1. Thiết kế lớp 2.1.1 Biểu đồ lớp. Hình 2: Biểu đồ gói chứa các Activity
  • 6. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 6 Hình 3: Biểu đồ gói chứa data Hình 4 : Biểu đồ gói chứa manager
  • 7. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 7 Hình 5: Biểu đồ gói chứa model 2.1.2. Thiết kế chi tiết lớp theo mô hình hướng đối tượng MVC - Thiết kế chi tiết cho các lớp: Các thuộc tính, phương thức, mối quan hệ, ràng buộc. - Bài toán được thiết kế theo mô hình MVC với cấu trúc như sau: - Thư mục app chưa các folder như sau: Manifests : Chứa file AndroidManifest.xml (Phân quyền, chạy app, quản lý…) - Thự mục java chứa mã nguồn chủ yếu là các package như sau: Gói Util gồm 2 class: CustomFontUtils và ProgressGenerator. Gói hỗ trợ gói model và gói data. Gói appchat.com.thieunv.chatapplication : gồm các class chính là các Activity. Như MainActivity, LoginActivity, CreateAccountActivity, ManagerUserActivity, SettingsActivity, AboutActivity, ChatTwoUserActivity. Các Activity chủ yếu là thực hiện hành động, các function của app. Và 1 Activity chính để app có thể hoạt động được là ChatApplication. Gói data gồm 4 class là: Const (chứa các hằng số), DialogDate (Dữ liệu lịch/ngày tháng năm), FontCache ( Hỗ trợ Font), PageAdapter (Bộ chuyển đổi page). Gói manager gồm 3 class là : Page1 (Quản lý giao diện hiển thị danh sách bạn bè), Page2 (Quản lý giao diện danh sách các cuộc hội thoại) , Page3 (Quản lý giao diện danh sách user dùng App). Gói này chủ yếu điều khiển hoạt động của các giao diện tương ứng. (Controller)
  • 8. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 8 Gói model gồm 6 class là : CircleImageView (Tạo ảnh hình tròn), Conversation (Tin nhắn), CustomAlertDialog (Thông báo hiển thị), CustomFontButton (Button), CustomFontEditText (EditText), CustomFontTextView (TextView). (Model) - Thự mục res chứa các Folder giao diện, hình ảnh, style của app. + drawable, mipmap : Chứa hình ảnh cho app. + layout, menu: Chứa giao diện hiển thị của app. (chính là View) + values : Chứa các thuộc tính như attrs, colors, dimens, strings, styles… - Thư mục assets chứa fonts: hỗ trợ ngoài. Hình 6: Hình ảnh cây thư mục chứa các gói - Sau đây là mô tả một số thuộc tính và phương thức chư yếu của một số lớp chính. - Mô tả chi tiết về 2-4 lớp quan trọng. Bảng 1: Mô tả chi tiết các class chính
  • 9. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 9 Tên Class Attribute Ý Nghĩa -msg : String - Nội dung đoạn chát -status : int - Trạng thái gửi tin nhắn -date : Date - Thời gian gửi tin nhắn -id_sender : int - Mã số của người gửi Conversation Function Ý Nghĩa +getMsg() : String -Trả lại tin chát +getDate(): Date -Trả lại thời gian gửi/nhận +getSender(): int -Trả lại mã số người gửi +getStatus(): int -Trả lại trạng thái gửi +setMsg(msg: String) -Thiết lập tin nhắn +setDate(date : Date) -Thiết lập thời gian gửi +setSender(id_sender: int) -Thiết lập mã người gửi +setStatus(status: int) -Thiết lập trạng thái gửi +isSend() : boolean -Kiểm tra xem tin nhăn đã được gửi đi +getuId1() : int -Trả lại mã uId của user +getuId2(): int -Trả lại mã uId của user +getmId(): String -Trả lại chuỗi mã uId1+”_”+uId2 +getContent(): String -Lấy nội dung đoạn chát +setuId1(uId1: int) -Thiết lập mã người dùng đầu +setuId2(uId2: int) -Thiết lập mã người dùng nhận +setmId(mId: String) -Thiết lập mã gộp của user1 và user 2 +setContent(content:String) -Thiết lập nội dung đoạn chát. -edtLoginUser : EditText -Thông tin đăng nhập username -edtLoginPass : EditText -Thông tin đăng nhập password
  • 10. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 10 #onCreate(bundle: Bundle) LoginActivity loginFunction(v:View) -Check điều kiện đăng nhập vào app -edtEmail : EditText - Tạo thông tin mới về email. -edtUsername: EditText - Tạo thông tin với username để dùng -edtPassword: EditText - Tạo password mới dùng cho user CreateAccountActi vity -btnCreateAccount : ActioinProcessButton - Click vào sẽ tạo tài khoản mới -progressGenerator : ProgressGenerator - Xử lý button đăng ký với trường hợp đặc biêt. #onCreate(saved: Bundle) +showCalender(v: View) -Hiển thị lịch -createAccount() -Validate phần tạo tài khoản -logUserIn(…) -Đăng nhập ngay sau khi đăn gkys xong +onComplete() -Chuyển trang khi đăng nhập thành công. -CURRENT_USER_ID: int -Mã số của người dùng hiện tại -convList: ArrayList<Conversation> - Mảng chứa các tin nhắn -Adp: ChatAdapter - Bộ chuyển đổi của các tin nhắn -txt: EditText -reveiver_userid: int -mã số người nhận -lastMsgDate: Date - Lấy thời gian gửi tin gần nhất. ChatTwoUserActiv ity -isRunning: boolean -Kiểm tra xem app chạy chưa -hander : Handler #onCreate(saved: Bundle) -sendMessage() - Gửi tin nhắn -loadConversationList() -Load dữ liệu các tin nhắn trên csdl
  • 11. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 11 2.2. Thiết kế cơ sở dữ liệu / cấu trúc dữ liệu - Thiết kế và chuẩn hoá CSDL Hình 7: Hình ảnh bảng cơ sở dữ liệu - Trong cả 3 bảng trên đều có các trường tự sinh sẵn của Parse như objectId <String> khóa chính, createdAt <Date> : Ngày tạo , updatedAt <Date> : Ngày cập nhật. - Đường màu xanh chỉ rõ khóa liên kết của các bảng được sử dụng.
  • 12. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 12 CHƯƠNG 3. CHƯƠNG TRÌNH MINH HOẠ 3.1. Xây dựng chương trình - App có sử dụng một vài thư viện hỗ trợ của Android như + Parse 1.10.0 : Thư viện hỗ trợ về mặt cơ sở dữ liệu với các function như Login, Logout, Check Validate, … + Picasso:2.5.2: Thư viện hỗ trợ ảnh. + Appcompat-v7:23.1.1, Google Design:23.1.1. + Android-process-button:1.0.0. - Trong quá trình lập trình có tuân thủ quy tắc lập trình hướng đối tượng của Java, thiết kế layout, giao diện theo chuẩn của Google Design Convension. - Môi trường lập trình là Java, sử dụng IDE Android Studio kết hợp với Máy ảo Genymotion. 3.2. Kiểm thử đơn vị - Kịch bản chạy thử chương trình. Bảng 2: Kịch bản kiểm thử chương trình Mã lỗi Tên lỗi Use case Trạng thái Người tạo Loại lỗi Các bước tái tạo lỗi / Dữ liệu kiểm thử Kết quả thực tế LG1-1 Không tồn tại user trong database Đăng nhập Thông báo chưa tồn tài tài khoản ThieuNv Chức năng  Nhấn nút đăng nhập với các trường hợp gõ sai tài khoản hoặc mật khẩu  Nhấn nút đăng nhập khi mới chỉ nhập tài khoản hoặc mật khẩu hoặc chưa nhập gì cả. Hiện lên 1 dialog thông báo Chưa tồn tại tài khoản. CA1-1 Không xử lý validate cho trường email/ username /pasword. Tạo tài khoản mới Thông báo email không hợp lệ ThieuNv 1- Chức năng (logic)  Gõ email không đúng dạng abc@gmail.com  Nhập các trường khác bình thường  Nhấn nút Create Account Thông báo lỗi email không đúng dạng chuẩn. AF1-1 Không xử lý kết nhiều bạn cùng lúc. Kết bạn Còn lỗi ThieuNv 1- Chức năng (Logic)  Tiến hành ấn nút kết bạn nhiều lần. App ngừng hoạt động.
  • 13. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 13 Kết quả kiểm thử đơn vị (unit test) : cho thấy App chạy tốt nhưng vẫn còn một số lỗi chưa xử lý được . 3.3. Kết quả chương trình - Mô tả một số màn hình chức năng chính của chương trình + Giao diện chính của app + Giao diện đăng nhập để vào app sử dụng cần username và password. + Giao diện đăng ký tài khoản. Nếu người dùng chưa có tài khoản thì có thể đăng ký tài khoản để sử dụng app. + Giao diện hiển thị danh sách bạn bè có trong app. + Giao diện hiển thi danh sách các cuộc trò chuyện với bạn bè. + Giao diện hiển thị danh sách những người sử dụng app mà chưa phải là bạn bè. + Giao diện thể hiện các chức năng của app. + Giao diện chát giữa 2 user với nhau. Hình 8: Giao diện chính, giao diện đăng ký, giao diện đăng nhập vào app
  • 14. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 14 Hình 9: Giao diện chứa các danh sách như friends, users, conversations Hình 10 : Giao diện chát và giao diện chứa thông tin người dùng
  • 15. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 15 CHƯƠNG 4. KẾT LUẬN VÀ TỰ ĐÁNH GIÁ 4.1 Kết luận - Kết quả đạt được : Qua quá trình làm bài tập lớn em đã nâng cao được tinh thần, kỹ năng làm việc độc lập, kỹ năng viết báo cáo, slide, và quan trọng nhất đó là nâng cao tư duy lập trình hướng đối tượng cũng như sử dụng thành thạo ngôn ngữ lập trình hướng đối tượng java. - Khuyết điểm: App vẫn còn một số lỗi em chưa khắc phục được. Một số chức năng hay hữu ích có thể thêm vào app. 4.2 Kế hoạch làm việc  Kế hoạch làm việc: Tuần 2: - Gặp thầy hướng dẫn, chọn chủ đề bài tập lớn. Tuần 3: - Tìm hiểu về Android và môi trường phát triển của Android - Cài đặt Android Studio, Android SDK hỗ trợ viết code Android - Cài đặt Genimotion và Virtual Box hỗ trợ máy ảo Android - Tìm hiểu các thành phần trong Android App Tuần 4: - Tìm hiểu hệ thống Layout và View trong android như : + LinearLayout, TextView, Button, Processbar, ImageView, … - Xây dựng giao diện đăng nhập, đăng ký tài khoản. Tuần 5: - Thiết kế Listview, ScrollView để quản lý tin nhắn từ các user khác đến. - Xử lý “Đăng nhập”. Tuần 6: - Thiết kế trang ManagerUser để quản lý tin nhắn cũng như bạn bè. - Thiết kế ViewPager để chuyển hiệu ứng giữa các Tab - Tạo fake database để kiểm tra đăng ký và đăng nhập. Tuần 7:
  • 16. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 16 - Tìm hiểu và làm quen với cơ sở lưu trữ điện toán đám mây Parse. - Tạo tài khoản, lập cơ sở dữ liệu cho app android và kết nối đến với Parse. Tuần 8 : - Thiết kế cơ sở dữ liệu trên Parse. Tuần 9 + 10: - Xử lý chát giữa 2 user và xử lý giao diện hiển thị bạn chát. Tuần 10- 12: - Hoàn thiện các chức năng cơ bản, các trang giao diện cơ bản. - Review code, kiểm thử tìm lỗi, hoàn thiện App. Tuần 13: - Viết báo cáo theo đề cương chi tiết. - Ghi đĩa CD và in báo cáo môn học. - Nộp bản toàn bộ chương trình và báo cáo. Tuần 14: - Bảo vệ bài tập lớn môn học - Nghe ý kiến nhận xét từ thầy hướng dẫn.  Tự đánh giá bản thân : 90%
  • 17. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 17 Tổng kết 1. Tài liệu tham khảo [1] Lập trình Android Google Guide nguồn https://developers.google.com/android/ [2] Hướng dẫn cơ bản với Parse Query nguồn : https://parse.com/docs/android/guide [3] Materials design Google App Android : http://developer.android.com/intl/vi/design/material/index.html [4] Android Design Principles: http://developer.android.com/intl/vi/design/get-started/principles.html [5] StackOverflow.com
  • 18. Project 1: Viết App chat text trên android Nguyễn Văn Thiệu – KSTN-CNTT-K58 18 2. Phụ lục Danh mục hình ảnh được sử dụng Tên Hình Trang Ý Nghĩa Hình 1 4 Biểu đồ usecase Hình 2 5 Biêu đồ chứa gói Activity Hình 3 6 Biểu đồ chứa gói Data Hình 4 6 Biểu đồ chứa gói Manager Hình 5 7 Biểu đồ chứa gói Model Hình 6 8 Hình ảnh cây thư mục chứa các gói Hình 7 11 Hình ảnh bảng cơ sở dữ liệu Hình 8 13 Giao diện chính, giao diện đăng nhập, giao diện đăng ký vào app Hình 9 14 Giao diện chứa danh sách như friends, users, conversation Hình 10 14 Giao diện chat và giao diện chứa thông tin người dùng Danh mục bảng được sử dụng Tên Bảng Trang Ý Nghĩa Bảng 1 9 Bảng mô tả chi tiết các class chính Bảng 2 12 Kịch bản kiểm thử chương trình