1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO THỰC TẬP LẬP TRÌNH ỨNG DỤNG KẾT NỐI CAMERA IP TRÊN ANDROID

24 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 24
Dung lượng 0,91 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sau khoảng thời gian trau dồi kiến thức và kỹ năng trên ghế nhà trường, với mong muốn được thử sức, được áp dụng những kiến thức, kỹ năng sẵn có, và muốn có được kinh nghiệm từ dự án thự

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

Trang 2

LỜI MỞ ĐẦU

Ngày nay, sự phổ biến của thiết bị di động đã tác động lớn đến sự phát triển các ứng dụng chạy trên các nền tảng di động khác nhau Với tốc độ phát triển vô cùng mạnh mẽ, ngành phát triển ứng dụng di động đã và đang là nhân tố kích thích sự phát triển của công nghệ thông tin thế giới, cả về phần cứng và phần mềm

Sau khoảng thời gian trau dồi kiến thức và kỹ năng trên ghế nhà trường, với mong muốn được thử sức, được áp dụng những kiến thức, kỹ năng sẵn có, và muốn có được kinh nghiệm từ

dự án thực tế, muốn tiếp xúc văn hóa làm việc trong môi trường thuộc lĩnh vực công nghệ thông tin, nên em quyết định tìm nơi phù hợp để thực tập Sau khoảng thời gian cân nhắc và trao đổi với đại diện của công ty, em đã có cơ hội thực tập tại công ty KiteMetric – một doanh nghiệp trẻ, năng động

Trang 3

LỜI CẢM ƠN

Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn, hỗ trợ nhiệt tình của thầy phụ trách

đã giúp cho em tiếp thu được những kiến thức quan trọng để có thể làm được một ứng dụng di động Chân thành cảm ơn các bạn trong team internship đã hỗ trợ lẫn nhau, cùng nhau khắc phục lỗi để hoàn thiện ứng dụng Kết nối camera IP trên Android

Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm bài báo cáo này

Cuối cùng, em xin trân trọng gửi lời cảm ơn Công ty KiteMetric đã tạo điều kiện cho em

có cơ hội được thực tập tại công ty

Em xin chân thành cảm ơn!

Đoàn Thị Thanh Hiếu TpHCM, ngày 17 tháng 06 năm 2022

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

MỤC LỤC

MỤC LỤC 5

Chương 1: Giới thiệu công ty thực tập 6

1 Giới thiệu công ty KiteMetric 6

2 Sản phẩm của công ty 6

Chương 2: Nội dung thực tập 10

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 10

2 Nghiên cứu kỹ thuật 10

3 Thực hiện project 15

4 Lịch làm việc 15

Chương 3: Chi tiết về project 17

1 Giới thiệu về ứng dụng 17

2 Thực hiện 22

3 Kế hoạch 22

TÀI LIỆU THAM KHẢO 23

TỔNG KẾT 24

Trang 6

Chương 1: Giới thiệu công ty thực tập

Hình 1: Logo công ty KiteMetric

1 Giới thiệu công ty KiteMetric

KiteMetric được thành lập năm 2012 là một công ty tư vấn công nghệ với sứ mệnh hỗ trợ các doanh nghiệp thực hiện hóa từ ý tưởng thành sản phẩm chất lượng cao

- Về dịch vụ Web & Mobile development: Thiết kế và xây dựng sản phẩm với

hiệu năng cao với trải nghiệm người dùng tuyệt vời trên nhiều nền tảng

- Về dịch vụ Machine Learning: xây dựng ứng dụng AI để tự động hóa các tác

vụ thủ cộng, cải thiện kinh doanh với trí thông minh theo hướng dữ liệu

- Về dịch vụ User Experience: thiết kế mockups, thử nghiệm các ý tưởng để

xác thực ý tưởng và đưa ra thiết kế UI/UX sáng tạo để mang lại sự độc đóa của bất kỳ sản phẩm nào

- Về dịch vụ Technology Consulting: Giúp định hình ý tưởng của bạn, xác

định các rào cảng kỹ thuật, đề xuất các giải pháp và công nghệ phù hợp cho

dự án

Websit công ty: https://kitemetric.com/

Email công ty: hello@kitemetric.com

Điện thoại: 028 6651 7777 Địa chỉ: 4th Floor, AGA Building, 72/24 Phan Dang Luu Street, Ward 5, Phu Nhuan District, Ho Chi Minh City, Vietnam

2 Sản phẩm của công ty

