LỜI CẢM ƠNĐể hoàn thành chuyên đề báo cáo thực tập này trước hết em xin gửi đến quý thầy,cô giáo trong khoa công nghệ thông tin lời cảm ơn chân thành.. Đồng thời em xin cảm ơn các thầy c
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN
Tel (+84.0236) 3736949, Fax (+84.0236) 3842771
Website: itf.dut.udn.vn, E-mail: cntt@dut.udn.vn
BÁO CÁO THỰC TẬP TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN
Đề tài:
Xây dựng ứng dụng di động xem trailer phim
CÔNG TY THỰC TẬP:
SUN-ASTERISK ĐÀ NẴNG
Đà Nẵng, 06/2019
Trang 2LỜI CẢM ƠN
Để hoàn thành chuyên đề báo cáo thực tập này trước hết em xin gửi đến quý thầy,cô giáo trong khoa công nghệ thông tin lời cảm ơn chân thành.
Đặc biệt, em xin chân thành cảm anh Lê Vũ Tấn Tuấn Người đã từng bước hướng dẫn, giúp đỡ em trong quá trình thực tập tại công ty.
Em xin chân thành cảm ơn Ban lãnh đạo cũng như các anh/chị nhân viên công ty TNHH Sun-asterisk Việt Nam chi nhánh Đà Nẵng đã tạo điều kiện tốt nhất cho em có cơ hội được học hỏi thêm kiến thức cũng như hoàn thành đợt thực tập tốt nghiệp của mình
Đồng thời em xin cảm ơn các thầy cô giáo khoa Công nghệ thông tin của trường Đại học Bách khoa – Đại học Đà Nẵng đã tạo điều kiện cho
em có cơ hội được thực tập tại một môi trường chuyên nghiệp, được áp dụng những kiến thức mà các thầy cô giáo đã giảng dạy vào dự án thực tế Qua đợt thực tập này em tiếp thu được nhiều kiến thức và kỹ năng lập trình để giúp ích cho công việc sau này của bản thân.
Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập, hoàn thiện chuyên đề này em không tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy cô cũng như quý công ty.
Mai Văn Anh
Trang 3M C L C Ụ Ụ
CHƯƠNG 1: GIỚI THIỆU CƠ QUAN THỰC TẬP 5
1.1 Giới thiệu công ty Sun-asterisk Đà Nẵng 5
1.2 Lịch sử hình thành và phát triển 5
1.3 Kết chương 6
CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ VÀ TRIỂN KHAI 7
2.1 Cơ sở lý thuyết 7
2.1.1 Ngôn ngữ lập trình Kotlin 7
2.1.2 Mô hình MVVM: 7
2.1.3 Retrofit: 8
2.1.4 Quản lý mã nguồn Git 9
2.2 Phân tích đề tài 9
2.2.1 Giới thiệu đề tài 9
2.2.2 Mục đích đề tài 9
2.3 Thiết kế và triển khai hệ thống 10
2.3.1 Phân tích dữ liệu 10
2.3.2 Xây dựng giao diện người dùng 10
2.3.3 Tiến hình code theo các chức năng 10
CHƯƠNG 3: TỔNG KẾT 11
3.1 Kết quả triển khai 11
3.2 Kết chương 14
Trang 4DANH SÁCH HÌNH
Hình 1: Màn hình chính 11
Hình 2: Màn hình xem theo thể loại 12
Hình 3: Màn hình trailer phim ưu thích 12
Hình 4: Màn hình tìm kiếm 13
Hình 5: Màn hình xem những trailer của diễn viên 13
Hình 6: Màn hình xem những trailer của nhà sản xuất 14
Trang 5DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt Diễn giải
MVVM Model View View Model
CNTT Công nghệ thông tin
IT Information Technology
API Application Programming Interface
Trang 6CHƯƠNG 1: GIỚI THIỆU CƠ QUAN THỰC TẬP
1.1 Giới thiệu công ty Sun-asterisk Đà Nẵng
Sun-asterisk tiền thân của Framgia là tập đoàn CNTT Nhật Bản hoạt động trong lĩnh vực thiết kế, phát triển ứng dụng (web, app, game), thiết kế UI/UX, xây dựng
cơ sở hạ tầng, thúc đẩy phát triển các doanh nghiệp start-up, đào tạo và nuôi dưỡng nguồn nhân lực về công nghệ thông tin Với sứ mệnh “Make awesome things that matter”, dùng IT làm nên những bước tiến đột phá, cho đến nay, Sun-asterisk đã thành lập chi nhánh ở 5 quốc gia trên toàn Châu Á, trong đó có một chi nhánh hoạt động tại Đà Nẵng
Làm việc theo mô hình Offshore Development Center (ODC), Sun-asterisk cung cấp những đội ngũ phát triển làm việc trực tiếp với khách hàng Đồng thời áp dụng quy trình phát triển phần mềm mới nhất theo mô hình Agile – quy trình Scrum
Sun-asteriskđảm bảo đem lại chất lượng dịch vụ tốt nhất cho khách hàng
1.2 Lịch sử hình thành và phát triển
Ngày thành lập: 29/10/2012 Tổng giám đốc: Ông Kazunari Fujimoto
Trụ sở chính: tầng 13, Keangnam Hanoi Landmark Tower, khu E6 khu đô thị mới Cầu Giấy, phường Mễ Trì, quận Nam Từ Liêm, Hà Nội
Công ty TNHH Framgia (tên cũ) Việt Nam là một công ty con thuộc công ty Framgia Nhật Bản , công ty Framgia có mặt tại 5 quốc gia và 9 thành phố lớn trên thế giới với hơn 800 nhân lực
Được thành lập năm 2012 tại Hà Nội, Framgia Việt Nam là công ty IT Nhật Bản họat động trong lĩnh vực thiết kế, phát triển ứng dụng, games chạy trên nền tảng smartphone, nền tảng mạng xã hội, sản xuất và phát triển ứng dụng website
Framgia Đà Nẵng là một chi nhánh của công ty tại Đà Nẵng Địa chỉ: Tòa nhà Fhome Đà Nẵng, 16 Lý Thường Kiệt, Hải Châu, Đà Nẵng
Từ ngày 3/3/2019, Công ty cổ phần Framgia (trụ sở chính tại Tokyo, Nhật Bản) đổi tên thành “Công ty cổ phần Sun Asterisk” (Sun* Inc viết tắt là “Sun*”) Song
5 SVTH: Mai Văn Anh
Trang 7Báo cáo thực tập tốt nghiệp
song với việc thay đổi tên, công ty cũng đã tiến hành thay đổi toàn diện thiết kế thương hiệu cũng như logo đi kèm
1.3 Kết chương
Chương này trình bày cái nhìn tổng quát về công ty, cơ cấu tổ chức và các mảng hoạt động của công ty
6
SVTH: Mai Văn Anh
Trang 8Báo cáo thực tập tốt nghiệp
2.1 Cơ sở lý thuyết 2.1.1 Ngôn ngữ lập trình Kotlin
Kotlin là một ngôn ngữ lập trình mới từ JetBrains Nó xuất hiện lần đầu tiên vào năm 2011 khi JetBrains công bố một dự án mới có tên là "Kotlin" Giống như Swift, Kotlin là một ngôn ngữ mã nguồn mở
Giống như Java, C, và C++, Kotlin cũng là một ngôn ngữ kiểu tĩnh, "statically typed programming language" Ngôn ngữ kiểu tĩnh là những ngôn ngữ mà các variable cần phải định danh trước khi được sử dụng Có nghĩa là variable cần phải khai báo và khởi tạo trước
Về cơ bản thì kiểu Static typing không có nghĩa là chúng ta cần phải khai báo toàn bộ variable trước tiên Chúng có thể được khởi tạo ở bất cứ đâu trong ứng dụng
và các lập trình viên phải làm việc đó, để sử dụng những variable ở nơi mà mình cần
2.1.2 Mô hình MVVM:
MVVM là một mô hình mới được sử dụng để phát triển phần mềm cho cả ứng dụng web lẫn mobile Việc áp dụng mô hình vào quản lý mã nguồn giúp cho mã nguồn được trong sáng, dễ dàng quản lý, phát triển và bảo trì sau này
Những yếu tố chính trong mô hình MVVM:
View: Mang chức năng thông báo cho ViewModel về những hành động của người dùng
ViewModel: Hiển thị streams của những data liên quan đến View
Model: Thành phần chứa dữ liệu lấy từ nhiều nguồn khác nhau: REST API, SQLite DB, Shared Prefrences, Firebase…
Điểm khác biệt giữa mô hình MVVM và những mô hình khác trong Android
7
SVTH: Mai Văn Anh
Trang 9Báo cáo thực tập tốt nghiệp
Tránh liên kết chặt
Với mỗi Activity hoặc Fragment chúng ta cần một Presenter Đây là một sự ràng buộc cứng nhắc Presenter giữ tham chiếu của Activity và Activity giữ tham chiếu của Presenter Mối quan hệ 1:1 là vấn đề lớn nhất
Độ phức tạp của View tăng lên, tương tự với sự phức tạp của việc bảo trì và xử lý quan hệ này cũng tăng lên Điều này dẫn đến những vấn đề giống như trước đó chúng ta đã gặp phải Nếu thay đổi thiết kế thì chúng
ta sẽ phải chỉnh sửa cả quan hệ của chúng
Để tránh được quan hệ chặt chẽ đó, ViewModel được giới thiệu ViewModel là một lớp đơn giản tương tác với lớp logic/model và đưa trạng thái/ dữ liệu ra bên ngoài, và thực sự không biết dữ liệu đó sử dụng như thế nào và bởi thành phần nào Chỉ có View giữ tham chiếu đến ViewModel, điều này giải quyết được vấn đề liên kết chặt một View có thể giữ tham chiếu của nhiều ViewModel
Khả năng Testing:
Do presenter bị trói buộc chặt vào View, nếu viết unit test trở nên khá khó khăn do nó phụ thuộc vào View
ViewModel dễ dàng hơn cho việc test vì chúng chỉ đưa trạng thái ra bên ngoài và có thể test độc lập mà không phụ thuộc vào cách dữ liệu được hiển thị, nghĩa là hoàn toàn không phụ thuộc vào View
2.1.3 Retrofit:
Retrofit là một HTTP client type-safe cho Android và Java Retrofit là một thư viện giúp dễ dàng kết nối đến một dịch vụ REST trên Web bằng cách chuyển đổi API thành Java Interface
8
SVTH: Mai Văn Anh
Trang 10Báo cáo thực tập tốt nghiệp
Thư viện mạnh mẽ này giúp bạn dễ dàng xử lý dữ liệu JSON và XML sau đó phân tích cú pháo thành Plain Old Java Object (POJOs) Tất cả các yêu cầu GET, POST, PUT, PATCH, và DELETE đều có thể thực thi
Giống như hầu hết các phần mềm mã nguồn mở khác, Retrofit được xây dựng dựa trên một số thư viện mạnh mẽ và công cụ khác Đằng sau đó, Retrofit làm cho việc sử dụng OKHttp (từ cùng một nhà phát triển) để xử lý các yêu cầu trên mạng Ngoài ra, Retrofit không tích hợp bất kỳ một bộ chuyển đổi JSON nào để phân tích
từ JSON thành các đối tượng Java Thay vào đó đi kèm với các thư viện chuyển đổi JSON
2.1.4 Quản lý mã nguồn Git
Git một trong những Hệ thống Quản lý Phiên bản Phân tán, vốn được phát triển
nhằm quản lý mã nguồn (source code) của Linux Trên Git, ta có thể lưu trạng thái
của file dưới dạng lịch sử cập nhật Vì thế, có thể đưa file đã chỉnh sửa một lần về trạng thái cũ hay có thể biết được file đã được chỉnh sửa chỗ nào
2.2 Phân tích đề tài
Đề tài: Xây dựng ứng dụng di động xem trailer phim
2.2.1 Giới thiệu đề tài
Ứng dụng giúp xem trailer phim của những bộ phim nổi tiếng trên thế dưới, giúp người dùng có cảm nhận ban đầu về phim, xem đánh giá của người đã xem, đồng thời còn có thể xem những diễn viên góp mặt trong bộ phim
Ứng dụng cho phép xem truyện theo từng chủ đề và phân mục giúp cho người dùng dễ dàng tìm thấy những bộ phim yêu thích nhất cho mình
Những bộ phim được người dùng đánh giá ưu thích sẽ được lưu lại
2.2.2 Mục đích đề tài
- Hiểu thêm về kiến thức lập trình mobile
- Tìm hiểu ngôn ngữ Kotlin, mô hình quản lý mã nguồn, học được những công nghệ mới
9
SVTH: Mai Văn Anh
Trang 11Báo cáo thực tập tốt nghiệp
- Xây dựng ứng dụng xem trailer phim nhằm đưa vào đời sống thực tiễn
2.3 Thiết kế và triển khai hệ thống
2.3.1 Phân tích dữ liệu
- Dữ liệu được lấy từ web REST API: https://developers.themoviedb.org/3/
- Sử dụng phần mềm Post Man để kiểm tra dữ liệu json trả về Tiến hành phân tích đưa ra những yêu cầu chức năng phù hợp với ứng dụng di động
2.3.2 Xây dựng giao diện người dùng
Phần giao diện thường rất được quan tâm bởi khách hàng khi yêu cầu cho một ứng dụng di động Với kích thước giới hạn và hình dáng khác biệt của các màn hình điện thoại di động nên việc thiết kế giao diện hết sức quan trọng Thiết kế phải hài hòa và sao cho ứng dụng chạy trên nhiều loại màn hình khác nhau nhưng cảm nhận của người dùng vẫn không thay đổi
Về cơ bản quy trình thiết kế giao diện gồm các bước:
- Thiết kế giao diện bằng photoshop hoặc các phần mềm chỉnh sửa ảnh chuyên nghiệp theo yêu cầu
- Cắt các mảnh của file design ra các phần riêng lẻ
- Dùng phần mềm chuyên dụng để biểu diễn UI của ứng dụng Thực hiện chỉnh sửa một số giao diện để hoàn thiện giao diện Và đây cũng là bước cuối cùng trong thiết kế giao diện
2.3.3 Tiến hình code theo các chức năng
Tiến hành code xử lý dữ liệu trả về và làm giao diện song song với nhau
Quy trình code có các bước cơ bản như sau:
- Code hoàn thiện các chức năng cơ bản và cần thiết nhất
- Test song song khi code
- Đẩy code lên github để các thành viên khác trong nhóm review, nếu chưa hợp lý thì cần phải chỉnh sửa
- Gộp các chức năng lại nhánh chính trên git đến khi hoàn thiện
10
SVTH: Mai Văn Anh
Trang 12Báo cáo thực tập tốt nghiệp
3.1 Kết quả triển khai
- Trang chủ: Khi mở ứng dụng lên người dùng có thể xem:
o Danh mục trailer của phim
o Xem movie theo từng chủ đề
o Xem movie ưu thích của người dùng
Hình 1: Màn hình trang chủ
11
SVTH: Mai Văn Anh
Trang 13Báo cáo thực tập tốt nghiệp
Hình 2: Màn hình xem trailer phime theo thể loại
Hình 3: Màn hình xem trailer phim ưu thích
12
SVTH: Mai Văn Anh
Trang 14Báo cáo thực tập tốt nghiệp
Hình 4: Màn hình tìm kiếm
Hình 5: Màn hình xem những trailer của diễn viên
13
SVTH: Mai Văn Anh
Trang 15Báo cáo thực tập tốt nghiệp
Hình 6: Màn hình xem những trailer của nhà sản xuất
3.2 Kết chương
Chương này về kết quả triển khai hệ thống thông qua các hình ảnh chụp lại ứng dụng di động
14
SVTH: Mai Văn Anh
Trang 16Báo cáo thực tập tốt nghiệp
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1 KẾT QUẢ ĐẠT ĐƯỢC
Về mặt lý thuyết, trong thời gian thực tập đã đạt được:
Ứng dụng được những nội dung học ở trường:
- Thiết kế hệ thống
- Phân tích và thiết kế cơ sở dữ liệu
- Lập trình Mobile Android
- Cấu trúc giải thuật
Về mặt thực tiễn ứng dụng:
- Tìm hiểu thêm được một số công nghệ mới
- Có sự hiểu biết thêm về mảng di động
- Nắm bắt được quy trình làm và phát triển ứng dụng
Những điểm mạnh và hạn chế của vấn đề thực tập tại công ty:
- Môi trường thực tập thoải mái
- Nhận được sự hỗ trợ nhiệt tình từ bên phía công ty
- Thời gian thực tập quá ngắn nên một số chức năng của chưa hành thành
15
SVTH: Mai Văn Anh
Trang 17Báo cáo thực tập tốt nghiệp
2 KIẾN NGHỊ VÀ HƯỚNG PHÁT TRIỂN
Sau khi thực tập tại công ty và hoàn thành báo cáo thực tập tốt nghiệp Bản thân em đã học hỏi được được nhiều điều, được sự giúp đỡ tận tình của các anh chị trong công ty, và có một môi trường thực tập chuyên nghiệp
Một số định hướng phát triển của đề tài như sau:
- Tiến hành nâng cấp hệ thông thêm nhiều tính năng nổi bật hơn
- Chỉnh sửa giao diện để thân thiện với người sử dụng nhất có thể
- Đưa ứng dụng lên cửa hang CH play
16
SVTH: Mai Văn Anh
Trang 18Báo cáo thực tập tốt nghiệp
TÀI LIỆU THAM KHẢO
Internet
[1] https://viblo.asia
[3] https://www.mysql.com/
17
SVTH: Mai Văn Anh