Tải bản đầy đủ (.docx) (96 trang)

Báo cáo app luyện thi toeic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.96 MB, 96 trang )

BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU PHÁT TRIỂN ỨNG DỤNG LUYỆN THI
TIẾNG ANH SỬ DỤNG CƠNG NGHỆ REACT NATIVE

Ngành: Cơng nghệ thơng tin
Mã số: 7.48.02.01

Sinh viên thực hiện:
Lê Xuân Chức
Lớp: CT1A

Hà Nội, 2021


BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU PHÁT TRIỂN ỨNG DỤNG LUYỆN THI
TIẾNG ANH SỬ DỤNG CƠNG NGHỆ REACT NATIVE

Ngành: Cơng nghệ thơng tin
Mã số: 7.48.02.01


Sinh viên thực hiện:
Lê Xuân Chức
Lớp: CT1A
Người hướng dẫn:
ThS. Trần Đức Thịnh
Khoa CNTT – Đại học Kinh doanh và Công nghệ Hà Nội

Hà Nội, 2021


LỜI CẢM ƠN
Đề tài “Nghiên cứu phát triển ứng dụng luyện thi tiếng anh sử dụng công
nghệ React Native” là nội dung tôi chọn để nghiên cứu và làm đồ án tốt nghiệp sau
5 năm theo học chương trình đại học chuyên ngành công nghệ thông tin tại trường
Học viện Kỹ thuật Mật Mã.
Để hồn thành q trình nghiên cứu và hồn thiện đồ án này, tơi xin gửi lời
cảm ơn chân thành và sâu sắc đến các quý thầy cô trong khoa Công nghệ thông tin,
cũng như tất cả các thầy cô Học viện Kỹ thuật Mật Mã đã truyền đạt kiến thức,
kinh nghiệm quý báu của mình cho tơi trong suốt q trình học tập và nghiên cứu
tại trường.
Đặc biệt tôi xin gửi lời cảm ơn đến thầy ThS. Trần Đức Thịnh thuộc khoa
Công nghệ thông tin – Đại học Kinh doanh và Công nghệ Hà Nội. Thầy đã trực
tiếp chỉ bảo và hướng dẫn tôi trong suốt q trình nghiên cứu để tơi có thể hồn
thiện đồ án này.
Tôi cũng xin gửi lời cảm ơn đến các anh chị và bạn bè sinh viên trong
trường đã giúp đỡ, trao đổi kiến thức trong suốt quá trình học tập và thực hiện đồ
án này.
Mặc dù đã nỗ lực hồn thành đồ án này nhưng khơng thể tránh khỏi những sai
sót. Rất mong nhận được sự góp ý của quý Thầy cô và các bạn.


3


LỜI CAM ĐOAN
Tôi xin cam đoan đồ án tốt nghiệp “Nghiên cứu phát triển ứng dụng luyện
thi tiếng anh sử dụng cơng nghệ React Native” là cơng trình nghiên cứu của tôi.
Những phần sử dụng tài liệu tham khảo trong đồ án đã được nêu rõ trong phần tài
liệu tham khảo. Các số liệu, kết quả trình bày trong đồ án là hồn tồn trung thực,
nếu sai tơi xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của bộ môn và nhà
trường đề ra.
Hà Nội, tháng 7 năm 2021
SINH VIÊN THỰC HIỆN ĐỒ ÁN

Lê Xuân Chức

4


MỤC LỤC

5


DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT
KÍ HIỆU
API
APK
ARM
CSS
DOM

HTML
IDE
MVC
MVP
MVVM
OS
ROM
SDK
UI

TỪ VIẾT TẮT
Application Programming Interface
Android Package Kit
Advanced RISC Machine
Cascading Style Sheets
Document Object Model
Hyper Text Markup Language
Integrated Development Environment
Model – View – Controller
Model – View – Presenter
Model-View-View-model
Operating System
Read Only Memory
Software Development Kit
User Interface

6


DANH MỤC BẢNG BIỂU


7


DANH MỤC HÌNH ẢNH

8


