ĐẠ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
XÂY DỰNG ỨNG DỤNG ĐIỀU KHIỂN NHÀ
THÔNG MINH TRÊN THIẾT BỊ DI ĐỘNG
Công ty thực tập
: Sunshine Tech
Người phụ trách
: Đặng Quang Trung
Thực tập sinh
: Phạm Quốc Đạt
TP. HỒ CHÍ MINH, 2022
LỜI MỞ ĐẦU
Thế giới đã và đang bước vào thời đại của Internet vạn vật (IoT), với sự xuất
hiện của các ứng dụng công nghệ IoT hứa hẹn mang đến những giá trị to lớn cho con
người. Trong những năm gần đây, chúng ta đã thấy sự xuất hiện của những hệ thống
nhà thông minh hay các thiết bị gia dụng thông minh có thể điều khiển bằng giọng
nói hoặc thông qua cảm biến. Không chỉ dừng lại ở đó, khi mọi đồ vật được kết nối
Internet, chúng sẽ trở nên thông minh hơn nhờ khả năng gửi và/hoặc nhận thông tin
và tự động hoạt động dựa trên các thông tin đó, đồng thời có thể ra lệnh cho các thiết
bị khác. Công nghệ này còn cho phép người dùng có thể dễ dàng điều khiển các thiết
bị trong nhà dù ở bất cứ đâu thông qua điện thoại thông minh.
Vì vậy, để có cơ hội tiếp cận sớm hơn với những quy trình tạo ra một ứng dụng
điều khiển các thiết bị IoT trên thiết bị di động, cùng với mong muốn có thêm kinh
nghiệm thực tế trong môi trường làm việc của ngành Công nghệ Thông tin nói chung
và Kỹ thuật Phần mềm nói riêng, nên em đã quyết định ứng tuyển vào Công ty
Sunshine Tech – một công ty phần mềm thuộc Sunshine Group là một trong những
Tập đoàn bất động sản hàng đầu Việt Nam hiện nay. Vì em có tìm hiểu là nơi đây
phát triển rất mạnh về các ứng dụng có liên quan tới IoT nhằm đáp ứng nhu cầu cư
dân của Sunshine.
Phạm Quốc Đạt
LỜI CẢM ƠN
Trước hết, em xin gửi lời cảm ơn chân thành tới công ty Sunshine Tech đã tạo
điều kiện cho em có cơ hội thực tập tại công ty.
Ngay từ những buổi đầu thực tập, dưới sự hướng dẫn nhiệt tình của các anh
chị cố vấn, em đã tiếp thu được nhiều kiến thức về quy trình sản xuất phần mềm trong
thực tế, cũng như được làm việc trong môi trường chuyên nghiệp. Em được trao cơ
hội tham gia vào nhóm lập trình ứng dụng di động. Đây là khoảng thời gian em quý
giá để em có thể chuẩn bị tốt hơn cho công việc trong tương lai.
Em xin cảm ơn các anh chị và các thành viên trong nhóm đã quan tâm, giúp
đỡ và động viên em xuyên suốt quá trình thực tập tại công ty. Mọi người tạo mọi điều
kiện để em học tập, làm việc một cách có hiệu quả, giúp em làm quen với quá trình
phát triển phần mềm, hiểu được sự phức tạp của lập trình, cung cấp kinh nghiệm thực
tiễn phong phú, tạo nền tảng cho sự phát triển của em sau này.
Bên cạnh đó, em cũng trân trọng gửi lời cảm ơn tới quý thầy cô khoa Công
nghệ Phần mềm đã tận tình dạy dỗ, chỉ bảo, hướng dẫn và tạo điều kiện cho em hoàn
thành bài báo cáo này.
Sinh viên thực hiện
Phạm Quốc Đạt
TP.Hồ Chí Minh, ngày 15 tháng 06 năm 2022
NHẬN XÉT CỦA KHOA
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
MỤC LỤC
DANH MỤC HÌNH .................................................................................................... i
DANH MỤC BẢNG .................................................................................................. ii
Chương 1. GIỚI THIỆU CÔNG TY THỰC TẬP ......................................................1
1.1. Giới thiệu công ty Sunshine Tech – thành viên của Sunshine Group..............1
1.2. Sản phẩm của công ty ......................................................................................2
Chương 2. Nội dung thực tập ......................................................................................5
2.1. Tìm hiểu công ty và các kỹ năng cơ bản sử dụng trong công việc ..................5
2.2. Tìm hiểu về sản phẩm và các công nghệ liên quan ..........................................5
2.3. Tham gia làm việc cùng Scrum team ...............................................................6
2.4. Lịch làm việc ....................................................................................................6
Chương 3. Chi tiết về project ......................................................................................9
3.1. Giới thiệu về dự án ...........................................................................................9
3.2. Thực hiện........................................................................................................10
Chương 4. Kết quả đạt được .....................................................................................11
4.1. Scrum .............................................................................................................11
4.1.1. Giới thiệu.................................................................................................11
4.1.2. Ba trụ cột chính của Scrum .....................................................................12
4.1.3. Scrum team..............................................................................................12
4.1.4. Scrum Event ............................................................................................12
4.2. Flutter .............................................................................................................12
4.2.1. Flutter là gì? ............................................................................................12
4.2.2. Tính mới của Flutter................................................................................13
4.2.3. Đặc điểm nổi bật .....................................................................................13
4.3. Stoplight .........................................................................................................14
TỔNG KẾT ...............................................................................................................15
TÀI LIỆU THAM KHẢO .........................................................................................16
i
DANH MỤC HÌNH
Hình 1.1: Logo của công ty Sunshine Tech ................................................................1
Hình 1.2: Logo của Unicloud Group ..........................................................................2
Hình 1.3: Nhà thông minh của Sunshine Tech ...........................................................3
Hình 1.4: Ứng dụng Kienlong Bank Plus [4]..............................................................3
Hình 3.1: Hình ảnh thực tế từ ứng dụng Sliving App .................................................9
Hình 4.1 Mô tả quy trình Scrum ...............................................................................11
Hình 4.2 Ví dụ minh họa cho Flutter ........................................................................14
ii
DANH MỤC BẢNG
Bảng 2.1 Lịch làm việc theo sprint .............................................................................8
1
Chương 1. GIỚI THIỆU CÔNG TY THỰC TẬP
1.1. Giới thiệu công ty Sunshine Tech – thành viên của Sunshine Group
Hình 1.1: Logo của công ty Sunshine Tech
Công ty CP Đầu tư Thương mại Sunshine Tech [1] được thành lập ngày
12/06/2016, là công ty công nghệ chuyên về các giải pháp công nghệ IoT liên quan
tới tối ưu và nâng cao chất lượng đời sống của cư dân tại các dự án căn hộ hạng sang.
Trong những năm qua, Sunshine Tech liên tục đã cho ra đời các giải pháp như giải
pháp tổng thể cho smart living, giải pháp nhà thông minh, giải pháp bãi đỗ xe thông
minh, giải pháp an ninh thông minh, giải pháp thang máy thông minh và giải pháp
kiểm soát ra vào thông minh.
Những bước đi đột phá bằng công nghệ thông minh này đã giúp Sunshine
Group hoàn thiện “hệ sinh thái Sunshine” với tâm điểm là “cư dân điện tử” bằng các
tiện ích công nghệ cùng dịch vụ hoàn hảo nhằm nâng cao chất lượng đời sống của
người dân Việt…Đồng thời tạo sự khác biệt cho các sản phẩm bất động sản của
Sunshine Group nhờ sự khác biệt về công nghệ hiện đại, vượt trội và thông minh.
Những lĩnh vực phát triển của công ty [2]:
• Xây dựng các ứng dụng di động (Mobile App) cho việc giám sát, điều khiển.
• Thiết kế phần cứng của Sản phẩm.
• Xây dựng Firmware, Cloud Server.
• Xây dựng Mobile App, Website.
• AI, Machine learning, …
Đặng Quang Trung
Phạm Quốc Đạt
2
Cuối năm 2021, Sunshine Tech đã được đổi tên thành Công ty CP Tập đoàn
Công nghệ Unicloud (Unicloud Group), có hơn 300 thành viên tại trụ sở Hà Nội và
chi nhánh TP.HCM, cùng 2 công ty con là Unicloud Investment và Nanochip.
Hình 1.2: Logo của Unicloud Group
1.2. Sản phẩm của công ty
Sunshine Tech là công ty xây dựng những sản phẩm hiện đại và tiện lợi cho
những cư dân căn hộ cao cấp, giúp kết nối các đồ vật và thiết bị thông qua cảm biến,
phần mềm và các công nghệ khác, cho phép các đồ vật và thiết bị thu thập và trao đổi
dữ liệu với nhau để tự hoạt động dựa trên dữ liệu đó.
Các giải pháp nhà thông minh nổi bật của Sunshine Tech [3] giúp thay đổi chất
lượng cuộc sống:
• Hệ thống công tắc cảm ứng.
• Rèm cửa thông minh.
• Điều hòa thông minh.
• Cảm biến chuyển động.
• Hệ thống đo lường thông minh (giúp chủ nhà kiểm soát số liệu điện năng và
nước tiêu thụ trong gia đình theo thời gian thực tế).
Đặng Quang Trung
Phạm Quốc Đạt
3
Hình 1.3: Nhà thông minh của Sunshine Tech
Hình 1.4: Ứng dụng Kienlong Bank Plus [4]
Đặng Quang Trung
Phạm Quốc Đạt
4
Bên cạnh những sản phẩm về nhà thông minh, Sunshine Tech còn xây dựng
các sản phẩm khác. Một trong những sản phẩm nổi bật là Kienlong Bank Plus, được
Ngân hàng TMCP Kiên Long (KienlongBank) và Tập đoàn Sunshine (Sunshine
Group) phối hợp hoàn thiện.
Đặng Quang Trung
Phạm Quốc Đạt
5
Chương 2. Nội dung thực tập
Trong thời gian thực tập, em đã tham gia dự án xây dựng ứng dụng dạy điều
khiển nhà thông minh thiết bị di động - Sliving App - phục vụ điều khiển các thiết bị
IoT trong các căn hộ thông minh. Thực tập sinh tại công ty có cơ hội học hỏi, khám
phá và làm việc trong môi trường phát triển ứng dụng chuyên nghiệp.
2.1. Tìm hiểu công ty và các kỹ năng cơ bản sử dụng trong công việc
Thời gian: 1 ngày
Nội dung:
• Giới thiệu tổng quan về công ty (quá trình thành lập và phát triển, quy trình
làm việc, cách tổ chức của công ty).
• Tìm hiểu các nguyên tắc trong công ty (giờ làm việc, cách theo dõi tiến độ
công việc bằng Jira, sử dụng email trong công việc, thái độ làm việc, …).
• Giới thiệu về các thành viên nhóm và sản phẩm sẽ thực hiện.
• Giới thiệu các công cụ và website hỗ trợ trong quá trình làm việc.
Kết quả:
• Có kiến thức hiểu biết thêm về công ty Sunshine Tech cũng như văn hóa, giá
trị, quá trình thành lập và phát triển của công ty.
• Biết cách tự tìm đọc tài liệu hiệu quả liên quan đến việc tải ứng dụng, cài đặt
máy.
• Có thêm các kỹ năng về việc sử dụng email, Jira trong công việc, tác phong
làm việc có kế hoạch, trách nhiệm và kỷ luật.
• Có kiến thức định hình về các kiến thức sử dụng trong quá trình thực tập tại
công ty.
2.2. Tìm hiểu về sản phẩm và các công nghệ liên quan
Thời gian: 1 tuần
Nội dung:
Đặng Quang Trung
Phạm Quốc Đạt
6
• Tìm hiểu và làm quen với sản phẩm, cấu trúc, cách cài đặt, framework liên
quan dựa vào document của sản phẩm…
• Tìm hiểu về các library của Flutter như: TextField, Image Picker, …
• Tìm hiểu các công cụ hỗ trợ như Stoplight, Jira, Gitlab.
• Tìm hiểu về Docker, WebSocket.
Kết quả:
• Tiếp cận với tool làm việc của Scrum team
• Hiểu các khái niệm cần thiết, có khả năng sử dụng các thư viện mở rộng.
2.3. Tham gia làm việc cùng Scrum team
Thời gian: 10 tuần
Nội dung:
Làm việc chung và tham gia đầy đủ các event với Scrum team : Sprint Planning
Meeting, Daily Scrum, Sprint Review, Sprint Retrospective.
Nhận tasks, lên kế hoạch, estimate và hoàn thành: Thiết kế test case, Thực hiện
task, sửa lỗi cho các chức năng khác nhau của ứng dụng.
2.4. Lịch làm việc
Sprint
Công việc
Người
Mức độ
Nhận
hướng dẫn
hoàn thành
xét
Tìm hiểu quy trình làm việc Scrum.
Học cách trao đổi công việc qua
1
Skype, Email và Google Meet.
Tìm hiểu cách quản lý dự án trên
Đặng Quang
Trung
Đạt
100%
yêu
cầu
Jira và cài đặt các công cụ phục vụ
cho dự án.
Đặng Quang Trung
Phạm Quốc Đạt
7
Tìm hiểu cách nắm bắt thông tin
UI/UX trên Figma để code đúng tỉ
lệ.
Xây
dựng
màn hình
Splash,
Onboarding và Đăng ký.
Tạo
các
widget
cơ
bản
(TextFormField,
LoginWithButton) dùng chung cho
các màn hình.
Xây dụng màn hình Quản lý nhà.
Xây dựng luồng gọi API cho các
màn hình.
2
Tạo mock data cho các màn hình.
Tìm hiểu BloC pattern để quản lý
Đặng Quang
Trung
Đạt
100%
yêu
cầu
state.
Sửa các lỗi do tester phát hiện ra
trong những màn hình đã làm.
Áp dụng BloC pattern để xử lý
logic cho các màn hình Đăng ký và
Quản lý nhà.
3
Xây dựng thêm màn hình chính cho Đặng Quang
mục Tự động hóa.
Trung
Đạt
100%
yêu
cầu
Tạo mock data.
Sửa các lỗi do tester phát hiện ra
trong những màn hình đã làm.
Đặng Quang Trung
Phạm Quốc Đạt
8
Áp dụng BloC pattern để xử lý
logic cho các màn hình Tự động
hóa.
4
Tạo mock data.
Đặng Quang
Trung
Đạt
100%
yêu
cầu
Hỗ trợ thành viên khác xây dựng
các màn hình chưa hoàn thành.
Refactor và clean code.
Áp dụng BloC pattern để xử lý
logic cho các màn hình thuộc Tự
động hóa (Công tắt bắc cầu, Cảm
biến và Thiết bị điều khiển).
5
Tạo mock data.
Đặng Quang
Trung
Đạt
100%
yêu
cầu
Refactor và clean code.
Sửa các lỗi do tester phát hiện ra
trong những màn hình đã làm.
Sửa lỗi tất cả lỗi có trong mục Tự
động hóa.
Tìm hiểu WebSocket.
6
Refactor và clean code.
Đặng Quang
Trung
Đạt
100%
yêu
cầu
Sửa các lỗi do tester phát hiện ra
trong những màn hình đã làm.
Bảng 2.1 Lịch làm việc theo sprint
Đặng Quang Trung
Phạm Quốc Đạt
9
Chương 3. Chi tiết về project
3.1. Giới thiệu về dự án
Ứng dụng Sliving App là một ứng dụng cho phép người sử dụng có thể điều
khiển tất cả các thiết bị thiết yếu trong ngôi nhà thông minh như bóng đèn, rèm cửa,
máy lạnh… và lấy thông tin từ các cảm biến ánh sáng, cảm biến nhiệt độ để thông
báo cho người dùng. Ứng dụng này được xây dựng chủ yếu nhắm tới nhóm khách
hàng sở hữu nhà thông minh được xây dụng bởi tập đoàn Sunshine Group. Vì vậy,
các tác vụ xử lý thông tin cho các thiết bị IoT này được chủ động và tối ưu nhất.
Hình 3.1: Hình ảnh thực tế từ ứng dụng Sliving App
Đặng Quang Trung
Phạm Quốc Đạt
10
Do yêu cầu bảo mật thông tin của doanh nghiệp nên em không thể trình bày
chi tiết hơn.
3.2. Thực hiện
Bốn thành viên thực hiện team Internship:
• Phạm Quốc Đạt.
• Trần Tuấn Minh.
• Hoàng Công Thắng.
• Trần Trung.
Và sự giúp đỡ nhiệt tình từ team các anh chị mentors:
• Đặng Quang Trung.
• Cao Thị Nguyệt.
• Trần Thanh Tâm.
• Hoàng Tuấn Kiệt.
Đặng Quang Trung
Phạm Quốc Đạt
11
Chương 4. Kết quả đạt được
Trong chương này, em sẽ trình bày những kết quả, những kiến thức cũng như
kĩ năng làm việc mà em đã đạt được trong 3 tháng thực tập tại công ty.
4.1. Scrum
4.1.1. Giới thiệu
Scrum [5] là một framework giúp mọi người giải quyết và thích nghi với các
vấn đề phức tạp một cách hiệu quả, sáng tạo và cung cấp sản phẩm có giá trị cao nhất
có thể.
• Nhẹ nhàng.
• Dễ hiểu.
• Khó quản lý và làm chủ.
Hình 4.1 Mô tả quy trình Scrum
Scrum là một framework được sử dụng để quản lý công việc trên các sản phẩm
phức tạp. Scrum không phải là một quá trình, kỹ thuật hay là một định nghĩa nào,
Scrum là framework – tức là một phương pháp được nhiều người sử dụng và trở nên
Đặng Quang Trung
Phạm Quốc Đạt
12
phổ biến giúp làm rõ các hiệu quả tương đối của việc quản lý sản phẩm và kĩ thuật để
cải thiện sản ph ẩm, cải thiện mối quan hệ giữa team member và môi trường làm việc.
4.1.2. Ba trụ cột chính của Scrum
Scrum nhấn mạnh vào 3 yếu tố chính gồm:
• Transparency: Minh bạch.
• Inspection: Thanh tra.
• Adaptation: Thích nghi.
4.1.3. Scrum team
Scrum team gồm có 3 roles chính:
• Product Owner.
• The Developer Team.
• Scrum Master.
4.1.4. Scrum Event
Sprint thường kéo dài khoảng 2-3 tuần và gồm các events sau:
• Planning Meeting.
• Daily Meeting.
• Review Meeting.
• Retrospective.
4.2. Flutter
4.2.1. Flutter là gì?
Flutter [6, 7] là mobile UI framework của Google nhằm tạo ra các giao diện
chất lượng cao trên iOS và Android trong khoảng thời gian ngắn. Flutter hoạt động
với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức.
Flutter hoàn toàn miễn phí và cũng là mã nguồn mở.
Đặng Quang Trung
Phạm Quốc Đạt
- Xem thêm -