1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng ứng dụng ghi chú công việc

40 4 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

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 692,77 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

LỜI CẢM ƠNLời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến quý thầy cô của Trường Đại họcCông nghệ Thông tin và Truyền thông Việt-Hàn nói chung và quý thầy cô của khoaKhoa học máy tính nó

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &s

TRUYỀN THÔNG VIỆT-HÀN

Khoa Khoa Học Máy Tính

Giảng viên hướng dẫn: ThS Trần Đình Sơn

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &

TRUYỀN THÔNG VIỆT-HÀN

Khoa Khoa Học Máy Tính

Giảng viên hướng dẫn: ThS Trần Đình Sơn

Đà Nẵng, tháng 05 năm 2022

Trang 3

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

Giảng viên

ThS Trần Đình Sơn

Trang 4

LỜI CẢM ƠN

Lời đầu tiên, em xin gửi lời cảm ơn sâu sắc đến quý thầy cô của Trường Đại họcCông nghệ Thông tin và Truyền thông Việt-Hàn nói chung và quý thầy cô của khoaKhoa học máy tính nói riêng đã tận tình truyền đạt kiến thức trong bốn học kì vừa qua.Nhờ sự chỉ dạy nhiệt tình từ quý thầy cô, em đã tích luỹ được vốn kiến thức cần thiếtcho các học kì tiếp theo và công việc trong tương lai

Bên cạnh đó, em muốn gửi lời cảm ơn đặc biệt đến thầy – ThS Trần Đình Sơn.Thầy đã theo sát quá trình làm đồ án của chúng em trong suốt hơn hai tháng Thầyluôn nhắc nhở về các chi tiết, lỗi sai nhỏ trong phần đề cương chi tiết hay trong sảnphẩm đồ án của chúng em trong các buổi gặp mặt hướng dẫn để từ đó chúng em hoànthiện hơn sản phẩm của mình Thầy cũng rất nhiệt tình giải đáp những thắc mắc củachúng em khi gặp khó khăn

Em xin chân thành cảm ơn!

Sinh viên

Lê Nguyễn Quang Vinh

Trang 5

MỤC LỤC

MỞ ĐẦU 1

1 Giới thiệu 1

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

3 Nội dung và kế hoạch thực hiện 1

4 Bố cục báo cáo 2

Chương 1 TỔNG QUAN VỀ CÔNG CỤ, CÔNG NGHỆ XÂY DỰNG ỨNG DỤNG 3

1 Ngôn ngữ lập trình Java 3

1.1 Giới thiệu 3

1.2 Đặc điểm của ngôn ngữ lập trình Java 3

1.2.1 Tương tự C++, hướng đối tượng hoàn toàn 3

1.3 Máy ảo Java 6

1.4 Các phiên bản của Java 7

1.5 Các thành phần của Java SE Platform 7

2 XML 7

2.1 XML là gì? 7

2.2 Ưu và nhược điểm của XML 8

2.3 So sánh XML và HTML 8

2.4 Cú pháp của XML 9

3 Phần mềm Android Studio 13

3.1 Giới thiệu 13

3.2 Lịch sử hình thành 13

Trang 6

4.1 Giới thiệu 13

4.2 Đặc điểm 13

4.3 Các thành phần chính trong Room Database 14

4.4 DAO (Data Access Objects) 14

Chương 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ỨNG DỤNG 15

1 Yêu cầu đối với một ứng dụng di động 15

1.1 Chức năng 15

1.2 Thiết kế đơn giản và thẩm mỹ 15

1.3 Giải quyết vấn đề của người dùng 15

1.4 Tính nhất quán 16

1.5 Trải nghiệm người dùng 16

2 Thiết kế ứng dụng 17

Chương 3 XÂY DỰNG ỨNG DỤNG 18

1 Tổng quan về mô hình MVVM 18

1.1 Giới thiệu 18

1.2 MVVM (Model-View-ViewModel) được hiểu như thế nào.18 2 Layout 19

2.1 Relative Layout 19

2.2 Linear Layout 21