LỜI MỞ ĐẦU
Hiện nay, tiếng Anh không chỉ được coi là một mơn học mà nó cịn là ngơn
ngữ quốc tế được ưa chuộng sử dụng trong công việc và cuộc sống. Tại Việt Nam,
tiếng Anh đã chiếm vị trí quan trọng từ khi đất nước bắt đầu thực hiện chính sách
mở cửa hội nhập ra khu vực và thế giới.
Trong nhiều năm gần đây các thiết bị di động ngày càng có giá cả ưu đãi và
dễ dàng sử dụng. Hiện nay các trường đại học điều có áp dụng tiêu chuẩn đầu ra
cho sinh viên đều phải có chứng chỉ tiếng Anh, hay các công ty cần người có trình
độ tiếng Anh tối thiểu ở một mức nào đó để phục vụ cơng việc. Cũng chính vì lí do
trên tôi đã chọn đề tài “Nghiên cứu phát triển ứng dụng luyện thi tiếng anh sử
dụng công nghệ React Native”.
Mục đích của đề tài nhằm tập trung vào nghiên cứu tổng quan về hệ điều
hành Android, ứng dụng trên thiết bị di động, tìm hiểu về cơng nghệ React Native.
Tìm hiểu về bài tốn ứng dụng tiếng anh trên thiết bị di động, nghiên cứu sử dụng
công nghệ React Native để xây dựng ứng dụng luyện thi. Nội dung của đồ án được
cấu trúc như sau:
Chương 1. Mở đầu
Trình bày về sự cần thiết của đề tài, mục đích chọn đề tài và phạm vi ứng
dụng của đề tài.
Chương 2. Giới thiệu về hệ điều hành Android và tổng quan về ứng dụng
trên thiết bị di động

Tìm hiểu các kiến thức căn bản về hệ điều hành android, ưu và nhược điểm
của hệ điều hành này. Tìm hiểu tổng quan về ứng dụng trên thiết bị di động.
Chương 3. Tổng quan về các cơng nghệ
Tìm hiểu về ngơn ngữ React Native, ưu nhược điểm của ngôn ngữ này, cách
cài đặt, các cơng cụ phát triển. Tìm hiểu về Laravel, Restful API và ưu nhược
điểm.
Chương 4. Triển khai và thực nghiệm

9


Tìm hiểu bài tốn ứng dụng luyện thi tiếng Anh, triển khai phân tích thiết kế
hệ thống, xây dựng và cài đặt ứng dụng, kiểm thử và bảo trì cho ứng dụng.

10


CHƯƠNG 1. MỞ ĐẦU
1.1. Sự cần thiết của đề tài
Trong nhiều lĩnh vực khác nhau trong xã hội như kinh tế, chính trị, khoa học,
du lịch, vv…đều rất cần những người có trình độ tiếng Anh tốt. Học tiếng Anh để
sử dụng với nhiều mục đích khác nhau, để đáp ứng nhu cầu giao tiếp ngày càng lớn
trong cuộc sống, kiếm tiền, thăng tiến trong công việc, đi du học hay làm việc với
các đối tác nước ngoài hay chỉ đơn giản là đọc các tài liệu nghiên cứu.
Cùng với sự phát triển của công nghệ thông tin, mạng viễn thông các thiết bị
mạng cầm tay ngày càng phổ biến và mạnh mẽ. Trong nhiều năm gần đây các thiết
bị di động ngày càng có giá cả ưu đãi và dễ dàng sử dụng.
Hiện nay, tiếng Anh không chỉ được coi là một mơn học mà nó cịn là ngơn
ngữ quốc tế được ưa chuộng sử dụng trong công việc và cuộc sống. Tại Việt Nam,
tiếng Anh đã chiếm vị trí quan trọng từ khi đất nước bắt đầu thực hiện chính sách

mở cửa hội nhập ra khu vực và thế giới. Không chỉ vậy trong các trường học, đại
học bộ môn tiếng Anh càng được đẩy mạnh hơn. Dù học chun ngành nào thì
tiếng Anh như một cơng cụ hữu ích trong q trình học tập, giao tiếp cho mỗi
chúng ta.
Để cải thiện khả năng học tiếng Anh hơn thì cần một ứng dụng tiện lợi giúp
mọi người ai cũng có thể sử dụng, nhỏ gọn, ở bất cứ đâu. Chính vì vậy cần xây
dựng một ứng dụng học tiếng Anh trên nền tảng React Native, tạo một ứng dụng di
động chia sẻ đến nhiều người hơn.
1.2. Mục đích của việc chọn đề tài
Việc chọn đề tài này nhằm mục đích chính là nhằm nghiên cứu về hệ điều
hành Android, tìm hiểu về ứng dụng trên thiết bị di động. Tiếp đến là tìm hiểu các
ngơn ngữ lập trình hỗ trợ mới giúp có thể xây dựng được một ứng dụng android và
ở trong phạm vi đề tài này nhằm tìm hiểu về ngơn ngữ React Native nhằm xây
dựng ứng dụng học tiếng Anh. Sử dụng các kiến thức đã có tiến hành giải quyết bài
tốn ứng dụng tiếng Anh trên di động. Cuối cùng là sử dụng ngôn ngữ và bài toán
đã giải quyết xây dựng ứng dụng cho thiết bị di động.
11


