



















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