2.2.1 Thuộc tính Gravity 22

2.2.2 Thuộc tính trọng số 22

3 Quá trình thiết kế giao diện 22

3.1 Thiết kế màn hình bắt đầu (Splash Screen) 22

Trang 7

3.2 Thiết kế màn hình chính 22

3.3 Thiết kế màn hình tạo ghi chú mới 23

3.4 Thiết kế màn hình xoá ghi chú 23

3.5 Thiết kế màn hình tìm kiếm ghi chú 24

4 Xây d ng ch c năng c a ng d ng ự ứ ủ ứ ụ 25

4.1 Tạo Model cho ứng dụng 25

4.2 Tạo ViewModel 25

4.3 DAO 25

4.4 Xây dựng cơ sở dữ liệu 26

4.5 Chức năng tạo ghi chú mới 26

4.6 Chức năng sửa ghi chú 27

4.7 Chức năng xoá ghi chú 27

4.8 Chức năng tìm kiếm ghi chú 28

KẾT LUẬN 29

1 Kết quả đạt được 29

1.1 Về mặt lý thuyết: 29

1.2 Về mặt thực tiễn 29

2 Vấn đề còn tồn tại 29

3 Hướng giải quyết 29

TÀI LIỆU THAM KHẢO 30

Trang 8

DANH MỤC CÁC TỪ VIẾT TẮT

Trang 9

DANH MỤC HÌNH VẼ

Trang 10

MỞ ĐẦU

1 Giới thiệu

Cuộc sống ngày càng hiện đại, các công việc có khối lượng ngày càng lớn, cộngthêm các yếu tố gây nhiễu trong cuộc sống hằng ngày dễ khiến cho chúng ta quên đi cáccông việc cần làm trong ngày, trong tuần, trong tháng, dẫn đến công việc bị trì trệ, khôngđạt hiệu quả Bên cạnh đó, thói quen ghi lại các công việc cần phải làm sẽ giúp ta có thêmđộng lực để hoàn thành công việc như đúng thời hạn đã đặt ra Vì vậy, ứng dụng ghi chúcông việc của chúng tôi ra đời để giúp các bạn ghi lại những việc cần làm một cách nhanhchóng và hoàn thành công việc hiệu quả hơn

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

- Mục tiêu của đề tài nhằm tạo ra ứng dụng di động để ghi chú lại các công việctrong ngày, tuần, tháng, giải quyết việc bị quên các công việc cần làm Bên cạnh đó có thểđưa ứng dụng lên kho ứng dụng Google Play

- Nghiên cứu kiến trúc Android

- Nghiên cứu các thành phần cơ bản trong Android

- Nghiên cứu cách phát triển ứng dụng trên Android

3 Nội dung và kế hoạch thực hiện

Thời gian Công việc

Tuần 1 từ

21/3 đến 27/3

Khảo sát nhu cầu người dùng và tìm hiểu các công nghệliên quan (Room Database, mô hình MVVM, ngôn ngữ Java,thư viện.)

Trang 11

Sau phần Mở đầu, báo cáo được trình bày trong ba chương, cụ thể như sau:

Chương 1 Tổng quan về các công cụ xây dựng nên ứng dụng Trong chương này,

báo cáo trình bày các khái niệm, đặc điểm, tính năng của các công cụ, công nghệ được sửdụng

Chương 2 Phân tích thiết kế hệ thống ứng dụng Nội dung chương bao gồm các

bước phân tích hệ thống từ nhu cầu của người dùng Từ đó xây dựng nên giao diện vàchức năng phù hợp

Chương 3 Xây dựng ứng dụng Chương này tiến hành trình bày các bước xây dựng

giao diện và chức năng của ứng dụng

Cuối cùng là Kết luận, Tài liệu tham khảo và Phụ lục liên quan đến đề tài.

Trang 12

Chương 1 TỔNG QUAN VỀ CÔNG CỤ, CÔNG NGHỆ

Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm

1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia

1.2 Đặc điểm của ngôn ngữ lập trình Java