1.3. Phạm vi ứng dụng của đề tài
Với đề tài này mục đích ứng dụng của tơi nhằm đưa ứng dụng đến tất cả mọi
người có nhu cầu cải thiện trình độ tiếng Anh của mình. Trên hết tơi hướng chủ yếu
và nhóm người đi làm và học sinh, sinh viên. Qua ứng dụng được xây dựng người
dùng sẽ có thể nâng cao khả năng tự học, tự kiểm tra và nhận được đánh giá về khả
năng của mình. Từ đó có thể biết làm gì tiếp theo để cải thiện hơn khả năng của
mình. Hơn nữa ứng dụng cũng có thể giúp cho một số bạn khơng có thời gian đi
học thêm bên ngồi có thể sử dụng ứng dụng nhằm nâng cao kiến thức của mình
hơn.

12



CHƯƠNG GIỚI
2.
THIỆU VỀ HỆ ĐIỀU HÀNH ANDROID VÀ ỨNG DỤNG
TRÊN THIẾT BỊ DI ĐỘNG
2.1. Giới thiệu về hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho
các thiết bị di động có màn hình cảm ứng như điện thoại thơng minh và máy tính
bảng. Ban đầu, Android được phát triển bởi Tổng cơng ty Android, với sự hỗ trợ tài
chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra
mắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay. Chiếc
điện thoại đầu tiên chạy Android được bán vào tháng 10 năm 2008. [1]
2.1.1. Lịch sử phát triển
Người sáng tạo ra hệ điều hành Android là một kỹ sư công nghệ u thích
robot tên Andy Rubin. Trong giai đoạn đầu hình thành và phát triển, hệ điều hành
này ban đầu chỉ có một số ít các kỹ sư tham gia phát triển.
Kể từ 2005 thì hệ điều hành đã bắt tay hợp tác với một công ty về công nghệ
nổi tiếng thế giới đó là Google. Với sự trợ giúp của công ty này, Android ngày
càng phát triển mạnh và được ứng dụng phổ biến nhiều trong cuộc sống hiện nay.
Mặc dù Google không phải là công ty đã sáng tạo ra hệ điều hành Android, nhưng
nhờ có Google mà hệ điều hành này đã được phát triển mạnh mẽ như hiện nay.
Vào ngày 17 tháng 8 năm 2005 Google mua lại Tổng cơng ty Android, biến
nó thành một bộ phận trực thuộc Google. Những thành viên đầu tiên tham gia phát
triển Android vẫn tiếp tục ở lại công ty làm việc sau thương vụ này. Tại Google,
nhóm do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động phát triển trên
nền nhân Linux. Google đã đem quảng bá nền tảng này cho các nhà sản xuất điện
thoại và các nhà mạng với lời hứa sẽ cung cấp một hệ thống uyển chuyển và có
khả năng nâng cấp. Google đã liên hệ với hàng loạt hãng phần cứng cũng như đối
tác phần mềm, liên lạc cho các nhà mạng rằng họ sẵn sàng hợp tác với các cấp độ

khác nhau. [2]
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ
điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành
13


trước. Vào năm 2010, Google ra mắt loạt thiết bị Nexus-một dịng sản phẩm bao
gồm điện thoại thơng minh và máy tính bảng chạy hệ điều hành Android, do các
đối tác phần cứng sản xuất. HTC đã hợp tác với Google trong chiếc điện thoại
thông minh Nexus đầu tiên, Nexus One. Kể từ đó nhiều thiết bị mới hơn đã gia
nhập vào dòng sản phẩm này, như điện thoại Nexus 4 và máy tính bảng Nexus 10,
lần lượt do LG và Samsung sản xuất. [2] Google xem điện thoại và máy tính bảng
Nexus là những thiết bị Android chủ lực của mình, với những tính năng phần cứng
và phần mềm mới nhất của Android. Hiện nay Google vẫn là nhà phát triển cùng
với nhà sản xuất HTC vẫn cho ra đời những mẫu điện thoại Pixel với hiệu năng và
tính năng rất được yêu thích ở thời điểm hiện tại.
2.1.2. Các đặc điểm của hệ điều hành Android
Tính mở:
Android hồn tồn mở, một ứng dụng có thể gọi tới bất kể một chức
năng nào liên quan đến lõi của điện thoại như sử dụng máy ảnh, tạo cuộc gọi, gửi
tin nhắn, quản lý bộ nhớ, chia sẻ các tệp tin, chia sẻ dữ liệu qua các cổng giao tiếp,
cho phép người phát triển tạo phong phú hơn, liên kết hơn các tính năng cho người
dùng. Android được xây dựng trên nhân Linux mở. [1]
Tính ngang hàng của các ứng dụng:
Với Android, khơng có sự khác nhau giữa các ứng dụng điện thoại cơ
bản và ứng dụng của bên thứ ba. Chúng được xây dựng để truy cập như nhau
tới một loạt các ứng dụng và dịch vụ của điện thoại. [1]
Dễ xây dựng ứng dụng:
Android cung cấp bộ thư viện giao diện lập trình ứng dụng đồ sộ và các
cơng cụ để viết các ứng dụng phức tạp.

