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

Bài Tập Lớn Phát Triển Ứng Dụng Cho Thiết Bị Di Động -Xây Dựng Ứng Dụng Mobile Đọc Sách Điện Tử.pdf

29 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây dựng ứng dụng mobile đọc sách điện tử
Tác giả Lê Quang Đức, Nguyễn Văn Dực, Đỗ Tiến Đạt
Trường học Trường Đại học Công nghệ Đông Á
Chuyên ngành Công nghệ thông tin
Thể loại Bài tập lớn
Năm xuất bản 2023
Thành phố Bắc Ninh
Định dạng
Số trang 29
Dung lượng 3,32 MB

Nội dung

ĐỘNG NHÓM: ĐỀ SỐ: 10 TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG MOBILE ĐỌC SÁCH ĐIỆN TỬ STT Sinh viên thực Điểm bằng số Điểm bằng chữ... Trước như cầu đó, cùng với yêu cầu môn học, nhóm chúng em quyế

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

KHOA: CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚNHỌC PHẦN: PHÁT TRIỂN ỨNG DỤNG CHO THIẾT BỊ DI

Trang 2

ĐỘNG NHÓM:

ĐỀ SỐ: 10 TÊN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG MOBILE

ĐỌC SÁCH ĐIỆN TỬ

STT Sinh viên thực

Điểm bằng số

Điểm bằng chữ

Trang 3

MỤC LỤC

LỜI MỞ ĐẦU 4

CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI 5

1.1 Lý do chọn đề tài 5

1.2 Mục tiêu của đề tài 5

1.3 Nội dung thực hiện 5

1.4 Khảo sát và phân tích ứng dụng 6

1.5 Các yêu cầu về chức năng 6

2 Biểu đồ Diagram 8

CHƯƠNG 2 TRIỂN KHAI ỨNG DỤNG 9

1 Triển Khai Giao Diện Hệ Thống 9

2 Triển khai các chức năng của hệ thống 16

Chức năng đăng nhập 16

Chức năng tìm kiếm 22

Chức năng đăng bài 26

3 Kiểm thử và triển khai ứng dụng 30

4 Định hướng phát triển ứng dụng 30

Trang 4

LỜI MỞ ĐẦU

Ngày nay Internet đã trở thành dịch vụ phổ biến, thiết yếu và có ảnh hưởng sâurộng tới thói quen, sinh hoạt, giải trí của nhiều người nhất là trong khi tình hình dịchngày càng phức tạp nhiều diễn biến Với sự phát triển của internet thì các hình thứcgiai trí cho mọi người ngày càng đa dạng và phát triển hơn Các ứng dụng web ngàycàng trở nên phổ biến Trước như cầu đó, cùng với yêu cầu môn học, nhóm chúng em

quyết định chọn đề tài Xây dựng ứng dụng mobile Đọc sách điện tử

Để có thể hoàn thành bài tập lớn này, lời đầu tiên em xin phép gửi lời cảm ơn tớithầy cô bộ môn, Khoa Công nghệ thông tin đã tạo điều kiện thuận lợi cho em thực hiệnbài tập lớn môn học này

Đặc biệt em xin chân thành cảm ơn thầy đã rất tận tình hướng dẫn, chỉ bảo emtrong suốt thời gian thực hiện đồ án vừa qua

Em cũng xin chân thành cảm ơn tất cả các Thầy, các Cô trong Trường đã tận tìnhgiảng dạy, trang bị cho em những kiến thức cần thiết, quý báu để giúp em thực hiệnđược bài tập lớn này

Mặc dù em đã có cố gắng, nhưng với trình độ còn hạn chế, trong quá trình thựchiện đề tài không tránh khỏi những thiếu sót Em hi vọng sẽ nhận được những ý kiếnnhận xét, góp ý của các Thầy giáo, Cô giáo về những kết quả triển khai trong đồ án

Em xin trân trọng cảm ơn!

4

Trang 5

CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI

Nhưng đọc truyện qua smartphone/tablet còn có vài thứ bất cập của nó chẳng hạnnhư là tốc độ tải hình ảnh qua web trên smartphone thường chậm hơn trên pc/laptopbởi vì bộ nhớ điện thoại rất ít và trình duyệt web xử lí thao tác nhiều tác vụ khác nhaucộng thêm tốc độ mạng chậm khiến nhiều người vô cùng khó chịu Nhưng ứng dụngđọc truyện tranh thì khác, khi người đọc mở trang truyện nào đó thì tất cả tập trung xử

lí hình ảnh truyện và cũng tốn ít dung lượng 4G hơn bên trang web và các nhóm dịchtruyện dễ dàng nhận được nguồn vốn đóng góp quỹ duy trì hoạt động Từ đó, tôi muốnxây dựng một ứng dụng đọc truyện miễn phí cho mọi người để không còn ai đắn đoviệc đọc truyện qua mạng tốn dung lượng 4G và tốc độ xử lí chậm chạp

1.2 Mục tiêu của đề tài

1.3 Nội dung thực hiện

Hệ thống ứng dụng thực hiện sẽ được mô tả như sau:

- Người dùng phải đăng kí và đăng nhập để dọc truyện

Trang 6

- Người dùng có thẻ đánh giá , chia sẻ, yêu thích.

1.4 Khảo sát và phân tích ứng dụng

Trong thời đại 4.0 ai cũng có cho riêng mình một chiếc điện thoại thông minh

để cập nhật mọi tin tức đời sống cũng như để giải trí sau những giờ làm việc căngthẳng bằng việc như: đọc truyện tranh online,… Nhưng hầu hết phải lên các trang webchính thống để đọc do đó nó có rất nhiều bất cập xảy đến như: yêu cầu phải kết nối vớimạng internet, đắn đo về dung lượng khi đọc truyện qua mạng, tốc độ xử lý chậm, …

Do đó chúng em muốn mang tới một ứng dụng có thể thay đổi được các bất cậpxảy đến khi đọc truyện tranh hay đọc sách online xảy ra với người sử dụng Nhằmmang đến một ứng dụng trên điện thoại có thể giúp mọi người đọc truyện không bịgián đoạn hay phải lo nghĩ về hết data khi sử dụng internet, và hơn hết tốc độ xử lý sẽvượt trội hơn khi sử dụng trên web

Dựa trên các kết quả khảo sát và phân tích trên, nhóm chúng em đã đưa ra quyếtđịnh để xây dựng các tính năng và thiết kế ứng dụng đọc truyện tranh, với mục tiêu tối

đa hóa trải nghiệm người dùng và đáp ứng nhu cầu giải trí của sử dụng ứng dụng

1.5 Các yêu cầu về chức năng

Sơ đồ USECASE tổng quát

6

Trang 7

 Người quản trị: Quản lý truyện

Trang 9

CHƯƠNG 2 TRIỂN KHAI ỨNG DỤNG

1 Triển Khai Giao Diện Hệ Thống

1.1 Giao diện đăng nhập

Trang 10

1.2 Giao diện ứng dụng

10

Trang 11

1.3 Giao diện account

Trang 12

1.4 Giao diện chia sẻ truyện

12

Trang 13

1.5 Giao diện nội dung

Trang 14

1.6 Giao diện đánh giá

14

Trang 15

1.7 Giao diện cập nhật truyện

Trang 16

2 Triển khai các chức năng của hệ thống

Để xây dựng được các chức năng của ứng dụng theo thiết kế đã được trình bày ởchương 3, đồ án đã sử dụng drawable để thiết kế giao diện người dùng theo yêu cầu.Tiếp theo, đồ án sẽ trình bày các kỹ thuật được sử dụng để xây dựng ứng dụng

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@drawable/longhihi"

>

<! TODO: Update blank fragment layout >

<LinearLayout

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:layout_gravity="center"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Wellcome to App"

android:textColor="#2CA7E0"

android:textStyle="bold"

android:layout_gravity="center"

android:layout_height="wrap_content"

android:inputType="textEmailAddress"

16

Trang 17

android:hint="username"

android:textColorHint="#2CA7E0"

android:layout_gravity="center"

android:drawableLeft="@drawable/ic_person" android:drawablePadding="10dp"

android:hint="Password"

android:textColorHint="#2CA7E0"

android:layout_gravity="center"

android:drawableLeft="@drawable/ic_person" android:drawablePadding="10dp"

android:textColor="#E11010"

android:fontFamily="sans-serif-medium" android:layout_gravity="right"

android:layout_marginTop="20dp"

android:textSize="15dp"

android:layout_marginRight="35dp" />

<Button

android:id="@+id/btnDangNhap"

android:layout_width="300dp"

android:layout_height="60dp"

android:layout_gravity="center"

android:text="Đăng nhập"

android:textColor="#fff"

android:layout_marginTop="20dp"

android:background="@drawable/botron"

Trang 18

android:layout_width="300dp"

android:layout_height="60dp"

android:layout_gravity="center"

android:text="Đăng ký"

Trang 19

android:startColor="#38BDAD"

android:centerColor="#64E4FF" android:endColor="#62CBFF" android:angle="270" />

<corners

android:radius="100dp"/> <padding

android:left="5dp"

android:top="5dp"

android:right="10dp"

android:bottom="5dp"/> <stroke android:color="@color/blue"

<! SHADOW >

<item>

<shape>

<solid android:color="#1E000000"/> <corners android:radius="100dp"/> </shape>

android:startColor="#FFFDE4"

android:endColor="#005AA7" android:angle="270" />

<corners

android:radius="100dp"/>

Trang 20

Button btnDangNhap btnDangKy, ;

databaseDocTruyen = new databasedoctruyen(this);

btnDangKy.setOnClickListener(new View.OnClickListener() { @Override

Intent intent = new

Intent(MainDangNhap.this,MainDangKy.class);

startActivity(intent);

}

});

20

Trang 21

btnDangNhap.setOnClickListener(new View.OnClickListener() { @Override

String tentaikhoan = edtTaiKhoan.getText().toString(); String matkhau = edtMatKhau.getText().toString(); Cursor cursor = databaseDocTruyen.getData();

while (cursor.moveToNext()){

String datatentaikhoan cursor.getString( );= 1

String datamatkhau cursor.getString( );= 2

if(datatentaikhoan.equals(tentaikhoan) &&

datamatkhau.equals(matkhau)){

int phanquyen cursor.getInt( );= 4

int idd cursor.getInt( );= 0

String tentk cursor.getString( );= 1

String email cursor.getString( );= 3

Intent intent = new

Intent(MainDangNhap.this,MainActivity.class);

intent.putExtra("phanq",phanquyen);

intent.putExtra("idd",idd);

intent.putExtra("email",email);

intent.putExtra("tentaikhoan",tentk);

private void AnhXa() {

edtTaiKhoan = findViewById(R.id.edtUsername);

edtMatKhau = findViewById(R.id.edtPasswod);

Trang 22

}

}

Chức năng tìm kiếm

a Thiết kế layout

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".MainTimKiem">

<LinearLayout

android:layout_margin="5dp"

android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="match_parent">

<EditText

android:hint="Search"

android:id="@+id/timkiem"

android:layout_width="match_parent"

android:layout_height="wrap_content"></EditText>

<androidx.recyclerview.widget.RecyclerView

android:id="@+id/listviewtimkiem"

android:layout_width="match_parent"

Trang 24

public void onTextChanged(CharSequence s, int start, int before, int count) { }

private void filter(String text){

//xóa sau mỗi lần gọi tới filter

arrayList.clear();

ArrayList<Truyen filteredList > = new ArrayList<>();

for(Truyen item : TruyenArrayList){

if (item.getTenTruyen().toLowerCase().contains(text.toLowerCase())){ filteredList.add(item);

//Thêm dữ liệu để hiển thị ra item nội dung

arrayList.add(item);

}

}

adaptertruyen.filterList(filteredList);

}

//Hàm gán dữ liệu từ CSDL vào listview

public void initList(){

TruyenArrayList = new ArrayList<>();

//

arrayList = new ArrayList<>();

databaseDocTruyen = new databasedoctruyen(this);

Cursor cursor1 = databaseDocTruyen.getData2();

while (cursor1.moveToNext()){

int id cursor1.getInt( );= 0

String tentruyen cursor1.getString( );= 1

String noidung cursor1.getString( );= 2

String anh cursor1.getString( );= 3

int id_tk cursor1.getInt( );= 4

24

Trang 25

TruyenArrayList.add(new Truyen(id,tentruyen noidung,anh,id_tk, )); //Thêm dữ liệu vào mảng

arrayList.add(new Truyen( ,id tentruyen,noidung anh id_tk, , ));

}

LinearLayoutManager linearLayoutManager = new

LinearLayoutManager(getApplicationContext(), RecyclerView.VERTICAL, false); listView.setLayoutManager(linearLayoutManager);

adaptertruyen=new adapterTruyen(getApplicationContext(),TruyenArrayList); listView.setAdapter(adaptertruyen);

cursor1.moveToFirst();

cursor1.close();

}

// //Tạo thanh action bar với toolbar

// private void ActionBar() {

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context=".MainDangBai">

<TextView

android:textColor="#2196F3"

android:textStyle="bold"

android:textSize="30sp"

android:gravity="center"

android:text="Đăng bài"

Trang 26

android:inputType="text"

android:id="@+id/dbtieude"

android:hint="Tên truyện"

android:layout_gravity="center"

android:hint="Nội dung"

android:inputType="text"></EditText>

<EditText

android:inputType="textUri"

android:hint="Ảnh bìa"

android:id="@+id/dbimg"

android:layout_gravity="center"

android:layout_marginTop="20dp"

android:layout_width="300dp"

android:layout_height="wrap_content"></EditText> <Button

android:id="@+id/dbdangbai"

android:layout_gravity="center"

android:layout_marginTop="20dp"

android:text="Đăng bài"

android:textColor="@color/white"

android:background="@drawable/themtruyen" android:layout_width="100dp"

android:layout_height="wrap_content"></Button>

Trang 27

import com.example.appdoctruyen_v2.model.main.MainAdmin;import java.util.ArrayList;

private void init() {

listView = getActivity().findViewById(R.id.listviewAdmin); buttonThem = getActivity().findViewById(R.id.buttonAddTruyen);

Trang 28

buttonThem.setOnClickListener(new View.OnClickListener() { @Override

Intent intent = getActivity().getIntent();

int id intent.getIntExtra(= "Id", );0

Intent intent1 = new Intent(getContext(), MainDangBai.class); intent.putExtra("Id",id);

public void initList(){

TruyenArrayList = new ArrayList<>();

databaseDocTruyen = new databasedoctruyen(getContext()); Cursor cursor1 = databaseDocTruyen.getData2();

while (cursor1.moveToNext()){

int id cursor1.getInt( );= 0

String tentruyen cursor1.getString( );= 1

String noidung cursor1.getString( );= 2

String anh cursor1.getString( );= 3

int id_tk cursor1.getInt( );= 4

TruyenArrayList.add(new Truyen(id,tentruyen noidung,anh,id_tk, ));

}

LinearLayoutManager linearLayoutManager = new

LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false); listView.setLayoutManager(linearLayoutManager);

adaptertruyen = new adapterDangBai(getContext(),TruyenArrayList); listView.setAdapter(adaptertruyen);

Trang 29

Bundle savedInstanceState) {

// Inflate the layout for this fragment

return inflater.inflate(R.layout.fragment_dangbai, container, false);

- Cập nhật các truyện mới nhanh chóng

- Thêm tính năng xem truyện đã đọc qua

Ngày đăng: 04/05/2024, 12:45

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

TÀI LIỆU LIÊN QUAN

w