1.2.1 Tương tự C++, hướng đối tượng hoàn toàn

Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trênnhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễ học vàquen thuộc với đa số người lập trình Vì vậy họ đã sử dụng lại các cú pháp của C và C++.Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính an toàn và

dễ sử dụng hơn Các thao tác overload, goto hay các cấu trúc như struct và union cũngđược loại bỏ khỏi Java

1.2.2 Độc lập phần cứng và hệ điều hành

Trang 13

Một chương trình viết bằng ngôn ngữ Java có thể chạy tốt ở nhiều môi trường khácnhau Gọi là khả năng “cross-platform” Khả năng độc lập phần cứng và hệ điều hànhđược thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân.

Ở cấp độ mã nguồn: Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hành

và phần cứng khác nhau Java có riêng một bộ thư viện để hỗ trợ vấn đề này Chươngtrình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại máy khác nhau mà khônggặp lỗi

Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhau

mà không cần dịch lại mã nguồn Tuy nhiên cần có Java Virtual Machine để thông dịchđoạn mã này

- Biên dịch (Compiler): Code sau khi được biên dịch sẽ tạo ra 1 file thường là exe,

và file exe này có thể đem sử dụng lại không cần biên dịch nữa

Ngôn ngữ lập trình Java thuộc loại ngôn ngữ thông dịch Chính xác hơn, Java làloại ngôn ngữ vừa biên dịch vừa thông dịch Cụ thể như sau

Khi viết mã, hệ thống tạo ra một tệp java Khi biên dịch mã nguồn của chươngtrình sẽ được biên dịch ra mã byte code Máy ảo Java (Java Virtual Machine) sẽ thôngdịch mã byte code này thành machine code (hay native code) khi nhận được yêu cầu chạychương trình

Trang 14

1.2.4 Cơ chế thu gom rác tự động

Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớcho các đối tượng ở trên heap

Với ngôn ngữ như C \ C++, bạn sẽ phải yêu cầu hủy vùng nhớ mà bạn đã cấp phát,

để tránh việc thất thoát vùng nhớ Tuy nhiên vì một lý do nào đó, bạn không hủy một vàivùng nhớ, dẫn đến việc thất thoát và làm giảm hiệu năng chương trình

Ngôn ngữ lập trình Java hỗ trợ cho bạn điều đó, nghĩa là bạn không phải tự gọi hủycác vùng nhớ Bộ thu dọn rác của Java sẽ theo vết các tài nguyên đã được cấp Khi không

có tham chiếu nào đến vùng nhớ, bộ thu dọn rác sẽ tiến hành thu hồi vùng nhớ đã đượccấp phát

1.2.5 Đa luồng

Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc đồng thời.Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụngpriority…)

1.2.6 Tính an toàn và bảo mật

Tính an toàn

- Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu

- Dữ liệu phải được khai báo tường minh

- Không sử dụng con trỏ và các phép toán với con trỏ

Trang 15

- Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi Không cho phép sử dụngcác kỹ thuật tràn Do đó các truy nhập sẽ không vượt quá kích thước của mảng hoặcchuỗi.

Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động

- Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn

Tính bảo mật

Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau.Mức 1: Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện màlớp cung cấp

Mức 2: Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy tắc củangôn ngữ lập trình Java trước khi thông dịch

Mức 3: Trình thông dịch sẽ kiểm tra mã byte code xem các đoạn mã này có đảm bảođược các quy định, quy tắc trước khi thực thi

Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giớihạn truy xuất trước khi nạp vào hệ thống

1.3 Máy ảo Java

Để đảm bảo tính đa nền, Java sử dụng cơ chế Máy ảo của Java

ByteCode là ngôn ngữ máy của Máy ảo Java tương tự như các lệnh nhị phân của cácmáy tính thực

Một chương trình sau khi được viết bằng ngôn ngữ Java (có phần mở rộng là java)phải được biên dịch thành tập tin thực thi được trên máy ảo Java (có phần mở rộng là.class) Tập tin thực thi này chứa các chỉ thị dưới dạng mã Bytecode mà máy ảo Java hiểuđược phải làm gì