Tích hợp dịch vụ của Google một cách hoàn hảo:
Những ứng dụng khác của Google như Gmail, Google Maps, Google Voice,
Gtalk, Youtube đều là các thành phần mặc định của Android nên trải nghiệm chúng
sẽ có cảm giác thật nhất, nhanh nhất.
ROM đa dạng, phong phú:
14


Tồn bộ Android được lập trình theo hướng mã nguồn mở nên các lập trình
viên có thể nhanh chóng chỉnh sửa lại cho phù hợp với từng thiết bị xác định, do
đó khơng cần phải chờ đến khi nhà sản xuất chính thức đưa ra bản cập nhật thì mới
được thưởng thức những tính năng mới. Một số ROM thường được nhiều người
dùng trên nhiều máy như CyanogenMod và MIUI. Những bản ROM này cho phép
người dùng tùy biến nhiều thành phần ở cấp độ hệ thống, trong khi những hệ điều
hành khác khó có khả năng làm được. [3]
Bộ nhớ có thể thay thế:
Đây khơng phải là một phần của Android, tuy nhiên tính mở của Android
cũng tác động đến một vài thành phần trong phần cứng của máy, điển hình là khả
năng thay thế pin và thay thế thẻ nhớ.
Nhiều Launcher thay thế:
Chỉ đơn giản duyệt qua kho ứng dụng là đã có được nhiều tùy chọn để thay
thế cho Launcher mặc định. Những Launcher từ bên thứ ba cho phép điều chỉnh
kích thước widget, thay đổi icon trên dock, tăng số lượng Home Screen cũng như
tối ưu hóa bộ nhớ bị sử dụng bởi ứng dụng. [3]
Tự động hóa:
Một trong những ứng dụng Android mạnh mẽ và hữu dụng đó là Tasker, một
chương trình cho phép tự động hóa nhiều việc với chiếc điện thoại của mình. Với
những lệnh chính xác, Tasker có thể truy cập vào những góc sâu nhất của Android,
điều khó có thể thực hiện được trên các nền tảng khác.
Bàn phím thay thế:

Nhờ vào tính mở Android có một loạt ứng dụng bàn phím khác để thay thế
cho bàn phím mặc định của Android nhằm đáp ứng nhu cầu phong phú của người
dùng. Với người dùng Việt Nam, ta cịn có một số bàn phím tiếng Việt hỗ trợ nhiều
kiểu gõ, rất thuận tiện. [3]
2.1.3. Tính năng mở của hệ điều hành Android
Android được xây dựng để cho phép các nhà phát triển để tạo ra các ứng
dụng di động hấp dẫn tận dụng tất cả một chiếc điện thoại đã cung cấp. Android
15


được xây dựng trên mở Linux Kernel. Android là mã nguồn mở, nó có thể được
mở rộng qua các thư viện. Nền tảng này sẽ tiếp tục tiến triển như cộng đồng nhà
phát triển công việc cùng nhau để xây dựng các ứng dụng di động sáng tạo. [4]
Android có một hạt nhân dựa trên nhân Linux phiên bản 2.6, kể từ Android
4.0 Ice Cream Sandwich trở về sau, là phiên bản 3.x, với middleware, thư viện và
API viết bằng C, còn phần mềm ứng dụng chạy trên một nền tảng ứng dụng gồm
các thư viện tương thích với Java dựa trên Apache Harmony. Android sử dụng máy
ảo Dalvik với một trình biên dịch động để chạy 'mã dex' (Dalvik Executable) của
Dalvik, thường được biên dịch sang Java bytecode. Nền tảng phần cứng chính của
Android là kiến trúc ARM. Người ta cũng hỗ trợ x86 thông qua dự án Android
x86, và Google TV cũng sử dụng một phiên bản x86 đặc biệt của Android. [4]
Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng
dụng của bên thứ ba. Tất cả có thể được xây dựng để có thể truy cập bằng khả
năng của một thiết bị di động cung cấp cho người sử dụng với một dải rộng các
ứng dụng và dịch vụ. Với các thiết bị xây dựng trên Android, người dùng có thể
hồn tồn thích ứng với điện thoại đến lợi ích của họ. [4]
Android có một cộng đồng các lập trình viên và những người đam mê rất
năng động. Họ sử dụng mã nguồn Android để phát triển và phân phối những phiên
bản chỉnh sửa của hệ điều hành. Các bản Android của cộng đồng thường được root
sẵn và có những điều chỉnh không phù hợp với những người dùng không rành rẽ,

như khả năng ép xung hoặc tăng/giảm áp bộ xử lý của thiết bị. CyanogenMod là
firmware của cộng đồng được sử dụng phổ biến nhất, và hoạt động như một tổ
chức của số đông khác. [5]
Android không phân biệt giữa các ứng dụng lõi của điện thoại và các ứng
dụng của bên thứ ba. Tất cả có thể được xây dựng để có thể truy cập bằng khả năng
của một người cung cấp cho người sử dụng điện thoại với một dải rộng các ứng
dụng và dịch vụ. Với các thiết bị xây dựng trên Hệ điều hành Android, người dùng
có thể hồn tồn thích ứng với điện thoại đến lợi ích của họ.
Android phá bỏ rào cản để xây dựng các ứng dụng mới và sáng tạo. Với
Android, một nhà phát triển có thể xây dựng một ứng dụng cho phép người dùng
16


xem vị trí của bạn bè của họ và được cảnh báo khi họ đang có trong vùng phụ cận
cho họ một cơ hội để kết nối.
2.1.4. Ưu và nhược điểm của hệ điều hành Android
Ưu điểm:
• Kho ứng dụng Google Play Store đồ sộ: Đến nay kho ứng dụng này
đã đạt đến số lượng rất lớn, trong đó có rất nhiều ứng dụng miễn phí
mà vơ cùng tiện dụng.
• Giá cả hợp lý từ bình dân đến cao cấp: Với các thiết bị Android, trong
khoảng từ 1 – 20 triệu đồng người dùng có rất nhiều lựa chọn để sử
dụng một chiếc điện thoại sử dụng hệ điều hành android
• Mã nguồn mở: Trong khi các hệ điều hành như iOS, WindowPhone sử
dụng mã nguồn đóng thì Android lại đi ngược lại bằng cách mở mã
nguồn và cung cấp cho người dùng tùy ý chỉnh sửa mà khơng có sự
can thiệp hay cấm cản từ Google.
• Dễ sử dụng: Có lẽ hệ điều hành Android chưa chắc đã dễ sử dụng hơn
các hệ điều hành khác, nhưng vì nó đã quá phổ biến trên các thiết bị di
động nên phần lớn người dùng đều dễ dàng sử dụng hệ điều hành này.

• Khả năng chuyển đổi ứng dụng linh hoạt: Các ứng dụng phát triển
riêng cho Android (được gọi là “native apps”) được các lập trình viên
sử dụng ngơn ngữ lập trình Java, do đó có thể dễ dàng chuyển đổi
(port) sang các nền tảng di động khác như BlackBerry, Symbian và
Ubuntu.
• Yêu cầu ban đầu thấp và nhiều lựa chọn: Để phát triển ứng dụng cho
thiết bị iOS, nhà phát triển phải sử dụng máy Mac – vốn có giá rất đắt.
Trong khi đó, để phát triển ứng dụng trên Android thì có thể dùng
Windows, Mac và Linux
• Cộng đồng người dùng lớn: Android có cộng đồng người dùng và lập
trình viên độc lập khá lớn, nên khi bạn gặp vấn đề về thiết bị hay về

17


phiên bản Android của bạn, bạn sẽ được hỗ trợ rất nhiệt tình từ phía
cộng đồng.
Nhược điểm:
• Nhiều ứng dụng chạy ngầm làm chậm máy: Không giống như iOS,
Android tối ưu hóa bộ nhớ RAM khá kém, dẫn đến việc nhiều ứng
dụng chạy ngầm gây chậm máy hoặc thậm chí là đơ máy.
• Ứng dụng khơng được tối ưu hóa tốt: Do có quá nhiều mẫu mã khác
nhau, các nhà phát triển khơng thể tối ưu hóa ứng dụng cho tất cả các
mẫu thiết bị Android trên thị trường, nên các ứng dụng có thể gặp các
lỗi như khơng hiển thị được tồn màn hình hoặc khơng thể tận dụng
hết sức mạnh phần cứng của máy.
• Chất lượng ứng dụng kém: Một số ứng dụng trên Google Play có chất
lượng khá kém với hàng loạt các quảng cáo khó chịu và khơng có các
chức năng hữu dụng, gây cản trở cho cơng việc hay thời gian giải trí
của bạn.