Những công nghệ mà công ty KiteMetric sử dụng bao gồm: Nodejs, Java, Python, Javascript, ReactJS, VueJS, Docker, Kubernetes, native (iOS, Android, Windows) / cross-platform (React Native) mobile app development

Trang 7

Về mảng Máy học: Deep learning frameworks (Tensorflow, PyTorch, Caffe2), fundamental machine learning algorithms, object detection, recognition, tracking, video, and image processing

Những sản phẩm nổi bật của công ty KiteMetric:

FaceSwap là một ứng dụng thú vị cho phép người dùng thay thế khuôn mặt nhân vật nổi tiếng trong ảnh bằng khuôn mặt của họ bằng cách sử dụng một bức ảnh duy nhất từ máy ảnh Ứng dụng có sẵn trên cả Android và iOS với hơn một nửa triệu người dùng

Hình 2: Giao diện FaceSwap

Blanket Inc là một công ty khởi nghiệp được tài trợ tốt được thành lập ở trung tâm Thành phố New York KiteMetric đã giúp Blanket xây dựng và ra mắt sản phẩm ngay từ ngày đầu tiên Sản phẩm này là một ứng dụng dành cho thiết bị di động áp dụng hỗn hợp các thuật toán để thực hiện nhiệm vụ, đo lường và khen thưởng hiệu suất của nhân viên, đồng thời giúp tăng cường hiệu quả trong quản lý nhà hàng và hoạt động hàng ngày của họ

Trang 8

Hình 3: Giao diện ứng dụng blanket

Trang 10

Chương 2: Nội dung thực tập

Triển khai team internship phát triển ứng dụng Kết nối camera IP trên Android nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về cách thức tạo ra một ứng dụng Android từ lúc lên ý tưởng cho đến khi sản phẩm hoàn thiện ra đời; bên cạnh đó còn rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp trong quá trình phát triển sản phầm Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường phát triển ứng dụng di động chuyên nghiệp, năng động

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, cách thức tổ chức của công ty