Khi thực hiện một chương trình, máy ảo Java lần lượt thông dịch các chỉ thị dướidạng Bytecode thành các chỉ thị dạng nhị phân của máy tính thực và thực thi thực sựchúng trên máy tính thực (còn gọi là khả năng khả chuyển)

Máy ảo thực tế đó là một chương trình thông dịch Vì thế các hệ điều hành khácnhau sẽ có các máy ảo khác nhau Để thực thi một ứng dụng của Java trên một hệ điềuhành cụ thể, cần phải cài đặt máy ảo tương ứng cho hệ điều hành đó

Trang 16

JVM cung cấp môi trường thực thi cho chương trình Java (còn gọi là khả năng độclập với nền).

Có nhiều JVM cho các nền tảng khác nhau chẳng hạn như: Windows, Liux, và Mac

1.4 Các phiên bản của Java

Java Standard Edition (Java SE) – Là một nền tảng cơ bản cho phép phát triển giaodiện điều khiển, các ứng dụng mạng và các ứng dụng dạng Win Form

Java Enterprise Edition (Java EE) – Được xây dựng trên nền tảng Java SE, giúp pháttriển các ứng dụng web, các ứng dụng ở cấp doanh nghiệp, …

Java Mobile Edition (Java ME) – Là một nền tảng cho phép phát triển các ứng dụngnhúng vào các thiết bị điện tử như mobile…

1.5 Các thành phần của Java SE Platform

XML dùng để cấu trúc, lưu trữ và trong trao đổi dữ liệu giữa các ứng dụng và lưutrữ dữ liệu Ví dụ khi ta xây dựng một ứng dụng bằng Php và một ứng dụng bằng Java thìhai ngôn ngữ này không thể hiểu nhau, vì vậy ta sẽ sử dụng XML để trao đổi dữ liệu

Trang 17

Chính vì vậy, XML có tác dụng rất lớn trong việc chia sẻ, trao đổi dữ liệu giữa các hệthống.

2.2 Ưu và nhược điểm của XML

2.2.1 Ưu điểm

Ưu điểm lớn nhất của XML là sự độc lập XML được sử dụng để mô tả dữ liệu dướidạng text, nên hầu hết các phần mềm hay các chương trình bình thường đều có thể đọcđược chúng

XML có thể đọc và phân tích nguồn dữ liệu khá dễ dàng nên nó được sử dụng vớimục đích chính là trao đổi dữ liệu giữa các chương trình, các hệ thống khác nhau XMLđược sử dụng cho Remote Procedure Calls nhằm phục vụ cho các dịch vụ của website

2.2.2 Nhược điểm

Tỷ lệ sai sót khi sử dụng XML để truyền dữ liệu khoảng từ 5-7% Con số này tuykhông quá cao, nhưng trên thực tế, người ta vẫn cần cân nhắc trước khi sử dụng nó để traođổi thông tin

2.3 So sánh XML và HTML

XML cho phép người dùng tạo biểu

tượng đánh dấu riêng để mô tả nội dung,

tạo một biểu tượng không giới hạn và tự

Được thiết kế để hiển thị dữ liệu

Tuy nhiên XML không phải là sự thay thế cho HTML

XML thường được sử dụng làm cơ sở cho các định dạng tài liệu khác Dưới đây làmột số định dạng bạn có thể biết:

Trang 18

Tài liệu XML có thể tùy ý có một phần khai báo XML Nó được viết như sau:

Ở đây, version là phiên bản XML và encoding xác định mã hóa ký tự được sử dụngtrong tài liệu

2.4.2 Các qui tắc cú pháp để khai báo XML

- Khai báo XML (XML declaration) là phân biệt kiểu chữ và phải bắt đầu với “<?xml>” ở đây “xml” viết ở dạng chữ thường

- Nếu tài liệu chứa khai báo XML, thì nó phải là lệnh đầu tiên của tài liệu XML

Trang 19