• Nhiễm virus, phần mềm độc hại: Là hệ điều hành mở, trên Android
thường xuất hiện rất nhiều ứng dụng giả vì vậy máy chạy Android
thường bị nhiễm malware hoặc các loại virus có thể ăn cắp thơng tin
người dùng.
• Bảo mật: Do đặc điểm là mã nguồn mở, nên đây là điều kiện để những
kẻ có ý đồ xấu tìm hiểu và khai thác lỗ hổng bảo mật trên thiết bị
Android. Dần dần qua các phiên bản, Google cũng đã cải thiện khả
năng bảo mật.
• Phân mảnh: Được xem là hệ điều hành phổ biến nhất trên thế giới,
nhiều hãng điện thoại như Samsung, LG, Sony, HTC và các hãng điện
tử đến từ Trung Quốc đều sử dụng Android làm hệ điều hành, vì đều
này khơng tránh khỏi việc hệ điều hành này ln trong tình trạng bị
phân mảnh. Điều này ảnh hưởng khá nhiều đến các nhà phát triển ứng
dụng.
18


• Bản cập nhật: Nếu như IOS cho phép bạn cập nhật hệ điều hành mới
nhất kể cả khi thiết bị của bạn đã có tuổi đời 3 năm thì Android lại
không hỗ trợ người dùng cập nhật hệ điều hành nếu máy của bạn đã
được 2 năm tuổi.
2.2. Tổng quan về ứng dụng trên thiết bị di động
2.2.1. Mô hình xây dựng ứng dụng thiết bị di động
Có nhiều mơ hình để xây dựng và phát triển một ứng dụng trên thiết bị di
động dưới đây là một số mơ hình thơng dụng:
Model View Controller (MVC Pattern):
MVC design pattern chia một đối tượng đồ họa (UI Component) thành 3
thành phần cơ bản: Model, View và Controller. Model có trách nhiệm đối với toàn
bộ dữ liệu cũng như trạng thái của đối tượng đồ họa. View chính là thể hiện trực
quan của Model, hay nói cách khác chính là giao diện của đối tượng đồ họa. Và

Controller điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng cũng
như những đối tượng khác. [6]

Hình 2.1. Mơ hình MVC
• Model: Model đại diện cho một nhóm các lớp mơ tả tầng các quy tắc
xử lý dữ liệu.
• View: View đại diện cho các thành phần giao diện người dùng (UI
components). Nó chỉ có trách nhiệm hiển thị dữ liệu nhận được từ

19


controller như là một kết quả. Cũng có thể làm thay đổi model vào
trong UI.
• Controller: Controller đại diện cho tầng xử lý dữ liệu được yêu cầu
nhận được. Nhận đầu vào từ người dùng thông qua các View. Sau đó
xử lý dữ liệu của người dùng và trả kết quả lại cho View. Thơng
thường, nó đóng vai trị là điều phối viên giữa View và Model.
Model View Presenter (MVP Pattern):
MVP pattern tương tự như MVC pattern. Tầng Controller của MVC được
thay thế bởi tầng Presenter. Mẫu parttern này được chia làm ba tầng: Model, View,
Presenter.

Hình 2.2. Mơ hình MVP
Model: Cũng giống với Model của MVC Pattern.
View: View đại diện cho các thành phần giao diện người dùng (UI
components). Nó chỉ có trách nhiệm hiển thị dữ liệu nhận được từ presenter như là
một kết quả. Cũng có thể làm thay đổi model vào trong UI.
Presenter: Presenter có nhiệm vụ xử lý tất cả các sự kiện UI thay cho View.
Điều này có nghĩ khi nhận đầu vào từ người dùng thơng qua các View. Sau đó xử

lý dữ liệu của người dùng thông qua Model và trả kết quả lại cho View. Không
giống như View và Controller. Presenter và View hoàn toàn tách rời nhau và giao
tiếp với nhau thông qua một Interface.
Các điểm quan trọng cần biết của Mơ hình MVP.
• Người dùng tương tác với các view.
20


• Có quan hệ một-một giữa View và Presenter nghĩa là Một View chỉ
ánh xạ tới một Presenter duy nhất.
• View tham chiếu đến Presenter và không tham chiếu đến Model.
Model View ViewModel (MVVM):
MVVM hỗ trợ kiểu Two-way Data binding giữa View và Model. Việc này
cho phép việc tự động cập nhật các thay đổi hay trạng thái từ ViewModel đến
View. Thông thường ViewModel sử dụng Observer Pattern để notify các thay đổi
trong ViewModel đến Model. [6]