Được nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triển (như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công ty

Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…

Giới thiệu về các thành viên trong team internship và được nghe người phụ trách trình bày ý tưởng về sản phẩm sẽ thực hiện trong quá trình thực tập tại công ty

Giới thiệu các công cụ, nguồn tài liệu hỗ trợ trong quá trình học tập và làm việc tại công ty

Kết quả:

Hiểu thêm về văn hóa, quá trình thành lập và phát triển của công ty KiteMetric

Có thêm các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn

2 Nghiên cứu kỹ thuật

2.1 Các công cụ làm việc

Thời gian: 4 ngày

Nội dung: Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc

Trong thời gian này, supervisor đã hướng dẫn thực tập sinh tìm hiểu về các công

cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như:

Jira: sử dụng trong làm việc nhóm, được sử dụng để theo dõi công việc, tiến độ

làm việc và quản lý dự án

Figma: một ứng dụng gồm nhiều công cụ thiết kế mạnh mẽ trên nền tảng website

Với Figma, người dùng có thể sáng tạo không giới hạn giao diện người dùng

Trang 11

(UI/UX), thiết kế tạo mẫu, tạo bài đăng trên các mạng xã hội và nhiều dự án thiết kế khác

Github: một hệ thống quản lý dự án và phiên bản code, hoạt động giống như một

mạng xã hội cho lập trình viên Các lập trình viên có thể clone lại mã nguồn từ một repository và Github chính là một dịch vụ máy chủ repository công cộng, mỗi người

có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc

Android Studio: IDE chính thức được sử dụng trong phát triển ứng dụng Android

dựa trên IntelliJ IDEA Chức năng chính của Android Studio là cung cấp các giao diện giúp người dùng có thể tạo các ứng dụng và xử lý các công cụ file phức tạp sau hậu trường

Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên

Kết quả: Cài đặt thành công các ứng dụng, sử dụng cơ bản các chức năng của các ông

cụ, phần mềm hỗ trợ cho các tác vụ trong dự án

2.2 Tìm hiểu ngôn ngữ Dart, Flutter

Thời gian: 10 ngày (2 tuần)

Nội dung: Tìm hiểu về các khái niệm, thuật ngữ Dart, những kiến thức về framework

Flutter

❖ Dart: nắm được các kiến thức như:

- Biến, câu lệnh điều khiển

- Vòng lặp

- Hàm

- Lập trình hướng đối tượng

- Các thư viện cơ bản

❖ Flutter

- Nắm được lịch sử, ưu và nhược điểm

- Kiến trúc của Flutter framework

- Widget:

• Bất cứ thứ gì được dựng trong Flutter, nó sẽ nằm trong Widget

• Widget mô tả ứng dụng sẽ trông như thế nào dựa trên cấu hình và trạng thái hiện tại của chúng

• Khi trạng thái của một Widget thay đổi, Widget sẽ được build lại

• Các widget có thể được lồng vào nhau khi xây dựng ứng dụng

- Stateless widget

• Stateless Widget không có state

• Công việc duy nhất là hiển thị thông tin và giao diện người dùng

Trang 12

• Khi tạo một StatelessWidget yêu cầu phải extends đúng class StatelessWidget và phải bao gồm một phương thức build

- Statefull widget

• Stateful widget cung cấp thông tin cấu hình và state object

▪ State là thông tin mà có thể kích hoạt quá trình rebuild của widget và có thể thay đổi trong suốt vòng đời của widget

▪ Sử dụng phương thức setState để kích hoạt quá trình rebuild của widget

• Khi tạo một StatefulWidget cần tạo 2 class đại diện cho state object

và widget

▪ Widget phải extends đúng class StatefulWidget và cần phương thức createState() để cung cấp State cho StatefulWidget

▪ State object: phải bao gồm một phương thức build

- Các xử lý phổ biến trong flutter: xử ly navigation,

- Meterial UI, Theme

- Tiếp thu những kiến thức về ngôn ngữ Dart, framework Flutter

- Có được những kiến thức quan trọng cho việc lập trình mobile sau này

Trang 13

- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúng chuẩn, dễ đọc, dễ hiểu

2.3 Tìm hiểu về teamplate Flutter Boilerplate

Nội dung: Các kiến thức về template boilerplate để có thể tạo ra một ứng dụng di

động đơn giản

- Cách thức tạo một project flutter theo teamplate boilerplate

Tải project về hoặc clone project với link bên dưới:

Chạy 2 câu lệnh bên dưới:

- Cấu trúc thư mục:

• Cấu trúc thư mục lõi:

• Cấu trúc của thư mục lib:

flutter packages pub run build_runner build outputs

delete-conflicting-flutter pub get https://github.com/zubairehman/flutter-boilerplate-project.git

Trang 14

Trong đó:

1 constants - Chứa các giá trị không thay đổi dù có thực hiện thao tác gì

trong app

2 data - Chứa các phương thức, thuộc tính liên quan đến data Điển hình là

các api được đặt vào đây

3 stores - Các file trong đây là tập hợp các hàm mà các hàm này sẽ được sử

dụng ở bên UI

4 ui  -  Chứa các thư mục mà mỗi thư mục là mỗi screen

5 util  - Chứa các function phổ biến của ứng dụng

6 widgets - Chứa các widget thường được tái sử dụng cho ứng dụng như là

Button, TextField …

7 routes.dart - Chứa tất cả các routes của ứng dụng

8 main.dart - File này được thực thi đầu tiên trong ứng dụng Tất cả các cài

đặt chính đều được cài đặt trong file này như theme, routes, title,

Thực hiện:

- Tham gia tìm hiểu và báo cáo cho các bạn trong team internship

- Tìm kiếm tài liệu trên mạng để tìm hiểu thêm

Trang 15

3 Thực hiện project

Nhờ sự hỗ trợ tận tình của thầy Phạm Hoàng Hải, bạn Nguyễn Trọng Thuận và những thành viên trong team internship mà sau 12 tuần vừa tìm hiểu vừa thực hành, thực tập sinh đã nắm được những kiến thức về Dart, Flutter, và áp dụng những kiến thức đạt được đó vào dự án thực tế

Chi tiết đồ án sẽ được nói ở phần sau

4 Lịch làm việc

Mức

độ hoàn thành

Nhận xét của người hướng dẫn

- Học cách trao đổi, làm việc qua email

- Lên kế hoạch cho dự án

Thầy Phạm Hoàng Hải, Thầy Nguyễn Tấn Trần Minh Khang

- Tìm hiểu Flutter

- Tìm hiểu template boilerplate

Thầy Phạm Hoàng Hải, Thầy Nguyễn Tấn Trần

cầu

4

Sprint 4:

- Khảo sát, thu thập yêu cầu

- Phân tích yêu cầu ứng dụng

Thầy Phạm Hoàng Hải, Thầy Nguyễn Tấn Trần

Đạt yêu cầu

100% Đạt yêu

cầu

Trang 16

6

Sprint 6:

- Điều chỉnh bản thiết kế UI/UX

- Khởi tạo project theo teamplate boilerplate và push lên github

Thầy Phạm Hoàng Hải, Thầy Nguyễn Tấn Trần

Đạt yêu cầu

100% Đạt yêu

cầu

8

Sprint 8:

- Kết nối camera với ứng dụng

Thầy Phạm Hoàng Hải, Thầy Nguyễn Tấn Trần Minh Khang

100% Đạt yêu

cầu

Trang 17

Chương 3: Chi tiết về project

đề phòng trộm cắp và còn sử dụng cho nhiều mục đích khác Chính vì sự phố biến của camera này nên việc phát triển ứng dụng cho việc truy cập vào camera, quản lý, giám sát, phát hiện các bất thường xảy ra ngày càng tăng Chính vì thế team internship được giao phó triển khai là Ứng dụng kết nối Camera

IP trên Android

Team internship sử dụng framework Flutter – framework dựa trên ngôn ngữ lập trình Dart - do Google phát triển, nhóm triển khai ứng dụng theo template boilerplate – một teamplate hệ thống lại các thư mục, tệp và chứa kiến trúc ứng dụng, app theme, ràng buộc và những dependencies tối thiểu để tạo ra ứng dụng từ đó giúp cho lập trình viên dễ quản lý source code và giúp giảm thiểu thời gian cài đặt và phát triển bằng cách sử dụng code mẫu và tránh viết lại từ đầu

Trang 18

1.2 Danh sách các màn hình

❖ Màn hình Splash

❖ Màn hình Home

Trang 19

❖ Màn hình Thêm camera

Trang 20

❖ Màn hình Thêm group camera

Trang 22

2 Thực hiện

4 thành viên của team internship:

- Trần Lê Bảo Châu

- Phan Thị Hồng Cúc

- Đoàn Thị Thanh Hiếu

- Trần Văn Bảo

3 Kế hoạch

Giai đoạn 1 – Tìm hiểu:

- Tìm hiều về các công cụ làm việc: Jira, Figma, Android Studio, Github

- Tìm hiểu ngôn ngữ Dart

- Tìm hiểu về framework Flutter

- Tìm hiểu về teamplate boilerplate

Kết quả:

- Hoàn thành tất các các yêu cầu

Giai đoạn 2 – Triển khai dự án:

- Thực hiện khảo sát, thu thập yêu cầu

- Triển khai phân tích yêu cầu

- Thiết kế dữ liệu

- Triển khai dự án theo teamplate Boilerplate

- Hiện thực hóa giao diện

- Kết nối camera với ứng dụng

- Xây dựng dữ liệu theo teampate boilerplate

- Hiện thực hóa các chức năng chính của ứng dụng: thêm, xóa, sửa camera, tạo nhóm camera và xóa, sửa nhóm camera

- Hiện thực chức năng lưu trữ hình ảnh và video hiển thị trên ứng dụng

- Thực hiện các chức năng validate

- Kiểm thử, hoàn thiện sản phẩm và bàn giao

Kết quả: Đã hoàn thành toàn bộ hầu hết những công việc trên Tuy nhiên chức năng lưu trữ hình ảnh và video hiển thị trên ứng dụng vẫn chưa hiện thực hóa được

Trang 23

TÀI LIỆU THAM KHẢO

Trang 24

TỔNG KẾT

Như vậy, trong 3 tháng thực tập nhóm đã hoàn thành Ứng dụng Kết nối Camera IP chạy trên nền tảng Android Ứng dụng có khá đầy đủ các tính năng đã đề ra ban đầu Do thời gian có hạn, thêm vào đó là giai đoạn dịch bệnh diễn biến phức tạp, không thể trao đổi trực tiếp và giải quyết vấn đề kịp thời nên nhóm đã trì hõa khá lâu, ứng dụng còn khá đơn giản và chất lượng chỉ mang tính tương đối Tuy vậy, ứng dụng có thể được mở rộng trong thời gian tới với các chức năng tích hợp AI

Trong quá trình làm việc và học tập tại công ty, các bạn trong team internship và thầy phụ trách góp phần giúp cho em có được những kinh nghiệm bổ ích, giúp em khắc phục những lỗi khi triển khai ứng dụng Điều này khiến em rất trân trọng và biết ơn

Chân thành cảm ơn sự hướng dẫn và hỗ trợ tận tình của thầy phụ trách Phạm Hoàng Hải, cảm ơn công ty KiteMetric đã cho em cơ hội thực tập này, cơ hội áp dụng những kiến thức đã học vào dự án thực tế, từ đó giúp em trau dồi kinh nghiệm, những kỹ năng còn thiếu sót, và quan trọng hơn là định hướng nghề nghiệp trong tương lại

Ngày đăng: 17/08/2022, 21:07

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm