Đề tài: Lập trình ứng dụng IZ chatYêu cầu: Ứng dụng chat realtime giúp trao đổi thông tin giữa một nhóm người với nhau gồm các chức năng: - Đăng kí - Đăng nhập - Đăng xuất - Chat nhóm I
Trang 1BÀI TẬP LỚN
Môn: Kỹ thuật lập trình ứng dụng đa phương
tiện
Đề tài: Phát triển ứng dụng IZchat
Giảng viên : Đỗ Thị Liên Sinh viên : Kiều Xuân Ninh
Hà nội, tháng 01 năm 2017
Trang 2Đề tài: Lập trình ứng dụng IZchat
MỤC LỤC
DANH MỤC HÌNH ẢNH
Trang 3Đề tài: Lập trình ứng dụng IZ chat
Yêu cầu: Ứng dụng chat realtime giúp trao đổi thông tin giữa một nhóm người với nhau
gồm các chức năng:
- Đăng kí
- Đăng nhập
- Đăng xuất
- Chat nhóm
I Xác định yêu cầu
- Xác định mô tả các tác nhân:
User: Người dùng sử dụng ứng dụng để trao đổi thông tin, liên lạc với nhau
- Danh sách các ca sử dụng:
U1: Đăng nhập: Người dùng đăng nhập vào hệ thống để sử dụng các chức năng
U2: Chat nhóm: Trò chuyện trao đổi thong tin với mọi người thong qua chức năng
gửi , nhận tin nhắn
U3: Đăng kí: Người dùng đăng kí khi chưa có tài khoản
U4: Đăng xuất: Người dùng thoát khỏi ứng dụng
Kiều Xuân Ninh Lớp: D12PTĐPT Trang 3
Trang 4Đề tài: Lập trình ứng dụng IZchat
Hình : Biểu đồ Usercase
II Phân tích yêu cầu
1 Phân tích tĩnh
Xác định lớp
Các danh từ thu được từ kịch bản:
Người dùng, Admin, tin nhắn, hệ thống, danh bạ, phòng chat, chủ đề, tài khoản, mật khẩu, tên người dùng, người dùng đăng ký, email, sever, cơ sở dữ liệu, client
Loại bỏ các danh từ nằm ngoài phạm vi mục đích của hệ thống và các danh từ hoặc cụm
từ trùng lặp và các danh từ làm thuộc tính của lớp ta được các danh từ sau có thể là ứng viên của lớp thực thể :
User (người dùng), Message (tin nhắn), Group (phòng chat), UserRegister (Người dùng đăng ký)
Trang 52 Phân tích động
2.1 Biểu đồ trạng thái
Hình : Biểu đồ trạng thái cho đối tượng người dùng ở chức năng đăng nhập
Kiều Xuân Ninh Lớp: D12PTĐPT Trang 5
Trang 6Đề tài: Lập trình ứng dụng IZchat
Hình : Biểu đồ trạng thái cho đối tượng người dùng ở chức năng đăng kí
Trang 7Hình : Biểu đồ trạng thái cho đối tượng người dùng ở chức năng chat
2.2 Biểu đồ tuần tự
+ Chức năng Đăng nhập
Kiều Xuân Ninh Lớp: D12PTĐPT Trang 7
Trang 8Đề tài: Lập trình ứng dụng IZchat
Hình : Biểu đồ tuần tự cho chức năng đăng nhập
+ Chức năng đăng kí
Hình : Biều đồ tuần tự cho chức năng đăng kí
+ Chức năng Đăng xuất
Trang 9Hình : Biểu đồ tuần tự cho chức năng đăng xuất
+ Chức năng gửi tin nhắn
Kiều Xuân Ninh Lớp: D12PTĐPT Trang 9
Trang 10Đề tài: Lập trình ứng dụng IZchat
Hình : Biểu đồ tuần tự cho chức năng gửi tin nhắn
Trang 112.3 Biểu đồ lớp
Hình : Biểu đồ lớp
III Lập trình ứng dụng
1 Ngôn ngữ phát triển
Ứng dụng sử dụng ngôn ngữ lập trình Java
Do ứng dụng được xây dựng trên nền tảng di động Android nên java sẽ là ngôn ngữ thích hợp để xây dựng ứng dụng này
2 Công cụ lập trình
Ứng dụng được xây dựng bằng công cụ Android Studio
Android Studio là một IDE (InterGrated Development Environment) được Google xây dựng và cung cấp miễn phí cho các nhà phát triển ứng dụng Android Android Studio dựa vào IntelliJ IDEA, là một IDE tốt nhất Java hiện nay Android Studio cung cấp những trình soạn thảo riêng biệt tương ứng với hầu hết các file cấu hình và Layout của ứng dụng Android với định dạng XML Với những file Layout giao diện, Android Studio cho phép
Kiều Xuân Ninh Lớp: D12PTĐPT Trang 11
Trang 12Đề tài: Lập trình ứng dụng IZchat các lập trình viên dễ dàng chuyển đổi chế độ chỉnh sửa giữa trình biên soạn nội dung XML hoặc trình biên soạn dưới dạng giao diện (GUI)
Do đó Android Studio sẽ là môi trường phát triển ứng dụng tốt nhất trong Android
3 Kỹ thuật lập trình
Do đây là một ứng dụng khá phức tạp và có thể phải sửa chữa, nâng cấp nhiều lần nên lập trình hướng đối tượng sẽ là kỹ thuật được sử dụng cho ứng dụng này
Ứng dụng được xây dựng dựa trên bản phân tích thiết kế đã làm trước đó và gồm 4 lớp
Trong đó:
- MainActivity: Tập hợp các đối tượng phòng chát gồm các thuộc tính GroupID,
GroupName và các phương thức: Create_Group tương ứng với chức năng tạo nhóm chat
- Message: Tập hợp các đối tượng tin nhắn gồm các thuộc tính: chat_username,
message_content và các phương thức : send_message, receive_message
- RegisterActivity: Tập hợp các đối tượng người dùng gồm phương thức CreateNewUser tương ứng với chức năng đăng ký
- UserActivity: Tập hợp các đối tượng người dùng gồm các thuộc tính: name, username, password và các phương thức: loginwithpassword, logout tương ứng với 2 chức năng đăng nhập và đăng xuất
4 Công nghệ sử dụng
Ứng dụng áp dụng công nghệ Firebase của Google
Firebase là một dịch vụ cơ sở dữ liệu thời gian thực hoạt động trên nền tảng đám mây được cung cấp bởi Google nhằm giúp các lập trình phát triển nhanh các ứng dụng bằng
Trang 13Các chức năng chính của Google Firebase:
- Realtime Database – Cơ sở dữ liệu thời gian thực
Firebase lưu trữ dữ liệu database dưới dạng JSON và thực hiện đồng bộ database tới tất cả các client theo thời gian thực Cụ thể hơn là ta có thể xây dựng được client đa nền tảng (cross-platform client) và tất cả các client này sẽ cùng sử dụng chung 1 database đến từ Firebase và có thể tự động cập nhật mỗi khi dữ liệu trong database được thêm mới hoặc sửa đổi
- Firebase Authentication – Hệ thống xác thực của Firebase
Với Firebase, bạn có thể dễ dàng xác thực người dùng từ ứng dụng của bạn trên Android, iOS và JavaScript SDKs chỉ với một vài đoạn mã Firebase đã xây dựng chức năng cho việc xác thực người dùng với Email, Facebook, Twitter, GitHub, Google, và xác thực nạc danh Các ứng dụng sử dụng chức năng xác thực của FireBase có thể giải quyết được vấn đề khi người dùng đăng nhập, nó sẽ tiết kiện thời gian và rất nhiều các vấn đề phức tạp về phần backend Hơn nữa bạn có thể tích họp xác thực người dùng với các chức năng backend đã có sẵn sử dụng custom auth tokens
- Firebase Hosting
Phát triển ứng dụng web của bạn trong thời gian ngắn với các hosting tĩnh đã được cung cấp sẵn Tất cả các kết nối được phân phối qua SSL từ CDN trên toàn thể giới của Firebase
Triểu khai siêu tốc:Việc triển khai sử dụng các công cụ dòng lệnh Firebase và có thể quay trở lại với phiên bản trước chỉ với một cú click chuột Tất cả các ứng dụng sẽ có đường dẫn mặc đinh ở sau firebaseapp.com (https://techmastervn.firebaseio.com/) và nếu trả phí thì có thể triểu khai một tên miền tuỳ chỉnh
SSL bởi default:Mọi ứng dụng được xử lý thông qua một kết nối an toàn, và Firebase đã cẩn thận cung cấp SSL cert cho bạn
Kiều Xuân Ninh Lớp: D12PTĐPT Trang 13
Trang 14Đề tài: Lập trình ứng dụng IZchat
5 Một số hình ảnh ứng dụng
Hình : Chức năng đăng nhập
Trang 15Hình : Chức năng đăng ký
Hình : Màn hình chính sau khi đăng nhập thành công
Hình : Chức năng thêm phòng chat
Kiều Xuân Ninh Lớp: D12PTĐPT Trang 15
Trang 16Đề tài: Lập trình ứng dụng IZchat
Hình : Chức năng gửi tin nhắn