Hình 2.3. Mơ hình MVVM
Model: Cũng giống với Model của MVC Pattern.
View: View đại diện cho các thành phần giao diện người dùng (UI
components). Nó chỉ có trách nhiệm hiển thị dữ liệu nhận được từ presenter như là
một kết quả. Cũng có thể làm thay đổi model vào trong UI.
View Model: ViewModel phụ trách cho các Expose Method, các Command
và các thuộc tính khác giúp lưu trữ trạng thái của View. Khi thao tác dữ liệu trong
model thì như là một kết quả của hành động nào đó của View và kích hoạt sự kiện
trong chính View đó.
Các điểm quan trọng cần biết của Mơ hình MVVM.
• Người dùng tương tác với các view.
• Có quan hệ nhiều-một giữa View và ViewModel nghĩa là Nhiều View
chỉ ánh xạ tới một VideoModel duy nhất.


21


• View tham chiếu đến ViewModel và ViewModel không nắm giữ
thơng tin gì của View
• Hỗ trợ two-way databinding giữa View và ViewModel.
2.2.2. Giới thiệu bài toán và chức năng của ứng dụng
Mỗi một ứng dụng di động sẽ có những bài tốn giải quyết khác nhau, sử
dụng các mơ hình và cơng nghệ khác nhau, phụ thuộc vào mục đích sử dụng, yêu
cầu về hiệu năng, thành phần sử dụng, nhưng chung quy lại đều giải quyết một vấn
đề gì đó cho người sử dụng khi sử dụng điện thoại sẽ dùng ứng dụng phục vụ công
việc học tập, thư giãn, giải trí.
Các câu hỏi cần phải đặt ra khi xây dựng bài tốn cho một ứng dụng như
sau:
• Ứng dụng có chức năng làm gì?
• Ứng dụng sẽ có những chức năng nào?
• Ứng dụng sẽ giải quyết được bài tốn gì?
• Ứng dụng sẽ hoạt động ra sao?
• Hướng tới đối tượng sử dụng nào?
• Sử dụng ngơn ngữ hay nền tảng nào để phát triển?
• Sử dụng cơ sở dữ liệu và lưu trữ dữ liệu ra sao?
• Làm sao để xây dựng nhanh chóng mà hiệu quả, hiệu năng tốt.
• Cơ chế nâng cấp, kiểm thử và bảo trì.
Để hiểu ứng dụng là gì thì chúng ta cần phải biết các chức năng của nó.
Trong thực tế, mọi thiết bị dù là điện thoại thông minh hay chiếc máy tính xách tay
thì để có thể hoạt động tốt nhất, hoạt động tối ưu mọi chức năng thì cần phải cài
đặt các ứng dụng vào trong máy để có thể phục vụ cho những nhu cầu sử dụng
khác nhau.
Để giúp cho một website, một chiếc điện thoại, hay máy tính trở nên có giá

trị sử dụng hơn với các ứng dụng được thiết lập, cụ thể là tải app về để mang đến
giá trị đích thực cho một chiếc điện thoại. Thực tế, nếu khơng có các ứng dụng thì
22


một chiếc điện thoại thông minh cũng sẽ trở thành một chiếc điện thoại bình
thường với chức năng chỉ nghe và gọi mà thôi.
Với đa dạng các ứng dụng, người dùng có thể thực hiện nhiều cơng việc
khác nhau, giúp cho hiệu quả trong cả công việc hay trong giải trí, thư giãn trở nên
thú vị và hấp dẫn hơn, tiết kiệm thời gian hơn. Chúng ta cảm thấy mọi việc trở nên
đơn giản hơn, dễ dàng hơn từ đó tâm trạng sẽ trở nên vui vẻ, cuộc sống trở nên thú
vị hơn.
Tóm lại, có thể thấy app chính là ứng dụng di động để người dùng có thể
làm được rất nhiều cơng việc, cho nhiều mục đích khác nhau trên các nền tảng có
sẵn.
2.2.3. Ngơn ngữ lập trình ứng dụng di động
Nếu bạn muốn phát triển một ứng dụng di động, bạn cần biết ngơn ngữ lập
trình để xây dựng nó. Nhưng việc lựa chọn một ngơn ngữ lập trình phù hợp cũng
khơng phải là điều dễ dàng. Tất cả đều phụ thuộc vào ứng dụng bạn đang muốn
xây dưng. Đối với một số loại ứng dụng, thì người phát triển ứng dung nhiều khi
không cần sử dụng hết các tính năng mà một ngơn ngữ nào đó hỗ trợ. Nhưng lại có
những trường hợp mà một ứng dụng lại cần được xây dựng trên nhiều ngôn ngữ
khác nhau.
Các ngơn ngữ lập trình cho Android
Java:
Dựa vào chỉ số TIOBE, Java là ngơn ngữ lập trình phổ biến nhất tính đến
tháng sáu năm 2017. [7] Nếu muốn xây dựng một ứng dụng Android thì phần lớn
cơng việc phải làm sẽ liên quan đến Java. Với một cộng đồng lập trình viên lớn
mạnh được thành lập từ khá lâu, ta sẽ nhận được sự hỗ trợ và giúp đỡ về chuyên
môn.