- Khai báo XML phải là lệnh đầu tiên của tài liệu XML.

- Một HTTP Protocol có thể ghi đè giá trị của encoding mà bạn đặt trong khai báoXML

2.4.3 Tags và Elements

Một XML file được cấu thành bởi một số phần tử XML (Element), còn được gọi làXML-node hoặc XML-tags Tên các phần tử XML được bao trong các dấu < > như sau:

2.4.4 Qui tắc cú pháp (Syntax Rules) cho các thẻ và phần tử

Cú pháp phần tử: Mỗi phần tử XML cần được bao trong hoặc với phần tử bắt đầu

hoặc kết thúc như sau:

<element> </element>

Hoặc đơn giản theo cách:

<element/>

Lồng các phần tử: Một phần tử XML có thể chứa nhiều phần tử XML khác như là

con của nó, nhưng các phần tử con này phải không đè lên nhau, ví dụ: Một thẻ đóng củamột phần tử phải có cùng tên như thẻ mở kết nối với nó

Ví dụ sau minh họa các thẻ lồng nhau sai cú pháp:

Trang 20

<contact-info>

Phần tử gốc (Root Element): Một tài liệu XML có thể chỉ có một phần tử gốc Ví

dụ sau minh họa một tài liệu XML sai cú pháp, bởi vì cả hai phần tử x và y xuất hiện ởcấp cao nhất mà không phải là một phần tử gốc

Phân biệt kiểu chữ: Tên của các phần tử XML là phân biệt kiểu chữ Nghĩa là tên

của thẻ mở và thẻ đóng phải cùng kiểu

Ví dụ, <contact-info> là khác với <Contact-Info>

2.4.5 Thuộc tính

Một thuộc tính xác định thuộc tính cho phần tử, sử dụng một cặp tên/giá trị Mộtphần tử XML có thể có một hoặc nhiều thuộc tính Ví dụ:

<a href="https://topdev.vn/">TopDev</a>

Ở đây href là tên thuộc tính và https://topdev.vn/ là giá trị thuộc tính

2.4.6 Qui tắc cú pháp cho thuộc tính trong XML

Tên thuộc tính trong XML là phân biệt kiểu chữ (không giống như HTML) Tức là,HREF và href là hai thuộc tính khác nhau trong XML

Trang 21

Cùng một thuộc tính không thể có hai giá trị trong một cú pháp Ví dụ sau là sai cúpháp bởi vì thuộc tính b được xác định hai lần:

<a b="x" c="y" b="z"> </a>

Tên thuộc tính được định nghĩa không có sự trích dẫn, trong khi giá trị thuộc tínhphải luôn luôn trong các dấu trích dẫn Ví dụ sau là sai cú pháp:

<a b=x> </a>

Trong ví dụ này, giá trị thuộc tính không được định nghĩa trong các dấu trích dẫn

2.4.7 Tham chiếu trong XML

Tham chiếu (References) thường cho phép bạn thêm hoặc bao phần text hoặc phầnđánh dấu bổ sung trong một tài liệu XML Các tham chiếu luôn luôn bắt đầu với biểutượng “&”, đây là ký tự dành riêng và kết thúc với ký tự “;” XML có hai kiểu thamchiếu:

Tham chiếu thực thể (Entity Reference): Một tham chiếu thực thể chứa một tên

giữa dấu tách mở và dấu tách đóng Ví dụ: &amp; có amp là tên Tên tham chiếu tới mộtchuỗi văn bản hoặc đánh dấu đã được định nghĩa trước

Tham chiếu ký tự (Character Reference): Chứa các tham chiếu, ví dụ &#65;

chứa một dấu băm (#) được theo sau bởi một số Số này luôn luôn tham chiếu tới mã hóaUnicode của ký tự Trong ví dụ này, 65 tham chiếu tới chữ cái “A”

Các ký tự whitespace như khoảng trắng, tab và ngắt dòng giữa các phần tử XML

và giữa các thuộc tính XML sẽ bị bỏ qua

Ngày đăng: 22/08/2022, 09:03

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w