1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án Xây dựng ứng dụng chat trong Android với Firebase

72 17 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

MỤC LỤC CHƯƠNG 1: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID 1.1 Giới thiệu hệ điều hành android 1.1.1 Hệ điều hành 1.1.2 Hệ điều hành Android 1.2 Sự đời lịch sử phát triển 1.2.1 Sự đời Android 1.2.2 Lịch sử phát triển Android 1.3 Các phiên Android 1.3.1 Phiên Android 1.0 1.3.2 Phiên Android 1.5: CupCake 1.3.3 Phiên Android 1.6: Donut 1.3.4 Phiên Android 2.0 phiên Android 2.1: Eclair 1.3.5 Phiên Android 2.2: Froyo 1.3.6 Phiên Android 2.3: Gingerbread 10 1.3.7 Phiên Android 3.0: Honeycomb 10 1.3.8 Phiên Android 4.0: Ice Cream Sandwich 10 1.3.9 Phiên Android 4.1: Jelly Bean 10 1.3.10 Hệ điều hành Android 4.4: KitKat 11 1.3.11 Hệ điều hành Android 5.0: Lollipop 11 1.3.12 Phiên Android 6.0: Marshmallow 11 1.3.13 Phiên Android 7.0:nougat 11 1.3.14 Phiên 8.0:Oreo 12 1.3.15 Phiên Android P 12 1.4 Kiến trúc hệ điều hành Android 12 1.4.1 Linux kernel 13 1.4.2 Tầng Library Android Runtime 14 1.4.3 Tầng Application Framework 15 1.4.4 Tầng ứng dụng 16 CHƯƠNG 2: MƠI TRƯỜNG LẬP TRÌNH ANDROID STUDIO 18 2.1 Sơ lược Android Studio 18 2.2 Cài đặt sử dụng Android Studio 18 2.2.1 Cấu hình yêu cầu 18 2.2.2 Phần mềm Android Studio 19 2.2.3 Dự án Android studio 25 2.3 Thiết bị ảo Android Studio 31 CHƯƠNG 3: Lập trình Chat với Firebase 41 3.1 Tổng quan Firebase 41 3.1.1 Khái niệm 41 3.1.2 Lịch sử phát triển Firebase 41 3.1.3 Ưu nhược điểm Firebase 42 3.2 Tổng quan dịch vụ Firebase 42 3.2.1 Dịch vụ Firebase Analytics 43 3.2.2 Các dịch vụ phát triển kiểm thử ứng dụng 43 3.2.3 Các dịch vụ tăng trưởng thu hút người dùng 45 3.3 Một số kỹ thuật 47 3.3.1 Tạo dự án Firebase 47 3.3.2 Nhúng dự án Firebase vào ứng dụng 49 3.3.3 Quản lý người dùng 51 3.3.4 Chat kênh riêng tư 60 3.3.5 Xóa tin nhắn chat 62 3.3.6 Đăng xuất 64 3.4 Bài toán 64 3.5 Sơ đồ chức 65 3.6 Thiết kế liệu 65 3.6.1 Bảng liệu người dùng 65 3.6.2 Bảng thông tin nội dung tin nhắn 66 3.7 Giao diện chương trình 66 3.7.1 Giao diện 66 3.7.2 Giao diện đăng ký 67 3.7.3 Giao diện đăng nhập 68 3.7.4 Giao diện thông tin người dùng 68 3.7.5 Giao diện danh sách người dùng 70 3.7.6 Giao diện chat 71 KẾT LUẬN 72 TÀI LIỆU THAM KHẢO 73 CHƯƠNG 1: GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID 1.1 Giới thiệu hệ điều hành android 1.1.1 Hệ điều hành Hệ điều hành phần mềm dùng để điều hành, quản lý thiết bị phần cứng tài nguyên phần mềm Hệ điều hành đóng vai trị trung gian việc giao tiếp người sử dụng phần cứng máy, cung cấp môi trường cho phép người sử dụng phát triển thực ứng dụng họ cách dễ dàng 1.1.2 Hệ điều hành Android Android hệ điều hành điện thoại di động có hình cảm ứng điện thoại thơng minh, máy tính bảng số đầu phát HD, HD Player, TV Được phát triển Google dựa tảng Linux[1] Trước Android phát triển cơng ty liên hợp Android, sau Google mua lại vào năm 2005 Các nhà phát triển viết ừng dụng bằn cho Android ngôn ngữ Java Android mắt lần vào ngày tháng 11 năm 2007 tuyên bố thành lập Liên minh thiết bị cầm tay mở Một hiệp hiệp hội thành lập với công ty phần cứng, phần mềm viễn thơng với mục đích tạo nên chuẩn mở cho điện thoại thông minh tương lai Android hệ điều hành mã nguồn mở với việc phát hành mã nguồn mở theo giấy phép Apache Google Apache là giấy phép khơng có nhiều ràng buộc với mã nguồn mở cho phép nhà phát triển thiết bị di,các nhà mạng lập trình viên nhanh chóng tiếp cận điểu chỉnh phân phối Android cách tự Một số lượng lớn lập trình viên chuyên viết ứng dụng mở rộng chức thiết bị, ngôn ngữ lập trình Java có sửa đổi Nhờ yếu tố mở giấy phép khơng có nhiều ràng buộc, Android ngày trở thành tảng dị động tiếng khắp giới Bằng chứng với chất “mở” Android thu hút cộng đồng lập trình viên, chuyên viên phát triển ứng dụng, theo thông kê tháng 10 năm 2012 xuất khoảng 700.000 ứng dụng Android số lượng tải từ Google Play, cửa hàng ứng dụng Android ước tính vào khoảng 25 tỷ lượt Về mặt thiết bị tảng liên tục nhà sản xuất thiết bị lựa chọn mà Android hội tụ nhiều ưu điểm như: vận hành nhẹ nhàng, có khả tinh chỉnh tốt tiết kiệm chi phí để chạy thiết bị cơng nghệ cao Hình 1.1.1: Kho ứng dụng Android Vào thời điểm quý II năm 2017 Android chiếm 87,7% thị phần smartphone toàn giới với tổng cộng tỷ thiết bị kích hoạt 1,3 triệu lượt kích hoạt ngày Đây xem dấu ấn mạnh mẽ công khẳng định vị Android thị trường quốc tế 1.2 Sự đời lịch sử phát triển 1.2.1 Sự đời Android Cha đẻ Android: hệ điều hành Android lấy tên từ Android, Inc cơng ty khai sinh nó[1] Cơng ty thành lập Palo Alto, California vào tháng 10 năm 2003 Andy Rubin, Rich Miner, Chris White Mặc dù người sáng lập nhân viên cơng ty người có tiếng tăm, Android Inc hoạt động cách âm thầm, tiết lộ họ làm phần mềm cho điện thoại di động Cuối năm 2003, Rubin cạn vốn Bạn thân ông Steve Perlman, hùn vốn 10 ngàn USD từ chối tham gia vào công ty 1.2.2 Lịch sử phát triển Android Trở thành phần Google: ngày 17/08/2005 Google mua lại Android Inc, biến thành phần trực thuộc Google Những nhân viên chủ chốt tổng công ty Android Rubin, Miner While tiếp tục lại phát triển hệ điều hành họ Quyết định đưa để sử dụng Linux làm làm tảng cho hệ điều hành Android điều có nghĩa Android cung cấp miễn phí cho nhà sản xuất điện thoại di động bên thứ ba Google nhóm Android cảm thấy cơng ty kiếm tiền với dịch vụ khác sử dụng hệ điều hành, bao gồm ứng dụng Tại Google, nhóm Rubin đứng đầu phát triển tảng thiết bị di động dựa nhân Linux, họ tiếp thị đến nhà sản xuất thiết bị cầm nhà mạng tiền đề việc cung cấp hệ thống mềm dẻo, có khả nâng cấp mở rộng cao Một số nguồn tin cho biết trước Google lên danh sách thành phần phần cứng đối tác phần mềm, đồng thời hiệu với nhà mạng họ sẵn sàng hợp tác nhiều cấp độ khác Ngày nhiều suy đoán Google tham gia thị trường điện thoại di động xuất tháng 12 năm 2006 Tin tức BBC Nhật báo phố Wall thích Google muốn đưa cơng nghệ tìm kiếm ứng dụng họ vào điện thoại di động họ nỗ lực làm việc để thực điều Các phương tiện truyền thơng in online sớm có viết tin đồn cho Google phát triển thiết bị cầm tay mang thương hiệu Google Càng có nhiều suy đốn sau viết việc Google định nghĩa đặc tả công nghệ trình diễn mẫu thử với nhà sản xuất điện thoại di động nhà mạng Android liên tục phát triển, cập nhật từ Google lần Android tối ưu hóa hoạt động tốt hơn, nhanh ổn định hơn, hỗ trợ thêm cơng nghệ Chẳng hạn theo đanh giá Android phiên 2.2 hoạt động nhanh 2.1 tới 450% Hiện nay, phiên Android phiên Android Q 1.3 Các phiên Android Android bắt đầu với beta vào tháng 11 năm 2007 phiên thương mại đầu tiên[2] Android 1.0 phát hành vào tháng năm 2008 Kể từ tháng năm 2009, phiên Android phát triển, đặt tên theo chủ đề bánh kẹo phát hành theo thứ tự bảng chữ cái: Cupcake, Donut, Éclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, Kithat, phiên Lollipop Kỷ nguyên Android thức bắt đầu vào ngày 22 tháng 10 năm 2008, điện thoại T-Mobile G1 bắt đầu bán Mỹ Vào thời gian đầu, nhiều tính bị thiếu sót như: bàn phím ảo, cảm ứng đa điểm tính mua ứng dụng chưa xuất Tuy nhiên, số tính giao diện đặc sản hệ điều hành khởi nguồn từ G1 trở thành yếu tố thiếu Android sau 1.3.1 Phiên Android 1.0 Lần phiên Android phát hành vào ngày 23 tháng năm 2003 So với hệ điều hành di động phổ biến thời điểm đó, Android đem đến nhiều trải nghiệm mẻ độc đáo hình Home Screen, thành thơng báo Notifications kích hoạt theo phương thức vuốt dọc hình theo chiều từ xuống Ngồi ra, giới cơng nghệ cịn ấn tượng với khả liên kết với Google Mail Android 1.0 Sảm phẩm làm lên tên tuổi cho Android sau HTC Cream, mắt năm sau 1.3.2 Phiên Android 1.5: CupCake Tên mã cơng khai thức Android không xuất phiên 1.5 Cupcake vào ngày 27 tháng năm 2009 Nó bổ sung nhiều tính cải tiến só với hai phiên cơng khai đâu tiên, khả tải video lên YouTube, cách hiển thị hình điện thoại tự động xoay chiều sang ví trị hỗ trợ bàn phím bên thứ ba Một số điện thoại phát hành với Cucake bao gồm điện thoại Samsung Galaxy đầu tiên, với HTC Hero 1.3.3 Phiên Android 1.6: Donut Google nhanh chóng tung Android 1.6 Donut vào tháng năm 2009 Một số tính hỗ trợ cho nhà mạng sử dụng mạng CDMA Điều giúp đưa điện thoại Android bán tồn giới Các tính khác bao gồm việc giới thiệu Quick Search Box nhanh chóng chuyển đổi máy ảnh, máy quay thư viện để xếp trải nghiệm chụp media Donut giới thiệu tiện ích Power Control để quản lý Wifi, Bluetooth, GPS,… 1.3.4 Phiên Android 2.0 phiên Android 2.1: Eclair Vào thang 10 năm 2009, sau khoảng năm tung Android 1.0, Google tung 2.0 với tên Eclair Đây phiên bổ sung hỗ trợ Text-to-Speech giới thiệu hình động, hỗ trợ nhiều tài khoản điều hương Google Maps số nhiều tính cải tiến khác 1.3.5 Phiên Android 2.2: Froyo Ra mắt vào tháng năm 2010, Android 2.2 Froyo thức mắt Điện thoại thơng minh có cài đặt Froyo tận dụng số tính mới, bao gồm chức điểm phát sóng di động Wifi, đẩy thông báo qua dịch vụ C2DM Android Cloud, hỗ trợ flash nhiều 1.3.6 Phiên Android 2.3: Gingerbread Được mắt vào tháng năm 2010, phiên cũ hệ điều hành mà Google liệt kê trang cập nhật phiên hàng tháng Tính đến ngày 13/09/2017 Google 0,6% tất thiết bị Android chạy phiên 2.3 Hệ điều hành thêm hỗ trợ chức giao tiếp NFC 1.3.7 Phiên Android 3.0: Honeycomb Honeycomb Google phát hành để cài đặt máy tính bảng thiết bị di động có hình lớn so với điện thoại thơng minh Honeycomb lần giới thiệu vào tháng năm 2011, với thiết kế phù hợp với máy tính bảng 1.3.8 Phiên Android 4.0: Ice Cream Sandwich Được phát hành vào tháng 10 năm 2011, phiên Ice Cream Sandwich Android mang số tính cho người dùng Nó kết hợp nhiều tính phiên Honeycomb dành cho máy tính bảng với Gingerbread theo định hướng smartphone Cùng với hỗ trợ để mở khóa điện thoại cách chụp ảnh khuôn mặt chủ sở hữu Loại hỗ trợ sinh trắc học phát triển cải thiện đáng kể từ 1.3.9 Phiên Android 4.1: Jelly Bean Kỷ nguyên Jelly Bean Android bắt đầu vào tháng năm 2012 với việc phát hành Android 4.1 Một số tính bao gồm thông báo cho thấy nhiều nút nội dung với hỗ trợ đầy đủ cho phiên trình duyệt web Chrome Android Google Now xuất Search “Project Butter” giới thiệu để tăng tốc độ hoạt hình cải thiện khả phản ứng cảm ứng Android Màn hình, chụp ảnh HDR Miracast hỗ trợ Hiện có khoảng 6.9% tất sản phẩm Android sử dụng Jelly Bean 10 1.3.10 Hệ điều hành Android 4.4: KitKat KitKat khơng có nhiều tính mới, có điều mà thực giúp mở rộng thị trường Android tổng thể Nó tối ưu hóa để chạy điện thoại thơng minh có 512 MB RAM Điều cho phép nhà sản xuất điện thoại để có phiên Android cài đặt điện thoại rẻ nhiều 1.3.11 Hệ điều hành Android 5.0: Lollipop Được mắt lần đầu vào mùa thu năm 2014, Android 5.0 Lollipop thay đổi lớn giao diện tổng thể hệ điều hành Đây phiên sử dụng ngôn ngữ Material Design Google, sử dụng hiệu ứng ánh sáng bóng tối tự UI có thay đổi khác cho hình khóa nhiều Bản cập nhật Android 5.1 có số thay đổi tính bao gồm hỗ trợ thức cho gọi đôi, gọi thoại HD bảo vệ thiết bị sau khôi phục cài đặt gốc 1.3.12 Phiên Android 6.0: Marshmallow Android 6.0 Marshmallow phát hành vào mùa thu năm 2015 Nó bao gồm tính ngăn kéo ứng dụng di chuyển theo chiều dọc, Google Now Tap, hỗ trợ mở khóa sinh trắc học, hỗ trợ USB Type-C, Android Pay, nhiều 1.3.13 Phiên Android 7.0:nougat Phiên 7.0 hệ điều hành di động Google mắt vào mùa thu năm 2016 Trước Nougat tiết lộ “Android N” Google gọi nội “New York Cheesecake” Một số tính Nougat bao gồm chức đa tác vụ tốt cho số lượng ngày tăng điện thoại thơng minh có hình lớn, chẳng hạn chế độ chia hình với việc chuyển đổi nhanh ứng dụng 11 Ở tạo khởi tạo Constructor để đẩy liệu lên tạo Constructor rỗng để nhận liệu Bình thường sử dụng ArrayAdapter có sẵn, listview thị liệu đoạn text dòng, dịng có text image view khơng dùng mà phải custom lại liệu hiển thị được, tạo class AdapterUser Tiếp theo hiển thị tất tài khoản UserFragmentt.java Tại khai báo biến sau: RecyclerView recyclerView; AdapterUser adapterUser; List userList; FirebaseAuth mAuth; Ở xây dựng hàm getAllUser để hiển thị danh sách người dùng lên Recycler View private void getAllUsers() { //get current user final FirebaseUser fUser= FirebaseAuth.getInstance().getCurrentUser(); //Get path of database named "Users" containing users info DatabaseReference ref= FirebaseDatabase.getInstance().getReference("Users"); ref.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { userList.clear(); for (DataSnapshot ds: dataSnapshot.getChildren()){ ModeIUser modeIUser=ds.getValue(ModeIUser.class); //get all users except currently signed in user if (!modeIUser.getUid().equals(fUser.getUid())){ userList.add(modeIUser); //adapter adapterUser=new AdapterUser(getActivity(),userList); //set adapter to recycler view recyclerView.setAdapter(adapterUser); } } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }); } 59 3.3.4 Chat kênh riêng tư Để chat hai tài khoản với nhau, hiển thị nội dung tin nhắn, hiển thị thời gian thực ảnh đại diện gửi cần tạo class ModelChat để lưu trữ liệu gồm có thuộc tính sau: String message,receiver,sender,timestamp; boolean isSeen; boolean redelete; Các thuộc tính class ModelChat gồm có:  message: nội dung tin nhắn  receiver: Id người nhận  sender: Id người gửi  timestamp: thời gian gửi/nhận tin nhắn  isSeen: xem  redelete: xóa tin nhắn người gửi Ở tạo khởi tạo Constructor để đẩy liệu lên tạo Constructor rỗng để nhận liệu Bình thường sử dụng ArrayAdapter có sẵn, listview thị liệu đoạn text dịng, cịn dịng có text image view khơng dùng mà phải custom lại liệu hiển thị được, tạo class AdapterChat Khi chạm vào tài khoản mà muốn chat hệ thống chuyển sang giao diện chat myHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(context,ChatActivity.class); intent.putExtra("hisUid",hisUID); context.startActivity(intent); } 60 Trong trình chuyển đổi hai giao diện đồng thời hisUid người muốn chat sang bên ChatActivity Ở bên ChatActivity muốn lấy hiUid sử dụng câu lệnh sau: Intent intent = getIntent(); hisUid = intent.getStringExtra("hisUid"); Ở bên giao diện chat bắt kiện cho nút gửi tin nhắn Nếu liệu EditText mà rỗng hiển thị thông báo "cannot send the empty message" Ngược lại gọi tới hàm sendMessage(message): private void sendMessage(String message) { DatabaseReference databaseReference=FirebaseDatabase.getInstance().getReference(); String timestamp=String.valueOf(System.currentTimeMillis()); HashMaphashMap=new HashMap(); hashMap.put("sender",myUid); hashMap.put("receiver",hisUid); hashMap.put("message",message); hashMap.put("timestamp",timestamp); hashMap.put("isSeen",false); hashMap.put("redelete",true); databaseReference.child("Chats").push().setValue(hashMap); //reset edittext messageEt.setText(""); } Sau liệu đẩy lên Database ta hiển thị nội dung tin nhắn, ảnh người gửi thời gian thực nhận gửi tin nhắn hàm đây: private void readMessages() { chatList = new ArrayList(); DatabaseReference dbRef= FirebaseDatabase.getInstance().getReference("Chats"); dbRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { chatList.clear(); for (DataSnapshot ds: dataSnapshot.getChildren()){ ModelChat chat = ds.getValue(ModelChat.class); if ((chat.getReceiver().equals(myUid)&& chat.getSender().equals(hisUid)&&ds.child("redelete").getValue().equals(true))|| chat.getReceiver().equals(hisUid)&&chat.getSender().equals(myUid)) { chatList.add(chat); } adapterChat=new AdapterChat(ChatActivity.this,chatList,hisImage); adapterChat.notifyDataSetChanged(); //set adpter to recyclerview recyclerView.setAdapter(adapterChat); 61 } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }); } Ở khai báo khởi tạo DatabaseReference để truy xuất vào root Chats Sau gọi biến vừa khai báo thêm phương thức addValueEventListener(new ValueEventListener()) khởi tạo cho nó, tự phát sinh phương thức cho gồm có onDataChange onCancelled Trong hàm onDataChange có thay đổi giá trị root Chats trả hàm onDataChange có tham số dataSnapshot Dùng vịng lặp for để lấy tất giá trị root Chats Ở kiểm tra điều kiện id người nhận mà myUid id người gửi hisUid trường "redelete" có giá trị true, id người nhận hisUid id người gửi myUid thêm giá trị nội dung chat vào chatList Sau đẩy vào adapterChat sau đẩy hiển thị recyclerView 3.3.5 Xóa tin nhắn chat Muốn xóa tin nhắn bắt kiện click vào messageLayout: myHoder.messageLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Xóa"); builder.setMessage("Bạn có chắn muốn xóa tin nhắn này?"); // delete button builder.setPositiveButton("Xóa", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which) { deleteMessage(i); } }); // cancel delete button builder.setNegativeButton("Hủy", new DialogInterface.OnClickListener() { @Override 62 public void onClick(DialogInterface dialogInterface, int which) { // dimiss dialog dialogInterface.dismiss(); } }); // create and show dialog builder.create().show(); } }); Tạo button "Delete" "No" bắt kiện button "Delete" gọi hàm deleteMessage(i) private void deleteMessage(int position) { final String myUID = FirebaseAuth.getInstance().getCurrentUser().getUid(); String timestamp=chatList.get(position).getTimestamp(); DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference("Chats"); Query query = dbRef.orderByChild("timestamp").equalTo(timestamp); query.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot dataSnapshot) { for (DataSnapshot ds: dataSnapshot.getChildren()){ if (ds.child("sender").getValue().equals(myUID)){ DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Chats"); HashMap hashMap = new HashMap(); hashMap.put("senddelete",false); ds.getRef().updateChildren(hashMap); Toast.makeText(context, "Đã xóa ", Toast.LENGTH_SHORT).show(); } else if (ds.child("receiver").getValue().equals(myUID)){ DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("Chats"); HashMap hashMap = new HashMap(); hashMap.put("redelete",false); ds.getRef().updateChildren(hashMap); Toast.makeText(context, "Đã xóa ", Toast.LENGTH_SHORT).show(); } } } @Override public void onCancelled(@NonNull DatabaseError databaseError) { } }); Xóa tin nhắn gửi đi: Lấy id người dùng thời, lấy thời gian chat tin nhắn muốn xóa ứng dụng so sánh với thời gian tin nhắn database 63 xem có hay khơng id người gửi với myUid cho giá trị senddelete = false xóa tin nhắn Xóa tin nhắn người khác gửi tới cho mình: Nếu Id người nhận có với myUid, thời gian tin nhắn muốn xóa chatList với thời gian tin nhắn database chuyển giá trị "redelete" true sau update lại vào database xóa tin nhắn 3.3.6 Đăng xuất Muốn đăng xuất khỏi hệ thống cần chạm vào phần đăng xuất góc bên trái ứng dụng để đăng xuât Hệ thống tự động gọi tới phương thức mAuth.signOut() để đăng xuất 3.4 Bài toán Trao đổi thông tin với hàng ngày nhu cầu tất yếu người Cuộc cách mạng công nghiệp 4.0 ngày thu hẹp khoảng cách người với ứng dụng mạng xã hội, chat trực tuyến Tuy 64 nhiên việc sử dụng dịch vụ để chat với thiết bị di động cịn có nhiều điểm bất tiện dung lượng cài ứng dụng đặt lớn, tiêu tốn nhiều nhớ ram xử lý gửi nhận tin nhắn chưa thực thi theo thời gian thực RealTime Firebase Database Google Firebase sở liệu thời gian thực có khả xử lý liệu đủ nhanh cho kết phản hồi gần tức thời Ứng dụng chat thời gian thực dựa RealTime Firebase Database giúp người nhận thông tin quan trọng từ phía đối tác 3.5 Sơ đồ chức Sơ đồ phân rã chức chương trình chat Hình 3.5.1: Sơ đồ chức chương trình chat 3.6 Thiết kế liệu 3.6.1 Bảng liệu người dùng STT Tên trường Kiểu liệu name String Độ rộng Mô tả Tên người dùng 65 email String Địa email search String Tìm kiếm phone String Số điện thoại image String đường dẫn hình ảnh cover String đường dẫn ảnh uid String Id người dùng Hình 3.6.1: Dữ liệu người dùng 3.6.2 Bảng thông tin nội dung tin nhắn STT Tên trường Kiểu liệu Độ rộng Mô tả message String nội dung tin nhắn receiver String Id người nhận sender String id người gửi timestamp String thời gian tin nhắn isSeen boolean xem/chưa xem redelete boolean xóa tin nhắn người gửi Hình 3.6.2: Thơng tin nội dung tin nhắn 3.7 Giao diện chương trình 3.7.1 Giao diện Khi ứng dụng khỏi động Giao diện hiển thị hình bên 66 Hình 3.7.1: Giao diện chương trình 3.7.2 Giao diện đăng ký Sau chạm vào nút "ĐĂNG KÝ" giao diện chương trình chương trình chuyển qua giao diện đăng ký hình bên Hình 3.7.2: Giao diện đăng ký tài khoản 67 Sau người dùng nhập thông tin email password người dùng ấn nút "Đăng ký" Đăng ký thành công giao diện chuyển qua hình thơng tin người dùng 3.7.3 Giao diện đăng nhập Sau có tài khoản chạm vào nút "ĐĂNG NHẬP" giao diện chương trình chương trình chuyển qua giao diện đăng nhập hình bên Hình 3.7.3: Giao diện đăng nhập tài khoản Người dùng nhập email password sau ấn "ĐĂNG NHẬP" thành công hệ thống chuyển qua giao diện thông tin người dùng 3.7.4 Giao diện thông tin người dùng Giao diện thông tin người dùng sau đăng nhập đăng ký thành công Sau chạm vào nút chỉnh sửa thông tin cá nhân, hình hiển thị ra, lựa chọn chỉnh sửa ảnh đại diện, ảnh nền, tên, số điện thoại 68 Hình 3.7.4: Giao diện thông tin người dùng Để chỉnh sửa ảnh đại diện chạm vào " Edit Profile picture" (1) sau hình bên Chọn ảnh thư viện ảnh camera chụp ảnh Việc chỉnh sửa anh "Edit cover Photo" (2) tương tự Để chỉnh sửa tên người dùng chạm vào "Edit Name" (3) sau giao diện để nhập thông tin 69 Người dùng cần nhập tên cần chỉnh sửa ô nhập liệu chạm vào "UPDATE" tên người dùng thêm chỉnh sửa Còn muốn hủy thao tác chạm vào "CANCEL" Với việc chỉnh sửa số điện thoại người dùng tương tự chỉnh sửa tên 3.7.5 Giao diện danh sách người dùng Muốn hiển thị danh sách người dùng chạm vào biểu tượng bên để hiển thị tất danh sách người dùng, giúp hiển thị tất tài khoản để tìm kiếm lựa chọn người mà muốn chat Hình.3.7.5: Giao diện danh sách người dùng 70 3.7.6 Giao diện chat Khi chạm vào người dùng danh sách người dùng mà muốn gửi tin nhắn chương trình chuyển đến giao diện chat Hình.3.7.6: Giao diện Chat Ở giao diện chat người dùng nhập nội dung vào ô tin nhắn sau chạm vào biểu tượng gửi tin nhắn nội dung tin nhắn gửi thành công 71 KẾT LUẬN Sau thời gian tìm hiểu đề tài: "Xây dựng ứng dụng chat android với firebase" em thực nôi dung đề tài theo yêu cầu đặt Với mục tiêu tìm hiểu hệ điều hành Android, tìm hiểu mơi trường lập trình Android Studio tìm hiểu kỹ thuật để xây dựng ứng dụng hoàn chỉnh thiết bị thật Thơng qua việc tìm hiểu nắm bắt lý thuyết hệ điều hành Android, bước đầu xây dựng thành cơng chương trình thực nghiệm với chức  Trong trình tìm hiểu lý thuyết hệ điều hành Android xây dựng ứng dụng em thu kết sau:  Hiểu lớp đối tượng, phương thức hỗ trợ lập trình hệ điều hành Android  Hiểu dịch vụ Firebase  Xây dựng ứng dụng với chức năng: Đăng ký, đăng nhập, hiển thị danh sách người dùng, hiển thị chỉnh sửa profile, chat kênh riêng tư  Đóng gói ứng dụng thành file.apk cho phép cài đặt điện thoại Android  Đưa thành công ứng dụng lên Google Play cho phép người dùng tìm hiểu cài đặt thiết bị thật Do thời gian có hạn với kiến thức thân hạn chế nên em chưa tìm hiểu sâu kiến thức liên quan tới hệ điều hành Android nên chương trình em cịn nhiều hạn chế, em cố gắng phát triển thêm để chương trình thân thiện, dễ sử dụng có nhiều chức để áp dụng vào đời sống 72 TÀI LIỆU THAM KHẢO [1] https://vi.wikipedia.org/wiki/Android_(hệ_điều_hành) [2] https://fptshop.com.vn/tin-tuc/danh-gia/lich-su-phat-trien-cua-android-hedieu-hanh-di-dong-pho-bien-nhat-the-gioi-55019 [3] http://androidtmc.blogspot.com/2015/08/android-tutorial-for-beginnerspart-1.html [4] https://xaiandroid.com/huong-dan-tao-may-ao-android-bang-genymotiontren-may-tinh.html [5].https://androidcoban.com/tong-quan-ve-firebase-google-phien-banmoi.html 73 ... án Name: tên ứng dụng, tên xuất hình thiết bị android người dùng cài đặt ứng dụng lên Người dùng nhìn vào hình nhỏ bên cạnh thấy tên ứng dụng xuất phía icon ứng dụng Người dùng viết hoa tên ứng. .. mơ ứng dụng mobile phát triển Hỗ trợ tảng Android IOS, Firebase mạnh mẽ, đa năng, bảo mật dịch vụ cần thiết đâu tiên để xây dựng ứng dụng với hàng triệu người sử dụng 3.1.2 Lịch sử phát triển Firebase. .. báo báo có tin nhắn, có E-mail mới…) 1.4.4 Tầng ứng dụng Đây lớp ứng dụng giao tiếp với người dùng, bao gồm ứng dụng như: ứng dụng bản, cài đặt liền với hệ điều hành gọi điện, quản lý danh bạ, duyệt

Ngày đăng: 09/08/2021, 12:23

Xem thêm:

HÌNH ẢNH LIÊN QUAN

Hình 1.1.1: Kho ứng dụng Android - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 1.1.1 Kho ứng dụng Android (Trang 5)
Hình 2.2.1 Trang dowload Android Studio - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.1 Trang dowload Android Studio (Trang 18)
Hình 2.2.3: File setup Android Bấm next đê tiếp tục cài đặt - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.3 File setup Android Bấm next đê tiếp tục cài đặt (Trang 19)
Hình 2.2.4: Giao diện cài đặt android studio - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.4 Giao diện cài đặt android studio (Trang 19)
Hình 2.2.5: Giao diện cài đặt AVD Chon Install  để cài đặt android studio. - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.5 Giao diện cài đặt AVD Chon Install để cài đặt android studio (Trang 20)
Hình 2.2.7: Bắt đầu cài đặt android studio - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.7 Bắt đầu cài đặt android studio (Trang 20)
Hình 2.2.9: Giao diện chào mừng Android studio - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.9 Giao diện chào mừng Android studio (Trang 22)
Hình 2.2.9: Phần thiết lập cài đặt cũ - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.9 Phần thiết lập cài đặt cũ (Trang 22)
Hình 2.2.10: Màn hình chọn kiểu cài đặt cho android studio Chọn chủ đề màu sáng hoặc tối tùy thích sau đó bấm Next. - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.10 Màn hình chọn kiểu cài đặt cho android studio Chọn chủ đề màu sáng hoặc tối tùy thích sau đó bấm Next (Trang 23)
Hình 2.2.12: Màn hình cài đặt xác định các gói hỗ trợ - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.12 Màn hình cài đặt xác định các gói hỗ trợ (Trang 24)
Hình 2.2.14: Màn hình lựa chọn dự án - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.2.14 Màn hình lựa chọn dự án (Trang 24)
Sau khi tạo thành công project, sẽ được kết quả như hình bên dưới - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
au khi tạo thành công project, sẽ được kết quả như hình bên dưới (Trang 26)
Đây là hình ảnh project trên Android: - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
y là hình ảnh project trên Android: (Trang 28)
Tiếp theo sẽ xuất hiện một màn hình chọn máy ảo cho để chạy chương trình. - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
i ếp theo sẽ xuất hiện một màn hình chọn máy ảo cho để chạy chương trình (Trang 29)
Sau khi máy ảo được tạo ra như hình 2.3.5 bấm vào tên máy ảo sau đó bấm vào hình tam giác bên cạnh để khởi động máy ảo - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
au khi máy ảo được tạo ra như hình 2.3.5 bấm vào tên máy ảo sau đó bấm vào hình tam giác bên cạnh để khởi động máy ảo (Trang 33)
Hình 2.3.6: Giao diện máy ảo Cách 2 cài đặt máy ảo Genymotion  - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.3.6 Giao diện máy ảo Cách 2 cài đặt máy ảo Genymotion (Trang 34)
Hình 2.3.7: File cài đặt Genymotion - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.3.7 File cài đặt Genymotion (Trang 36)
Hình 2.3.9: Genymotion cần có giấy phép - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.3.9 Genymotion cần có giấy phép (Trang 37)
Hình 2.3.8 Màn hình đăng nhâp của Genymotion - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.3.8 Màn hình đăng nhâp của Genymotion (Trang 37)
Hình 2.3.11: Giao diện chính của genymotion - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.3.11 Giao diện chính của genymotion (Trang 38)
Hình 2.3.10: Thỏa thuận cấp phép người dùng - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.3.10 Thỏa thuận cấp phép người dùng (Trang 38)
Hình 2.3.12: Màn hình khởi động thiết bị ảo - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 2.3.12 Màn hình khởi động thiết bị ảo (Trang 39)
Toast.makeText(getActivity(), " Lỗi cập nhật hình ảnh ", - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
oast.make Text(getActivity(), " Lỗi cập nhật hình ảnh ", (Trang 56)
Hình 3.5.1: Sơ đồ chức năng chương trình chat - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 3.5.1 Sơ đồ chức năng chương trình chat (Trang 64)
5 image String đường dẫn hình ảnh - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
5 image String đường dẫn hình ảnh (Trang 65)
Hình 3.7.2: Giao diện đăng ký tài khoản - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 3.7.2 Giao diện đăng ký tài khoản (Trang 66)
Hình 3.7.3: Giao diện đăng nhập tài khoản - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
Hình 3.7.3 Giao diện đăng nhập tài khoản (Trang 67)
3.7.5 Giao diện danh sách người dùng - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
3.7.5 Giao diện danh sách người dùng (Trang 69)
Hình.3.7.6: Giao diện Chat - Đồ án Xây dựng ứng dụng chat trong Android với Firebase
nh.3.7.6 Giao diện Chat (Trang 70)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w