Vậy nên khi phát triển ứng dụng di động bằng Java, có thể thỏa sức sáng tạo
để xây dựng bất kì loại ứng dụng mong muốn nào. Hạn chế duy nhất chỉ có thể
chính là sức sáng tạo của hoặc sự hạn chế trong kiến thức về Java.
Kotlin
23


Kotlin là ngơn ngữ lập trình được phát triển bởi JetBrains, một cơng ty Cộng
Hịa Czech phát triển IntelliJ IDEA, một IDE khá nổi tiếng. Đội ngũ lập trình
Android của Google gần đây đã thông báo về việc họ đang chính thức thêm hỗ trợ
cho Kotlin. [7]. Kotlin được phát triển để giải quyết một vài vấn đề tồn tại trong
Java. Ngồi ra, ta cịn có thể kết hợp Kotlin và Java cùng nhau trong dùng một dự
án, khai thác hết thế mạnh của cả 2 ngơn ngữ.
JavaScript:
Javascript có lịch sử từ những ngày ra đời World Wide Web. Là một ngơn
ngữ phổ biến cho cả front-end và phía server, nó giúp cho các nhà phát triển có
tồn quyền phát triển cả về mặt tương tác người dùng với trang web và xây dựng
hoàn chỉnh toàn bộ ứng dụng web.
Ngày nay, một vài Javascript framework được xây dựng nhằm nhắm tới việc
phát triển riêng cho nền tảng di động, cụ thể như Ionic 2 và React Native. Sử dụng
các framework và thư viện này giúp cho việc phát triển các ứng dụng di động đa
nền tảng trở nên khá dễ dàng. Điều này đồng nghĩa với việc bạn chỉ cần viết một
lần, nó sẽ chạy được trên cả iOS và Android.
2.3. Tổng kết chương
Chương 2 đã trình bày về tổng quan về hệ điều hành android như các đặc
điểm chính, tìm hiểu tính năng mở của hệ điều hành, ưu và nhược điểm, các phiên
bản Android đã phát hành. Tìm hiểu về mơ hình xây dựng ứng dụng trên thiết bị di
động, các bài toán, chức năng ứng dụng, các ngơn ngữ lập trình.

24



CHƯƠNG TỔNG
3.
QUAN VỀ CÁC CƠNG NGHỆ
3.1. Tổng quan về cơng nghệ React Native
3.1.1. Khái niệm về React Native
React là một thư viện JavaScript phổ biến hiện nay để xây dựng giao diện
người dùng (UI). Thư viện này cho tốc độ phản hồi tuyệt vời khi người dùng nhập
liệu bằng cách sử dụng phương pháp mới để render trang web.
React Native là một framework được tạo bởi Facebook, cho phép các lập
trình viên có thể xây dựng các ứng dụng di động trên cả hệ điều hành Android và
iOS chỉ với một ngơn ngữ lập trình duy nhất: JavaScript. Đây là một trong những
framework sử dụng cấu hình thiết kế tương tự như React.
Hầu hết các giao diện và chức năng của nó đều được cấu thành từ rất nhiều
thành phần con. React Native được sử dụng để phát triển cho rất nhiều các ứng
dụng di động khác như: Android, iOS, Web.
Sự ra đời của React Native là lời giải cho bài toán liên quan đến hiệu năng
Hybrid và sự phức tạp khi phải viết nhiều loại ngôn ngữ native cho từng nền tảng
di động trước đó.
Phiên bản đầu tiên được Facebook công bố lần đầu tiên vào tháng 3 năm
2016 là 0.5. Sau đó, React Native dần được phát triển thường xuyên với các bản
như: bản 0.61.5 được phát hành vào tháng 11 năm 2019. [8] Hiện nay, Facebook đã
cho biết là sẽ cho ra đời phiên bản mới nhất là 0.64 trong thời gian sắp tới.
3.1.2. Cách thức hoạt động của React Native
Trong React, Virtual DOM hoạt động như một layer giữa mô tả về cách hiển
thị mọi thứ và công việc được thực hiện để hiển thị trên page. Để hiển thị UI trên
browser, developer phải sửa DOM (Document Object Model) của browser. Đây là
cách tiêu tốn hiệu năng vì viết lại DOM nhiều lần sẽ tác động đáng kể đến hiệu
năng. Thay vì thay đổi trực tiếp trên trang React tính tốn những thay đổi cần thiết

bằng cách sử dụng một phiên bản bộ nhớ của DOM hay nói cách khác là một bản
sao của DOM và hiển thị lại những thay đổi cần thiết. Dưới đây là hình ảnh mơ tả
cho hoạt động của React. [8]
25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×