Bài giảng Mobile Game - Công Nghệ Thông Tin | Đại học Mỏ – Địa chất
Bài giảng Mobile Game - Công Nghệ Thông Tin | Đại học Mỏ – Địa chất được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!
Môn: Công nghệ thông tin (7480201)
Trường: Đại học Mỏ – Địa chất
Thông tin:
Tác giả:
Preview text:
MỤC C L ỤC ỤC Ụ
Chương 1: Giới thiệu về lập trình game và các nền tảng lập trình trên thiết bị di động ..... 3
1.1 Giới thiệu về Game và các thể loại game phổ biến hiện nay .................................... 3
1.2 Game engine và một số ngôn ngữ lập trình game phổ biến ...................................... 8
1.2.1 Giới thiệu về Game engine ........................................................................... 8
1.2.2 Các ngôn ngữ lập trình game phổ biến ............................................................... 9
1.3 Các nền tảng phát triển ứng dụng trên thiết bị di động ........................................... 16
1.3.1 Web Application (Web App) ............................................................................ 17
1.3.2 Hybird application ............................................................................................ 19
1.3.3 Native APP ....................................................................................................... 22
Chương 2: Giới thiệu về ngôn ngữ lập trình python và một số thư viện Game ................ 26
2.1 Ngôn ngữ lập trình python....................................................................................... 26
2.1.1 Khai báo biến trong python .............................................................................. 26
2.1.2 Hàm Print trong python .................................................................................... 29
2.1.3 Kiểu dữ liệu trong python ................................................................................. 30
2.1.4 Toán tử trong python ........................................................................................ 44
2.1.5 Câu lệnh rẽ nhánh ............................................................................................. 48
2.1.6 Vòng lặp ........................................................................................................... 51
2.1.7 Hàm trong python ............................................................................................. 55
2.1.8 Input và đọc ghi file .......................................................................................... 60
2.1.9 Module trong python ........................................................................................ 64
2.1.10 Package trong python ..................................................................................... 68
2.1.11 Map, filter trong python ................................................................................. 72
2.1.12 Class trong python .......................................................................................... 73 1
2.2 Các thư viện lập trình Pygame và Pyglet trong python ........................................... 76
Chương 3: Thiết kế giao diện với Tkinter trong python ................................................... 79
Chương 4: Lập trình game cơ bản với python ................................................................. 106
4.1 Yêu cầu về cài đặt và cấu hình .............................................................................. 106
4.2 Tổng quan yêu cầu trò chơi ................................................................................... 106
4.3 Các bước tạo game ................................................................................................ 107
4.3.1 Cơ bản về layout ............................................................................................. 107
4.3.2 Giới thiệu về Canvas ...................................................................................... 110
4.3.3 Cơ bản về các đối tượng trong game .............................................................. 112
4.3.4 Thêm Breakout items ..................................................................................... 116
4.3.5 Di chuyển và xử lý va chạm ........................................................................... 118
4.3.6 Starting Game ................................................................................................. 122
4.3.8 Chơi game ....................................................................................................... 124
Chương 5: Tạo game bằng thư viện Pygame .................................................................. 126
5.1 Hướng dẫn tạo game Space Invader ...................................................................... 126
5.2 Đóng gói game ....................................................................................................... 134
Chương 6: Giới thiệu các Engine tạo game ..................................................................... 137
6.1 Giới thiệu các khái niệm khởi đầu khi làm game .................................................. 137
6.2 Giới thiệu game engine đa nền tảng Cocos ........................................................... 139
6.3 Cài đặt và tạo game đơn giản trong Cocos creator ................................................ 144
6.4 Tổng quan về unity game engine ........................................................................... 179
6.4.1 Tổng quan về unity game engine.................................................................... 179
6.4.2 TM HIU V UNITY ENGINE................................................................... 182
6.4.3 Các khái niệm cơ bản trong unity ................................................................... 184 2
Chương 1: Giới thiệu về lập trình game và các nền tảng lập trình trên thiết bị di động
1.1 Giới thiệu về Game và các thể loại game phổ biến hiện nay
Để phân loại những loại game khác nhau, chúng thường được dựa trên những đặc
điểm, các xây dựng các nhân vật cũng như các tương tác trong game giữa các nhân vật để
xác định thể loại, một số thể loại game đang phổ biến hiện nay. Game mô phỏn g
Game mô phỏng vốn là một trong những thể loại game xuất hiện sớm nhất trên thị
trường, được nhiều người hưởng ứng do những trải nghiệm mới lạ của game, các tựa game
mô phỏng thường là game nhập vai, chiến thuật,… người chơi cần phải thực hiện nhiều
nhiệm vụ khác nhau trong game, xử lý các tình huống và tương tác với với nhân vật khác
để nâng cao kỹ năng và tăng thêm trải nghiệm khi chơi game. Những game mô phỏng
thường là những game online.
Các nhà phát hành thường gắn kết những người chơi lại với nhau bằng các đưa ra
các event, phần thưởng hoặc cơ chế cấp độ của nhân vật trong game, những hoạt động tổ
đội để tăng tương tác giũa các game thủ. Các tựa game mô phỏng thường có hiệu ứng và
đồ họa rất đẹp mắt để thu hút người chơi, thường được phát triển trong thời gian dài và
được nhà phát hành hỗ trợ rất nhiều. Một trong những nhược điểm của game mô phỏng
chính là thời gian để người chơi đạt được một cấp độ nhất định trong game là khá dài,
ngoài ra nhà phát hành cũng hỗ trợ nạp thẻ để người chơi có thể dễ dàng hơn trong quá
trình trải nghiệm game, nhưng chính điều này đã dẫn đến các tựa game mô phỏng trở thành
sân chơi cho những ông lớn với nguồn tài chính vững mạnh và được đầu tư công nghệ.
Một vài tựa game mô phỏng nổi tiếng như: Võ Lâm Truyền Kỳ, Đột Kích, Minecraft, … 3
Minecraft – Tựa game mô phỏng được ưa chuộng ở nhiều quốc gia.
Hiện nay, các tựa game mô phỏng đình đám đã không còn giữa được “phong độ”
như trước, thay vào đó là những tựa game mới với một số biến đổi nhỏ đang đang rất nhiều
game thủ ưa chuộng, những tựa game này vẫn giữ được tính chất nhập vai cho người chơi,
nhưng thay vì cần một thời gian dài và đầu tư nhiều công sức, tiền bạc thì những game mới
chỉ cần trải qua một thời gian nhất định rèn luyện kỹ năng, game chú trọng vào kỹ năng
người chơi hơn thay vì sức mạng và những vật phẩm trong game, với những ưu điểm hơn
các game mô phỏng trước đây như: tính tổ đội trong game cao, game được thiết kế theo
những bản đồ nhất định và sẽ kết thúc màn nếu người chơi hoàn thành nhiệm vụ. Một vài
tựa game nổi bật như: Liên Minh Huyền Thoại, PUBG, … Game offline
Sự bùng nổ của các game offline với đồ hoạt đẹp và chân thực đang dần gây chú ý
trong làng game việt, những tựa game cho phép người chơi có thể trải nghiệm trên những
thiết bị không có kết nối mạng, tuy nhiên để tăng trải nghiệm, người chơi có thể kết nối
mạng giữa những máy tính để tham gia cùng nhau. Một số tựa game phổ biến như: Warcraft, L4D2, … 4
L4D2 – Tựa game nhập vai gây được nhiều sự chú ý. Game Casual
Game casual là một thể loại game trái ngược hoàn toàn với game mô phỏng vì thời
gian chơi game rất ngắn và người chơi chỉ cần dành ít thời gian để chơi, phù hợp cho mọi
đối tượng, game được tạo ra với mục chỉ để chơi cho vui, giúp người chơi thư giãn và thoải
mái. Các tựa game casual thường xoay quanh về giải đố, sấp xếp hay logic, … với số lượng
các màn chơi nhất định. Khi vượt qua hết các màn game thì xem như game thủ đã chiến thắng.
Candy Crush Saga – Tựa game nổi tiếng một thời. 5
Với mục địch là thư giãn nên các tựa game casual đang được chú ý và phát triển rất nhanh.
Trước đây game thủ thường gọi những tựa game này là “game mini”, thường được các
website game hỗ trợ trên trình duyệt, tuy nhiên với sự phát triển nhanh chóng của các thiết
bị di động, các tựa game casual phổ biến được phát triển trên các ứng dụng di động. Một
số game khá phổ biến cho thể loại này như: Candy Crush Saga, Mario, Temple Run, … Game mạng xã hội
Game mạng xã hội – một thể loại game mới nổi lên nhờ sự phát triển nhanh chóng
của các trang mạng hội lớn như Facebook. Một trong những đặc điểm nổi bật của các game
mạng xã hội này là có thể liên kết rất nhiều người chơi ở nhiều khu vực khác nhau thông
qua tài khoản mạng xã hội cá nhân của họ. Vì không có rào cản về các khu vực địa lý khác
nhau, nên các tựa game mạng xã hội được rất nhiều người chơi, một tựa game có thể lên
đến hàng chục triệu người chơi như: Happy Farm, FarmVille, Đảo Rồng, … Do tính chất
là mạng xã hội nên những game này thường được hỗ trợ trên các trình duyệt khi người
dùng đăng nhập vào tài khoản mạng xã hội, các nhà phát triển game cũng đang dần lấn
sang thị trường mobile do lượng người sử dụng điện thoại để chơi game thay cho PC ngày càng tăng.
Các tựa game mạng xã hội được hàng chục triệu người chơi trên thế giới. Game thực tế ảo – VR
Game thực tế ảo là một trong những tựa game mới là và có thể phát triển mạnh trong
tương lai, nguyên nhân thể loại game này chưa phát mạnh ở Việt Nam chính là chi phí để
sở hữu một dàn thiết bị “chất lượng” để chơi game là khá lớn nên chỉ những người có điều
kiện tài chính mạnh mới thích hợp với những tựa game này, thêm vào đó là sự phát triển 6
của các game thực tế chưa thật sự nổi ậ
b t để thu hút được lượng lập trình viên phát triển
cho thể loại game này, dẫn đến chất lượng của game cũng không được đánh giá cao.
Thể loại game dự kiến sẽ phát triển mạnh trong những năm tới . Game tương tác ảo – AR
Một trong những tựa game tương tác ảo từng làm mưa là gió ở Việt Nam là Pokemon
Go, tuy hiện tại số lượng người chơi đã giảm nhưng đây vẫn là một trong những tựa gane
tương tác ảo đáng chú ý nhất. Các tựa game AR cho phép người dùng có thể tương tác trực
tiếp với những nhân vật “ảo” trong game thông qua các thiết bị di động, người chơi cần
phải vận động, di chuyển để trải nghiệm game, điều này thật sự mới lạ và mang đến cảm
giác thú vị cho nhiều người chơi. Với hàng trăm triệu lượt tải về, Pokemon Go là một trong
những tự game mở ra thị trường game tương tác ảo ở Việt Nam, tựa game này không ngừng
cập nhật và hứa sẽ mang đến nhiều trải nghiệm hấp dẫn hơn và thu hút người chơi. 7
Game tương tác ảo Pokemon GO từng gây sốt cộng đồng game Việt.
1.2 Game engine và một số ngôn ngữ lập trình game phổ biến
1.2.1 Giới thiệu về Game engine
Đó là một phần mềm được viết để thiết kế và phát triển game, hiểu đơn giản nó là
loại phần mềm trung gian kết nối tương tác của nhiều ứng dụng trong cùng hệ thống giúp
bạn tạo ra các đối tượng, vật thể, thiết lập môi trường, ánh sáng, xây dựng các tương tác
một cách dễ dàng và nhanh chóng hơn vì không cần viết các hàm cấp thấp. Game Ngôn ngữ Môi Đó là các game Chi phí Engine lập trình trường C++,
Lua, Dragon City, Castle Clash, Card Đa nền Cocos2d-x Miễn phí JavaScript Puzzle. tảng
C#, UnityScript, The Fall, Satellite Reign, Fat City, Đa nền Miễn phí Unity JavaScript
Thiên thần truyện, Pokemon Go tảng (Personal) Unreal
Music Inside Stardrop, Snake pass, Đa nền Miễn phí (5% doanh C++, Python Engine Street Fighter tảng thu bán game)
Spartania, Five Nights at Freddy's 3, Đa nền Libgdx Java Miễn phí DragonutZ: Tiny Warrior tảng 8
Các game Engine thông dụng
Ngoài các Game Engine, còn có 1 lựa chọn khác để làm ra game là sử dụng các
Game Builder. Trong Game Builder, chỉ cần đưa vào một số graphics, viết một vài dòng
lệnh đơn giản, thay đổi một số cài đặt, đưa thêm một số hành vi rồi click “Build” thì trò
chơi của bạn được thực hiện. Tuy Game Builders giúp bạn tiết kiệm rất nhiều thời gian
nhưng bạn lại không thể làm chủ hoàn toàn mọi tình huống và kết quả là game của bạn
cũng sẽ gặp nhiều hạn chế. Bạn có thể bắt đầu với 1 số Game Builder như: GameMaker, Stencyl, GameSalad, …
1.2.2 Các ngôn ngữ lập trình game phổ biến Ngôn ngữ lập trình C
Được phát triển từ đầu thập niên 1970, đến nay ngôn ngữ lập trình C vẫn là ngôn
ngữ phổ biến, được dùng trong giảng dạy về lập trình máy tính tại các Trường CĐ, ĐH.
Đây là một trong những ngôn ngữ mà hầu như lập trình viên nào cũng biết. C là ngôn ngữ
rất logic, chặt chẽ và có thể can thiệp cấp thấp nên được ưa chuộng rộng rãi, nhất là để viết
các phần mềm hệ thống, các ứng dụng nhúng bên cạnh các phần mềm ứng dụng thông
thường. Trong lĩnh vực lập trình game, C có thể được dùng để viết những game đơn giản 9
như Terris, caro, cờ vua, dò mìn, đua xe… và cả những game phức tạp nhưng sẽ cần rất
nhiều thời gian và nhân sự.
Ngôn ngữ lập trình C giúp cho người mới bắt đầu lập trình dễ dàng nắm được tư duy lập
trình với các khái niệm lập trình đơn giản như biến, hằng, toán tử, cấu trúc điều khiển, cấu
trúc lặp, hàm, tham số… Sau khi đã nắm vững lập trình trên ngôn ngữ C, bạn hoàn toàn có
thể học tiếp, nâng cao sang các ngôn ngữ lập trình hướng đối tượng (C++, C#, Objective-
C, Java, Python, …) một cách dễ dàng hơn.
Một số game được xây dựng trên ngôn ngữ C++
Counter Strike – một tựa game bắn súng đã quá quen thuộc với mọi người Counter - Strike Doom III Engine King Quest Starcraft World of Warcraft Warcraft III Football Pro Master of Orion III Maplestory 10 Invictus Ngôn ngữ lập trình C++
Khác biệt chính giữa C và C++ là C++ là một ngôn ngữ lập trình hướng đối tượng.
Nếu lập trình C, bạn sẽ phân tích vấn đề, giải quyết và lập trình theo tư duy tuần tự với các
hàm thì ở lập trình hướng đối tượng bạn sẽ phân tích, giải quyết và lập trình theo tư duy
hướng đối tượng. Trong đó, bạn sẽ nhìn bài toán dưới góc nhìn đối tượng cần phối hợp,
tương tác với nhau để thực hiện một nhiệm vụ nào đó. Mỗi đối tượng có thuộc tính, phương
thức, sự kiện riêng tương ứng với “đối tượng” trong thực tế như: con người, sự việc, sự
vật, khái niệm, …. Bạn cũng sẽ được làm quen với các khái niệm như đóng gói, đa hình,
kế thừa, overload, delegate, …mà cần có thời gian mới có thể hiểu rõ và ứng dụng thành
thạo. Tuy lập trình hướng đối tượng không đơn giản, nhất là khi bạn mới bắt đầu nhưng
khi đã nắm vững thì khả năng mở rộng, tùy biến là vô cùng hấp dẫn và cơ hội việc làm
dành cho những lập trình viên C++ giỏi luôn rất “hot”.
Ngoài ra, với khả năng cho phép bạn làm chủ hoàn toàn tài nguyên máy tính, tốc độ
và hiệu năng của ứng dụng lập trình trên C++ tốt hơn các ngôn ngữ khác. Do đó, C++
thường chọn sử dụng để phát triển các game “bom tấn” trong Unreal Game Engine. Ngoài
ra, ngôn ngữ lập trình C++ cũng được dùng để lập trình trong các game engine Cocos2d-x khá phổ biến hiện nay. Ngôn ngữ lập trình C#
C# là ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft. C# khi đi
kèm với Framework.NET cho phép bạn tạo ứng dụng Windows với WinForm, WPF, tạo
website bằng WebForm, MVC.NET và tạo ứng dụng di động trên Windows Phone. Ngoài
ra, C# còn được sử dụng trong lập trình Xamarin để tạo ứng dụng đa nền tảng.
Chọn lập trình C#, bạn sẽ đỡ “vất vả” hơn các ngôn ngữ khác do Microsoft không
ngừng nâng cấp, cải tiến sản phẩm Visual Studio .NET và ngôn ngữ C# với nhiều hỗ trợ,
tiện ích trong quá trình xây dựng ứng dụng.
Trong lập trình game, C# là ngôn ngữ được hỗ trợ chính trong game engine Unity nên nếu
muốn trở thành chuyên viên lập trình game trên Unity, bạn nên trang bị cho mình kiến thức
vững chắc về lập trình C#. Ngôn ngữ lập trình Java 11
Java là ngôn ngữ lập trình hướng đối tượng nhưng khác với C++ nhờ khả năng "viết
code một lần, thực thi khắp nơi". Chương trình phần mềm viết bằng Java có thể chạy trên
mọi nền tảng khác nhau như Linux, Mac OS, Windows, ... Java được dùng để xây dựng
các phần mềm desktop, phần mềm điều khiển, ứng dụng web, cổng thông tin điện tử và
đặc biệt, Java là ngôn ngữ chính để phát triển các ứng dụng di động và game trên Android.
Java là một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới và tại Việt Nam.
Các dự án Java luôn chiếm đa số trong các doanh nghiệp CNTT lớn với nhu cầu tuyển
dụng Java luôn ở mức cao. Và bạn biết không, có nhiều nhà phát triển phần mềm đã bắt
đầu và gắn bó suốt đời mình với ngôn ngữ lập trình Java.
Một số game được xây dựng trên Java: Tom Clancy’s Politika Runescape Powder Game Star Wars Galaxies Roboforge
Ngôn ngữ lập trình Python
Python được tạo ra vào cuối những năm 1980 và là ngôn ngữ lập trình mã nguồn
mở miễn phí. Python được xem là một ngôn ngữ kịch bản, nhưng cũng là một ngôn ngữ
dynamic, hỗ trợ hướng đối tượng, thủ tục và có phong cách lập trình chức năng như những 12
ngôn ngữ khác. Bởi tính mềm dẻo, Python là một trong những ngôn ngữ lập trình bậc cao
được sử dụng rộng rãi nhất ngày nay.
Python không phải ngôn ngữ có tốc độ thực thi nhanh, hiệu suất cao như C, C++ nhưng
Python là ngôn ngữ dễ học - dễ làm và có thể lập trình trong nhiều lĩnh vực: ứng dụng web,
xử lý dữ liệu, tiện ích desktop, game, ...
Python cũng được đánh giá là ngôn ngữ khá tốt đối với những người mới bắt đầu
học lập trình. Trong lĩnh vực lập trình game, Python ngày càng được sử dụng rộng rãi với
các thư viện hỗ trợ như Pygame và Pyglet. Ngoài ra, Python còn là ngôn ngữ hỗ trợ trong
Unreal Game Engine để phát triển các game “bom tấn”.
Ngôn ngữ lập trình Javascript
Dù yêu hay ghét nó thì Javascript vẫn là một ngôn ngữ phổ biến để lập trình game.
Nó hoạt động tốt hơn so với HTML và CSS và là một ngôn ngữ lập trình phù hợp để phát triển game online.
Javascript có thể được sử dụng trên cả front-end và back-end của trang web. Nó có
một cộng đồng hỗ trợ trực tuyến lớn cũng như sở hữu một số lượng lớn các framework hỗ trợ.
Javascript đã được chứng minh là một ngôn ngữ cực kỳ linh hoạt và với sự trợ giúp của
các thư viện để có thể chạy trên iOS, Android, các ứng dụng PC và trên phần cứng. 13
Với rất nhiều hướng dẫn trực tuyến miễn phí và có cả một đồng như GitHub hỗ trợ,
Javascript là một trong những ngôn ngữ dễ học, dễ tiếp cận để lập trình game.
Một số game được xây dựng bằng Javascript: HexGl Sketch Out CrossCode Bejeweled Swoop Polycraft Angrybirds The Wizard Little Alchemy New Super Resident Raver Ngôn ngữ HTML5 14
Ngôn ngữ HTML đã đi một chặng đường dài kể từ ngày đầu tiên được phát triển và
HTML5 đang là phiên bản phổ biến nhất. Nó kết hợp với Javascript (cùng với các ngôn
ngữ khác) để xây dựng một loạt các game online khổng lồ.
HTML5 là một ngôn ngữ tương đối dễ học, tuy nhiên cũng có phần hơi đơn giản và
một số điểm hạn chế, nhưng phần lớn các game online chạy trên HTML5. Nó cùng với
Javascript để tạo ra các giao diện trình phát và đồ họa trên thư viện WebGL. HTML5 là một
lựa chọn hấp dẫn cho các nhà phát triển nghiệp dư và có phạm vị trực tuyến rộng rãi.
Một số game được xây dựng trên HTML5: Kingdom of Loathing Nothing to Hide Gods will be watching 15 Roll It Cookie Clicker.
1.3 Các nền tảng phát triển ứng dụng trên thiết bị di độn g
Bất cứ khi nào công ty quyết định tạo ra một ứng dụng mobile, thì phải đối mặt với
sự lựa chọn của Native app (Ứng dụng gốc) và Hybrid app (Ứng dụng lai) và điều quan
trọng nhất là tìm kiếm những cách hiệu quả để thực hiện ý tưởng. Trong bài viết này, chúng
ta sẽ tìm hiểu sự khác biệt giữa Native app và Hybrid app, tìm hiểu ưu và nhược điểm của
chúng và cách chúng ảnh hưởng đến quá trình phát triển chung và performance của ứng
dụng. Chúng ta sẽ xem xét các công nghệ được sử dụng cho nền tảng iOS và Android trong
bối cảnh phát triển Native app và Hybrid app để bạn có thể chọn một công nghệ phù hợp
nhất cho dự án của mình.
Ứng dụng mobile được xem là một trong những công cụ kinh doanh năng động nhất.
Chúng đã trở thành tiêu chuẩn mới để xây dựng kết nối với khách hàng. Không chỉ về các
sản phẩm phần mềm, mà bất kỳ dịch vụ nào khác như ngân hàng, chia sẻ xe hoặc giao hàng
đều bị ràng buộc phải có ứng dụng mobile cho cả Android và iOS. Chúng cho phép các
công ty cung cấp cho người dùng của họ trải nghiệm thuận tiện và nhanh chóng hợp thời.
Kinh doanh được thúc đẩy bởi những đổi mới liên tục, do đó, rất nhiều ngành công nghiệp
đã sử dụng các ứng dụng mobile ít nhất 6-7 năm. Thật tuyệt khi các công ty có sự lựa chọn
phát triển Native app và Hybrid app vì cả hai đều trở thành một giải pháp hợp lý cho nhiều
công ty. Hiện tại, một số doanh nghiệp dịch vụ, như Uber, một trong những ví dụ Hybrid
app thành công, thích ứng với các ứng dụng di động hơn các trang web. Chúng giúp cải
thiện khả năng duy trì bằng cách có khả năng tương tác trực tiếp với khách hàng. Khách
hàng nhận được mức độ tiếp cận tăng lên như thông báo push, tùy chọn thanh toán mới, ...
Đây là một cơ chế quan trọng cho doanh nghiệp hiện đại, tuy nhiên chúng cũng đòi
hỏi đầu tư vào phát triển và bảo trì ứng dụng mobile. Và cuối cùng, mỗi công ty sẽ phải
đối mặt với câu hỏi Native app hay Hybrid app tốt hơn? Chúng ta sẽ tìm câu trả lời trong
bài viết này. Tuy nhiên, chúng ta nên thay đổi câu hỏi cho những gì phù hợp hơn với nhu
cầu và điều kiện của công ty bạn hơn, cũng như các công ty khác nhau có các mục tiêu
khác nhau, hạn chế ngân sách và thời gian, chiến lược tiếp thị và các giai đoạn vòng đời 16
kinh doanh. Sẽ không có câu trả lời đúng cho tất cả mọi trường hợp. Do đó, cả phát triển
Native app và Hybrid app có thể trở thành phương pháp tốt nhất cho các công ty khác nhau.
1.3.1 Web Application (Web App)
Web app là một loại chương trình có khả năng làm máy tính thực hiện trực tiếp công
việc nào đó mà người dùng mong muốn. Các trang web này có sự tương tác, cho phép
người dùng nhận, nhập, thao tác dữ liệu. Với các chương trình này, chúng thường có sự
kết nối chặt chẽ, có lệnh gửi tới máy chủ một cách liên tục với số lượng nhiều.
Hình 1: Tổng quan về web application
Điển hình cho các loại web application bạn có thể đã biết như các phần mềm,
website chỉnh sửa trực tuyến như canva, các trang mạng xã hội, các trang thương mại điện
tử, website bán hàng, website quản lý siêu thị, phần mềm quản lý nhà trọ Mona House (với
cả bản web app và app điện thoại)… Tại đó, bạn có thể tìm kiếm tương tác, chia sẻ thông
tin, đăng tin, thực hiện các thao tác đặc thù mà từng web app cung cấp.
Phân biệt website và web app
Thực tế thì ranh giới phân chia và nhận biết giữa web app và website khá mong
manh. Do đó, nhiều người nhầm tưởng giữa 2 khái niệm này không phải ít. Tuy nhiên, bạn
vẫn có thể phân biệt 2 khái niệm này một cách tương đối dựa vào các so sánh dưới đây mà 17
cụ thể hơn thì bạn có thể tham khảo giữa dịch vụ thiết kế website của công ty DZR Web
và lập trình ứng dụng của chúng tôi, so sánh để đưa ra kết luận về 2 dịch vụ này. Khả năng tương tác
Điểm khác biệt đầu tiên và dễ nhìn thấy nhất ở website và web app đó là khả năng
tương tác. Một website cung cấp những thông tin hữu ích, người đọc chỉ có thể xem, nhìn
và nghe chứ không thể tác động hay tạo nên sự ảnh hưởng gì của trang, đó là website.
Nhưng nếu web app, bạn có thể đọc, nghe, thao tác dữ liệu trên trang bằng cách nhấp nút,
gửi biểu mẫu, nhận phản hồi từ trang, nhắn tin trực tuyến, thanh toán.
Một số ví dụ cụ thể:
+ Mạng xã hội Facebook, Viber, Youtube, … cho phép chúng ta có thể sử dụng, kết
nối người với người thông qua các nền tảng blog, các cuộc trò chuyện. Web app cho phép
người dùng chia sẻ thông tin bản thân, thông tin người khác, giải trí và rất nhiều mục đích khác.
+ Các cửa hàng trực tuyến cho phép bạn vào cập nhật, tìm kiếm thông tin mặt hàng
cần thiết và đặt mua, thanh toán.
+ Các ứng dụng ngân hàng trực tuyến cho phép bạn chuyển, thanh toán, thực hiện
những giao dịch dựa trên dữ liệu đầu vào của mỗi khách hàng. Khả năng tích hợp
Cả thiết kế website và thiết kế phần mềm đều có khả năng tích hợp các phần mềm
như kế toán, quản lý,… Tuy nhiên, nếu để ý bạn sẽ thấy, web app có khả năng tích hợp cao
hơn bởi nó có những chức năng phức tạp, thường yêu cầu tương tác với các hệ thống bổ sung.
ặc biệt là hệ thống quản lý quan hệ khách hàng – CRM – một phần mềm quản lý thường
được tích hợp trong web app, giúp việc quản lý bán hàng trở nên dễ dàng và hiệu quả hơn.
Việc tích hợp phần mềm CRM cho phép bạn thu thập dữ liệu người dùng tự động,
lưu trữ trong hệ thống CRM. Thông qua đó, bạn có thể dễ dàng truy cập, kiểm tra bộ dữ
liệu khách hàng, phân tích hành vi thói quen khách hàng, cũng như giải quyết các khiếu
nại của khách hàng một cách tốt nhất.
Khác với web app, các website thường tập trung vào việc cung cấp cho người dùng
những chức năng cốt lõi hơn là các chức năng tích hợp. 18
Khả năng xác thực thông tin
Xác thực là một yếu tố cần thiết của các web app khi đăng nhập. Nó có tác dụng
giúp bảo mật tài khoản, tránh truy cập trái phép và rò rỉ những dữ liệu riêng tư của các người dùng.
Một số web app, khi bạn đăng ký mật khẩu, chúng thường báo cho bạn gợi ý mật
khẩu có tính bảo mật yếu, bạn nên thay bằng mật khẩu khác để tăng độ bảo mật .
Nhưng đối với website, việc xác thực thông tin hầu như không bắt buộc. Người
dùng có thể được đề nghị đăng ký từ web để có quyền truy cập vào các tùy chọn không có
sẵn. Nhưng nếu bạn không đăng ký, bạn chỉ có thể xem những thông tin công khai có sẵn mà thôi.
Bên cạnh những thông tin về web app bên trên, khi dùng bạn cũng cần lưu ý một số điều sau đây:
Bảo vệ thông tin khách hàng
Web app cần bảo vệ được thông tin khách hàng. Bởi lẽ, bất cứ khi nào người dùng
nhập thông tin cá nhân hoặc thanh toán, bạn đều sẽ nhận được thông tin từ khách hàng.
Những dữ liệu đầu vào thường của người dùng cuối. Do đó, việc bảo mật thông tin khách
hàng là điều mà bất cứ công ty viết web app nào cũng cần lưu tâm. Trách nhiệm pháp lý
Luật pháp cũng quy định về việc bảo mật thông tin khách hàng. Trong mọi tình
huống, bạn với tư cách chủ sở hữu web app cần có trách nhiệm bảo vệ thông tin cá nhân của họ. 1.3.2 Hybird application
Ứng dụng mobile là một bước cải tiến quan trọng cho doanh nghiệp của bạn. Khi
bạn đưa ra quyết định tạo Hybrid app, bạn nên tìm hiểu quy trình phát triển của nó, kiểm
tra tất cả các tính năng và tìm ra điểm mạnh và điểm yếu. Ứng dụng này ban đầu được coi
là một trang web được đưa vào các container. Do đó, mỗi page phải sử dụng các API được
thiết kế đặc biệt để đạt được các tính năng cơ bản cũng như thu hút các phương tiện của
bên thứ ba cho nó. Các ứng dụng này vận hành kiểm soát chế độ web view để nhận tệp
HTML và JavaScript toàn màn hình tận dụng công cụ kết xuất của các trình duyệt trong hệ điều hành tích hợp. 19
Công nghệ được sử dụng để phát triển Hybrid app
Như đã đề cập, các công ty phát triển mobile đang làm việc với sự kết hợp của các
công nghệ. Có ba khung phổ biến nhất ể
đ phát triển ứng dụng lai:
Hình 2: Hybrid application
+ React Native: Facebook đã tạo ra công nghệ open-sourced này để tương thích đa
nền tảng. Các UI được đơn giản hóa có hiệu suất tăng đáng kể khi reloading. React Native
được ưu chuộng sử dụng vì thời gian phát triển ngắn. Các kỹ sư phần mềm có quyền truy
cập vào các đơn vị có sẵn để áp dụng, tuy nhiên, framework có thể thiếu các thành phần
nhất định. Cả Facebook và cộng đồng thường xuyên cung cấp thông tin cập nhật.
+ Xamarin: Open framework được Microsoft hỗ trợ và duy trì nâng cấp mạnh mẽ.
Gần đây, họ đã đưa ra cách tiếp cận phát triển Hybrid mobile app mới cho phép code across
platform. Nó đã giúp cải thiện tốc độ phát triển và đơn giản hóa bảo trì. Các nhà phát triển
có thể sử dụng logic chung, tuy nhiên, các quy định UI sẽ duy trì cụ thể cho từng nền tảng.
Xamarin sẽ không xử lý đồ họa phức tạp nhưng phù hợp với các ứng dụng đơn giản. Công
nghệ này thường được chọn cho các dự án định hướng kinh doanh.
+ Ionic: Framework này tạo ra các ứng dụng mobile với các công nghệ web tiêu
chuẩn như JavaScript, CSS, HTML, Angular,... Các nhà phát triển cũng có rất nhiều UI
component có thể truy cập đơn giản để xử lý. Thời gian phát triển là tuyệt vời như với tất
cả các khung khác cho các ví dụ Hybrid app. Mặc dù có tất cả các lợi ích, việc bảo trì có 20