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

Báo cáo thực tập lập trình ứng dụng di động ios bằng react native và expo

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 (390.58 KB, 23 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP
LẬP TRÌNH ỨNG DỤNG DI ĐỘNG IOS
BẰNG REACT NATIVE VÀ EXPO

Công

ty

thực Công

ty

TNHH

tập:
AIOZ
Người phụ trách: Lê Quang Phát
Thực tập sinh:
Phạm
Hớn
Tuyền


SE501.N21.PMCL – Phạm Hớn Tuyền

TP. Hồ Chí Minh, tháng 06 năm 2023


2


SE501.N21.PMCL – Phạm Hớn Tuyền

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP
LẬP TRÌNH ỨNG DỤNG DI ĐỘNG IOS
BẰNG REACT NATIVE VÀ EXPO

Công

ty

thực Công

ty

TNHH

tập:
AIOZ
Người phụ trách: Lê Quang Phát
Thực tập sinh:
Phạm
Hớn
Tuyền



SE501.N21.PMCL – Phạm Hớn Tuyền

TP. Hồ Chí Minh, tháng 06 năm 2023


SE501.N21.PMCL – Phạm Hớn Tuyền

LỜI MỞ ĐẦU
Hiện nay, với sự phát triển vượt bậc và mạnh mẽ của ngành công
nghệ trên thế giới, việc điện thoại di động thông minh (gọi tắt là
smartphone) ngày trở thành một trong những vật dụng không thể thiếu
trong thời đại ngày nay.
Kèm theo sự phát triển của smartphone đó chính là sự gia tăng chóng mặt
của các ứng dụng di động để đáp ứng được nhu cầu sử dụng của người
dùng smartphone trên toàn cầu. Những ứng dụng di động ngày càng phát
triển không ngừng, hỗ trợ người dùng với đủ mọi mặt trong mọi lĩnh vực
như giáo dục, giải trí, thể thao, xã hội,… Những ứng dụng này được xây
dựng với mục đính chính là giúp cung cấp cho con người những cơng cụ
hữu ích, giải quyết hay hỗ trợ các vấn đề trong cuộc sống.
Sau những năm học tập trên ghế của nhà trường, em đã có quyết định
mong muốn được trải nghiệm, làm giàu kinh nghiệm của bản thân và cũng
như có cơ hội được tham gia các dự án xây dựng ứng dụng trong một môi
trường chuyên nghiệp nên em đã có dự định quyết định thực tập trong
thời gian này. Và sự lựa chọn của em đó chính là công ty AIOZ, một môi
trường chuyên nghiệp, hiện đại và thân thiện, đã cho em cơ hội để thực
tập vị trí Frontend.

1



SE501.N21.PMCL – Phạm Hớn Tuyền

LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn đến các anh chị tại công ty AIOZ đã cho em cơ hội
để thực tập tại cơng ty cũng như đóng góp vào q trình thực hiện các dự án trong mơi trường
thực tế đầy tính chuyên nghiệp và hiện đại.
Trong suốt quãng thời gian thực tập, nhờ vào sự hướng dẫn tận tình của các anh chị tại cơng
ty, em đã có cơ hội để theo dõi, học tập và trau dồi kinh nghiệm cho kiến thức chuyên ngành
của Công nghệ phần mềm và cũng như trải nghiệm làm việc tại một công ty chuyên về cơng
nghệ. Tuy vẫn cịn những thiếu sót trong q trình học tập, em vẫn đang và sẽ tiếp tục cố
gắng nỗ lực để ngày càng trau dồi bản thân mình hơn.
Ngồi ra, em cũng xin chân thành cảm ơn các thầy trong khoa Cơng nghệ
phần mềm đã nhiệt tình hỗ trợ, trang bị cho em những kiến thức quý báu
cho em trong suốt quá trình học tập để giúp em thực hiện báo cáo này.

Em chân thành cảm ơn!
TP. HCM, tháng 06 năm 2023
Phạm Hớn Tuyền

2


SE501.N21.PMCL – Phạm Hớn Tuyền

NHẬN XÉT CỦA KHOA
......................................................................................................................
............................. ........................................................................................
........................................................... ..........................................................

......................................................................................... ............................
......................................................................................................................
. ....................................................................................................................
............................... ......................................................................................
............................................................. ........................................................
........................................................................................... ..........................
......................................................................................................................
... ..................................................................................................................
................................. ....................................................................................
............................................................... ......................................................
............................................................................................. ........................
......................................................................................................................
..... ................................................................................................................
................................... ..................................................................................
................................................................. ....................................................
............................................................................................... ......................
......................................................................................................................
....... ..............................................................................................................
..................................... ................................................................................
................................................................... ..................................................
................................................................................................. ....................
......................................................................................................................
......... ............................................................................................................
....................................... ..............................................................................
..................................................................... ................................................
................................................................................................... ..................
......................................................................................................................
........... ..........................................................................................................
......................................... ............................................................................
....................................................................... ..............................................

..................................................................................................... ................
......................................................................................................................
............. ........................................................................................................
........................................... ..........................................................................
......................................................................... ............................................
....................................................................................................... ..............
......................................................................................................................
............... ......................................................................................................
............................................. ........................................................................
........................................................................... ..........................................
......................................................................................................... ............
3


SE501.N21.PMCL – Phạm Hớn Tuyền

......................................................................................................................
................. ....................................................................................................
............................................... ......................................................................
............................................................................. ........................................
........................................................................................................... ..........
......................................................................................................................
................... ..................................................................................................
................................................. ....................................................................
...............................................................................

MỤC LỤC
LỜI MỞ ĐẦU...........................................................................................................................1
LỜI CẢM ƠN...........................................................................................................................2
NHẬN XÉT CỦA KHOA........................................................................................................3

MỤC LỤC.................................................................................................................................4
CHƯƠNG 1: GIỚI THIỆU CƠNG TY THỰC TẬP............................................................5
1.

Giới thiệu........................................................................................................................5

2.

Sản phẩm cơng ty..........................................................................................................5

3.

Lịch làm việc khi thực tập tại công ty.........................................................................7

4.

Mô tả cơng việc..............................................................................................................7

CHƯƠNG 2: NỘI DUNG THỰC TẬP..................................................................................8
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty.................................................8
2. Nghiên cứu kỹ thuật.........................................................................................................8
2.1. Làm quen với các công cụ làm việc.........................................................................8
2.2. Tìm hiểu về React Native và kiến trúc trong React Native...................................8
2.3. Tìm hiểu về Expo.......................................................................................................9
2.4. Tìm hiểu về GL React & GLSL...............................................................................9
3. Thực hiện dự án cá nhân...............................................................................................10
3.1. Công nghệ................................................................................................................10
3.2. Mô tả dự án..............................................................................................................10
3.3. Kết quả.....................................................................................................................12
4. Lịch làm việc...................................................................................................................12

CHƯƠNG 3: TỔNG KẾT.....................................................................................................14
1. Điểm mạnh......................................................................................................................14
2. Điểm yếu..........................................................................................................................14
3. Chuẩn đạt được..............................................................................................................14
4


SE501.N21.PMCL – Phạm Hớn Tuyền

TÀI LIỆU THAM KHẢO.....................................................................................................16

5


SE501.N21.PMCL – Phạm Hớn Tuyền

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP
1.

Giới thiệu

Hình logo của AIOZ
AIOZ là một cơng ty có trụ sở tại Singapore. Mục tiêu của cơng ty là
giải quyết các vấn đề phức tạp trong đời thực bằng cách áp dụng các công
nghệ tiên tiến gần đây Blockchain và Trí tuệ nhân tạo (AI).
Về mảng AI, cơng ty AIOZ tiên phong trong việc phát triển các thuật
toán tối ưu hóa, mơ hình học máy và các giải pháp AI đã được kiểm chứng
khoa học. Ngoài ra, một trong những sản phẩm Blockchain nổi bật của
cơng ty, đó chính là AIOZ Network (Mạng AIOZ), là cơ sở hạ tầng Web3
Media Blockchain, sử dụng tài nguyên dự phòng của tất cả các máy tính

trên tồn thế giới để xây dựng một dCDN hiệu quả với tốc độ phân phối tối
ưu, chi phí thấp nhất và chất lượng phát trực tuyến cao nhất.

2.

Sản phẩm công ty

AIOZ Network (aioz.network)

6


SE501.N21.PMCL – Phạm Hớn Tuyền

AIOZ Network là một chuỗi khối Lớp 1 được xây dựng trong hệ sinh thái
Cosmos và có khả năng tương thích với EVM. AIOZ Network mang đến khả
năng tương tác chưa từng có, phí giao dịch thấp, thơng lượng nhanh chóng
và tính hữu hạn tức thì.
AIOZ Network kết nối mạng toàn cầu gồm các nút do người dùng điều
hành để tạo dCDN. Bằng cách khai thác khả năng tính tốn khơng hoạt
động trên tồn thế giới, nó trao quyền cho nền kinh tế phi tập trung mới
nổi.
AIOZ Network dCDN cung cấp nội dung nhanh hơn đồng thời loại bỏ rào
cản giữa người sáng tạo và người ủng hộ họ. Cho dù đó là văn bản, âm
thanh, video hay trò chơi, nội dung được ghi lại hay phát trực tiếp, AR hay
VR. AIOZ Network dCDN cung cấp năng lượng cho cơ sở hạ tầng sẽ kích
hoạt kỷ nguyên tiếp theo của phần mềm truyền thông.

AIOZ Beetle (beetle.aioz.io)
Là một đội nhóm được thành lập bởi cơng ty AIOZ trong thời đại COVID-19,

nhằm với mục đích mang đến những robot tự hành hữu ích, thực hiện
nhiều tác vụ phức tạp. Trong đó có:




BeetleBot-H là robot có thể tự hành, giao hàng theo yêu cầu và
theo lộ trình được thiết lập. Robot cũng có thể thực hiện cuộc gọi
video hỗ trợ khám chữa bệnh, giám sát từ xa, phun xịt khử khuẩn,
hỗ trợ phun thuốc khử khuẩn khu vực điều trị bệnh nhân.
BeetleBot-PV là một sản phẩm robot giúp giám sát, nhắc nhở và
cảnh báo người dân có đeo khẩu trang hay thực hiện đảm bảo giãn
cách an tồn, có tụ tập đông người hay không.

7


SE501.N21.PMCL – Phạm Hớn Tuyền

3.

Lịch làm việc khi thực tập tại công ty

 Thời gian làm việc: bắt đầu từ ngày 18/09/2022 và kết thúc vào ngày
18/12/2022
 Thời gian thực tập trong tuần (làm việc part-time): thứ hai, thứ tư và
thứ sáu.
 Giờ làm việc: bắt đầu từ 8h30 cho đến 17h30.
 Thời gian nghỉ trưa: khoảng 1 tiếng 30 (từ 12h – 1h30)
8



SE501.N21.PMCL – Phạm Hớn Tuyền

4.

Mơ tả cơng việc

Ví trị thực tập: Kỹ sư phát triển phần mềm Frontend (Frontend Engineer)
Mô tả công việc thực tập: em thực tập với vị trí Frontend Engineer cho bộ phận AI tại
cơng ty AIOZ. Nội dụng thực tập chính của em sẽ bao gồm 2 giai đoạn chính: nghiên cứu
cơng nghệ và phát triển úng dụng.




Trong phần nghiên cứu, em sẽ tìm hiểu về đề tài thực tập đã được
giao do bởi anh Phát hướng dẫn. Trong đó sẽ bao gồm: tìm hiểu các
vấn đề trong đề tài, trao đổi với anh Phát để có thể được giải đáp
các thắc mắc, đề xuất một số ý kiến liên quan và đánh giá tính khả
thi của chúng, nghiên cứu các công nghệ sẽ được sử dụng trong dự
án thực tập, lập kế hoạch cụ thể cho giai đoạn phát triển ứng dụng
và phác thảo bản mẫu (prototype) của ứng dụng.
Trong phát triển ứng dụng, em sẽ tiến hành thực hiện việc xây dựng
dự án dựa theo kế hoạch cụ thể đã đề xuất ra. Trong giai đoạn này,
em sẽ thực hiện việc xây dựng mobile application dựa theo các yêu
cầu trong kế hoạch cụ thể đề cập trên, bao gồm: xây dựng phần
giao diện theo bản phác thảo đã được duyệt bởi anh Phát, phát triển
các tính năng dựa theo yêu cầu, ghi lại các báo cáo tiến độ và tối ưu
các tính năng.


Mơ tả quy trình làm việc hằng ngày: trước khi bắt đầu công việc,
em sẽ báo cáo tiến độ hiện tại của công việc trong ngày với anh Phát, trao
đổi một số những vấn đề trong quá trình thực hiện dự án. Trước khi kết
thúc ngày làm việc, em sẽ tổng hợp lại những gì đã làm và gửi một bản
báo cáo để anh Phát đánh giá. Vào mỗi cuối tuần, em sẽ có buổi meeting
với anh Phát để tổng hợp các việc đã làm trong tuần, đánh giá tiến độ,
chia sẻ kinh nghiệm và các hướng giải quyết vấn đề.

9


SE501.N21.PMCL – Phạm Hớn Tuyền

CHƯƠNG 2: NỘI DUNG THỰC TẬP
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian: 1 ngày
Nội dung:






Giới thiệu về công ty, thời gian làm việc, các nội quy cần phải tuân
thủ trong công ty, phúc lợi, các quyền lợi và văn hóa làm việc cần
biết.
Được hướng dẫn về quy trình làm việc của cơng ty, quy trình phát
triển phần mềm, mô tả về công việc sẽ làm trong ngày (nhận công
việc, thực hiện và báo cáo công việc).

Được cung cấp tài khoản làm việc trong nội bộ công ty, các cổng
liên lạc làm việc trong nội bộ và quyền truy cập các tài ngun
trong cơng ty.

Kết quả: tìm hiểu về cơ cấu làm việc, nội quy tuân thủ, quy trình phát
triển phần mềm và các công việc làm trong hằng ngày.

2. Nghiên cứu kỹ thuật
2.1. Làm quen với các công cụ làm việc
Thời gian: 1 ngày
Nội dung:
Tìm hiểu các cơng cụ sẽ được sử dụng trong quá trình làm việc tại cơng
ty. Sau đó sẽ thiết lập các cơng cụ theo tính cá nhân để thuận tiện trong
khi việc làm tại văn phòng:
 Gitlab: GitLab là hệ thống self-hosted mã nguồn mở dựa trên hệ
thống máy chủ Git dùng để quản lý mã nguồn của các nhà phát triển
ứng dụng. GitLab cung cấp giải pháp server một cách hoàn hảo và
nhận được sự đánh giá cao từ cộng đồng.
 Visual Studio Code: trình soạn thảo văn bản gồm nhiều ưu điểm nổi
bật như đơn giản, gọn nhẹ, dễ sử dụng.
 Slack: ứng dụng giúp cho việc giao tiếp và trao đổi giữa các thành
viên trong nhóm.
 Expo: là một cơng cụ mã nguồn mở và miễn phí được xây dựng xung
quanh React Native để giúp lập trình viên xây dựng các dự án iOS và
Android nhanh chóng bằng JavaScript và React.
 Figma: ứng dụng miễn phí giúp xây dựng bản mẫu (prototype) của
ứng dụng một cách nhanh chóng, có thể chia sẻ giữa những thành
viên với nhau. Figma còn cung cấp tài nguyên cho mọi khâu của quá

10



SE501.N21.PMCL – Phạm Hớn Tuyền

trình tổ chức thiết kế, từ brainstorm ý tưởng concept cho đến khởi tạo
code từ mẫu thiết kế.
Kết quả: làm quen và thiết lập các phần mềm để hỗ trợ trong việc làm

2.2. Tìm hiểu về React Native và kiến trúc trong React Native
Thời gian: 3 ngày
Nội dung:
Tìm hiểu về các thành phần khái niệm cốt lõi và cơ bản trong React
Native. Trong đó bao gồm:




Khái niệm về Components trong React, phân tích và phân tách app
theo từng components.
Các khái niệm về JSX, render, quản lý các State và Props trong các
Components của React.
Các thành phần Core Components trong React Native và cách React
Native render các components trên các nền tảng khác nhau (iOS,
Android, Web).

Tìm hiểu về kiến trúc cũ và mới cho React Native, sự khác biệt và cách
vận hành của chúng.









Fabric: là hệ thống render mới của React Native thay thế bộ render
cũ. Các hoạt động chính của Fabric là thống nhất nhiều logic render
hơn trong C++, cải thiện khả năng tương tác với các nền tảng.
JSI: là một phương thức thay thế cho Bridge (từ kiến trúc cũ) để tạo
sự kết nối cho JS Thread và Native Thread, cải thiện mức độ hiệu
năng trong việc xử lý logic và tương thích với nhiều Javascript
Engines khác.
Turbo Modules: là một bộ phận giúp cho các thành phần Native
(Bluetooth, Camera, Location, …) sẽ được lazy-load thay vì phải
được khởi tạo ngay trước khi ap khởi động, giúp giảm dung lượng và
tăng tốc khởi động của app.
Threading Model bao gồm 3 threads: UI Thread, Javascript Thread và
Background Thread.

Kết quả: Hiểu về các khái niệm cốt lõi trong React Native và cách thức
xây dựng ứng dụng React Native.

2.3. Tìm hiểu về Expo
Thời gian: 1 ngày
Nội dung:

11


SE501.N21.PMCL – Phạm Hớn Tuyền


Tìm hiểu về cơng cụ Expo và cách xây dựng app React Native bằng
công cụ Expo.




Expo là một cơng cụ mã nguồn mở và miễn phí được dùng để xây
dựng xung quanh React Native để giúp ta xây dựng các dự án iOS
và Android bằng JavaScript và React.
Với Expo, các nhà phát triển có thể tạo ra các ứng dụng React
Native mà không gặp bất kỳ sự phiền toái nào giống như khi cài đặt
và cấu hình các phần mềm phụ trợ như Android Studio, Xcode hoặc
tất cả các công cụ khác cần thiết để phát triển và chạy ứng dụng
React Native. Gói expo có thể được cài đặt trong mọi ứng dụng
React Native.

Kết quả: Hiểu về công cụ Expo và khởi tạo dự án app React Native
thơng qua Expo.

2.4. Tìm hiểu về GL React & GLSL
Thời gian: 1 ngày
Nội dung:
Tìm hiểu về thư viện hỗ trợ GL React và GLSL (OpenGL Shading
Language), ngôn ngữ tô bóng cao cấp.




GL-React là một thư viện React để viết và soạn các trình đổ bóng

WebGL bằng ngơn ngữ GLSL. Thực hiện các hiệu ứng phức tạp bằng
cách soạn các components từ React..
OpenGL Shading Language (GLSL) là ngôn ngữ tô bóng cấp cao với
cú pháp dựa trên ngơn ngữ lập trình C. Nó được tạo bởi OpenGL ARB
(OpenGL Architecture Review Board) để cung cấp cho các nhà phát
triển khả năng kiểm soát trực tiếp hơn đối với đường ống đồ họa mà
không cần phải sử dụng ngôn ngữ hợp ngữ ARB hoặc ngơn ngữ dành
riêng cho phần cứng.

Kết quả: Tìm hiểu và nghiên cứu về GL React và ngôn ngữ đổ bóng
GLSL.

3. Thực hiện dự án cá nhân
Trong vịng 8 tuần kế tiếp, em được anh mentor Phát hướng dẫn xây dựng một ứng dụng
mobile chuyên về chỉnh sửa ảnh và video trên nền tảng iOS. Trong đó, ta có thể chụp lại các
ảnh, hoặc dùng ảnh từ trong kho ảnh cá nhân của người dùng, để có thể tùy chỉnh sửa ảnh
theo một số tiêu chí cụ thể.
3.1. Cơng nghệ



Figma
React Native
12


SE501.N21.PMCL – Phạm Hớn Tuyền





Expo
GL React

3.2. Mơ tả dự án
Vì lý do bảo mật và chính sách được quy định trong hợp động việc làm, em xin không được
tiết lộ các thông tin chi tiết về dự án, nhưng em vẫn sẽ có thể giới thiệu sơ lược về các cơng
việc em đã làm.
Trong q trình thực hiện project, em đã chia nhỏ ra thành nhiều giai đoạn để thực hiện:
3.2.1. Nghiên cứu
Trước khi tiến hành project, anh Phát đã có yêu cầu em nghiên cứu về các app có cùng
tính năng trên thị trường để tham khảo và xem xét các luồng hoạt động của chúng. Qua đó có
thể kế đến một số app chụp ảnh phổ biến như như B612, SNOW, Camera360, Ulike,
ProCamera.
Tiếp đến đó là em sẽ nghiên cứu và tìm hiểu việc xây dựng tính năng chỉnh sửa ảnh trực tiếp.
Tính năng này có thể chia ra thành 3 phần: đọc dữ liệu ảnh, tương tác/chỉnh sửa ảnh và xuất
ảnh mới.
3.2.2. Thiết kế bản mẫu (Prototype)
Sau khi hoàn thành phần nghiên cứu, em sẽ chuyển sang việc thiết kế bản mẫu của app
bằng công cụ Figma. Bản thiết kế này sẽ cần chỉ rõ các tương tác về nút bấm, các luồng
chuyển qua lại giữa các màn hình và tính năng chính của chúng.
3.2.3. Xây dựng
Trong giai đoạn xây dựng này, em chia nhỏ thành các cơng việc khác nhau và hồn thành
chúng trong thời gian đã dự tính. Chúng bao gồm:










Setup codebase
Dựng UI cơ bản theo bản mẫu.
Tính năng chụp và lưu ảnh: đây là tập hợp các tính năng có liên quan đến việc chụp và lưu
lại ảnh vừa chụp. Trong đó sẽ bao gồm như: đổi mặt camera (trước và sau), bật tắt đèn
Flash, chụp ảnh và lưu ảnh vào bộ nhớ.
Tính năng quay và lưu video: gồm các tính năng chuyên dùng cho việc quay và lưu lại
video đã ghi hình. Chúng bao gồm: khởi động quay, đếm thời gian quay video, lưu video
vào bộ nhớ.
Tính năng xem các video và ảnh: khi người dùng chọn tính năng này, app sẽ mở ra bộ nhớ
kho lưu trữ ảnh video của người dùng.
Các tính năng chuyển động màn hỉnh khi chuyển đổi qua lại giữa các màn hình.

Sau khi đã hồn thành các tính năng cơ bản của ứng dụng, em tiến hành việc thử nghiệm
và thực hiện cài đặt các tính năng nâng cao về việc tương tác với ảnh và video, cụ thể là thay
đổi trực tiếp lên các nguồn ảnh và video để tạo cho chúng có những hiệu ứng mới mẻ. Cụ thể,
em đã dùng thư viện GL-React để xây dựng thành các components React để tạo một lớp layer
lên trên nền các hình ảnh và video, có 2 tính năng lớn sử dụng các components này:

13


SE501.N21.PMCL – Phạm Hớn Tuyền






Các tính năng chỉnh sửa ảnh: khi người dùng chọn xem ảnh từ kho bộ nhớ, người dùng có
thể tương tác với bức ảnh thơng qua các lựa chọn có sẵn để thay đổi tấm ảnh của mình,
bao gồm:
o Các Filters về màu sắc: đa dạng các màu Normal, Juno, Sepia, Grayscale, Gingham,
Mayfair, Valencia, Night Vision, Warm và Cool (mặc định là Normal).
o Các Options về điều chỉnh hiệu ứng của ảnh: Contrast, Saturation, Brightness, Blur,
Negative, Flyeye.
o Stickers: cho phép người dùng có thể chèn các stickers lên ảnh tùy thích.
Tính năng quay video thơng qua màn GL-React: khi người dùng chọn chuyển sang
Camera GL, người dùng có thể quay video thơng qua các Filters có sẵn (Normal, Juno,
Sepia, Grayscale, Gingham, Mayfair, Valencia, Night Vision, Warm và Cool).

3.2.4. Sửa lỗi và Cải tiến
Sau khi đã hoàn thành các tính năng chính, em sẽ tiến hành cải thiện project thơng qua
việc thêm một số tính năng hỗ trợ cho người dùng:
Thông báo cho hành động vừa thực hiện (Toaster)
Hoạt ảnh khi chuyển màn hình
Intro khi khởi động app.





Cuối cùng, em thực hiện việc tối ưu project thông qua việc sửa các lỗi liên quan về hiệu năng,
lỗi giao diện và clean code.
3.3. Kết quả
Sau khi hoàn thành dự án, em đã được cùng các anh chị trong nhóm cùng có một buổi
meeting để demo cho phần sản phẩm app được xây dựng, review tổng toàn bộ quá trình làm
việc của nhóm, đánh giá cơng việc và đưa ra những lời nhận xét cho em. Trong dự án, em đã
được học tập và nghiên cứu nhiều công nghệ mới thú vị và hữu ích trong việc xây dựng ứng

dụng mobile:





React Native
Expo
Figma
Các thư viện hỗ trợ hữu ích GL-React, React Navigation.

Không chỉ thế, em đã học tập rất nhiều kỹ năng mềm trong quy trình làm việc trong một
cơng ty mang tính chun nghiệp:






Kỹ năng tìm hiểu và nghiên cứu về công nghệ.
Tầm quan trọng của việc quản lý source code và clean code khi trình bày ý tưởng.
Khả năng quản lý công việc thông qua việc lên kế hoạch trước cho cả dự án.
Cải thiện khả năng thuyết trình ý kiến cá nhân trước mọi người.
Các kiến thức thực tiễn về quy trình làm việc trong ngành Cơng nghệ phần mềm.

14


SE501.N21.PMCL – Phạm Hớn Tuyền


4. Lịch làm việc
Tuầ
n

Công việc

Người hướng dẫn

1

 Tìm hiểu về các nội quy
trong cơng ty, làm quen với
các công việc trong ngày.
 Thiết lập các công cụ, ứng
dụng trên thiết bị tại cơng ty.
 Tìm hiểu và nghiên cứu
React

Anh Lê Quang Phát

2

 Tìm hiểu Expo.
 Nghiên cứu các ứng dụng
trong thị trường.
 Nghiên cứu các kiến thức về
OpenGL, GLSL

Anh Lê Quang Phát


3

 Lên kế hoạch cho dự án.
 Vẽ bản mẫu cho ứng dụng.

Anh Lê Quang Phát

4

 Xây dựng UI cơ bản cho ứng
dụng.
 Dựng luồng di chuyển trong
app.

Anh Lê Quang Phát

5

Cài đặt các tính năng về ảnh:
 Chụp và lưu ảnh.
 Chỉnh sửa ảnh. (Filters)

Anh Lê Quang Phát

6

 Chỉnh sửa ảnh (Options)
 Chèn Filters vào ảnh

Anh Lê Quang Phát


7

Cài đặt các tính năng về video:
 Quay và lưu video.
 Quay video trong lớp layer
GL-React

Anh Lê Quang Phát

8






Thêm các tính năng cải tiến
Thơng báo người dùng
Animations khi tương tác
Intro khi app khởi động

Anh Lê Quang Phát

9

 Sửa lỗi trong ứng dụng
 Tham gia cuộc họp để nhận

Nhận xét của

người hướng
dẫn

A. Lê Quang Phát
A. Nguyễn Thanh Hưởng

15


SE501.N21.PMCL – Phạm Hớn Tuyền

review và chỉnh sửa
10

 Tối ưu code
 Clean code

11

 Báo cáo dự án

Anh Lê Quang Phát
A. Lê Quang Phát
A. Đỗ Khánh Long Tường
A. Nguyễn Thanh Hưởng

16




×