BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ THỰC TẬP TỐT NGHIỆP BÁO CÁO THỰC TẬP TỐT NGHIỆP Tìm hiểu lập trình Android Ngành Công nghệ thông tin Mã số 7 48 02 01 Sinh viên thực hiện[.]
Trang 1BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
THỰC TẬP TỐT NGHIỆP BÁO CÁO THỰC TẬP TỐT NGHIỆP Tìm hiểu lập trình Android
Ngành: Công nghệ thông tin
Mã số: 7.48.02.01
Đặng Thanh Phương – CT030144
Đơn vị thực tập:
Công tyTNHH Công nghệ Hola 360
Người quản lý thực tập:
ThS Lê Bá Cường
Trang 2Hà Nội - 2023
Mục lục
DANH MỤC HÌNH ẢNH iii
LỜI MỞ ĐẦU iv
CHƯƠNG 1 Giới thiệu chung về Cơ sở thực tập 1
1.1 Thông tn doanh nghiệp 1
1.1.1 Giới thiệu chung 1
1.1.2 Thông n liên hệ 2
1.2 Thông tn về đơn vị hực ập 2
CHƯƠNG 2 Nội dung thực tập 3
2.1 Training 3
2.1.1 Quy trình thực hiện công việc 3
2.1.2 Văn hoá code 3
2.2 Các công nghệ sử dụng 3
2.2.1 Ngôn ngữ Kotlin 3
2.2.2 Mô hình MVVM 4
2.2.3 Kiến trúc phần mềm Clean Architecture 5
2.2.4 Các công cụ ch hợp khác 6
2.3 Sản phẩm 10
CHƯƠNG 3 Kết quả thực tập 11
3.1 Kế quả đạ được : 11
3.2 Khó khăn : 11
3.3 Hướng phá riển 11
3.4 Đánh giá về công y 12
Trang 3TÀI LIỆU THAM KHẢO 13
DANH MỤC HÌNH ẢNH
Hình 1 Sơ đồ Clean Architecture 5
Trang 4LỜI MỞ ĐẦU
Sau quá trình học tập xuyên suốt bốn năm tại trường, thì năm thứ năm tại kỳ thứ hai chính là thời gian mà khoá Công nghệ thông tin, trường Học viện kỹ thuật Mật Mã, dành cho sinh viên đi thực tập Thực tập tốt nghiệp là cách tốt nhất để sinh viên có thể học hỏi kinh nghiệm thực tế và vận dụng những kiến thức đã học tại trường Quá trình thực tập tốt nghiệp cũng là quá trình đào tạo một nhân viên mới trong công ty Sinh viên thực tập sẽ làm việc cùng với các nhân viên trong công ty Hiện nay, có nhiều hình thức thực tập, đại đa số sinh viên thực tập sẽ được trả lương và cam kết sử dụng của doanh nghiệp sau khi tốt nghiệp Đối với sinh viên thì hoạt động thực tập tốt nghiệp có vai trò quan trọng không chỉ với quá trình học tập mà còn với cả sự nghiệp của sinh viên sau này Kết quả thực tập tốt nghiệp thường được tính điểm với trọng số tương đối lớn trong học kỳ, ảnh hưởng đến kết quả xếp loại tốt nghiệp của sinh viên Quá trình thực tập áp dụng các kiến thức học được trong nhà trường vào thực tế công việc giúp sinh viên nhận biết được điểm mạnh, điểm yếu của mình và cần trang
bị thêm những kiến thức, kỹ năng gì để đáp ứng nhu cầu công viêc Đây là cơ hội để bạn công việc hàng ngày tại một công ty, văn hóa và môi trường làm việc, cũng là cơ hội để bạn hiểu thêm về lĩnh vực ngành nghề mà bạn định hướng
Thực tập giúp nhân viên mở rộng mối quan hệ trong thời gian thực tập: việc này cực kỳ quan trọng Cho dù sau này bạn làm trong lĩnh vực gì, ngành nghề gì đi nữa,
mở rộng các mối quan hệ sẽ tạo cho bạn nhiều lợi thế sau này Khi bạn đi thực tập có thể vận dụng thời gian này để làm quen với các anh, chị đồng nghiệp, học hỏi và xây dựng mối quan hệ Những biểu hiện tốt trong quá trình thực tập có thể giúp bạn được giữ lại làm nhân viên chính thức sau khi ra trường
Trang 5Thị trường lao động hiện nay ngày càng gay gắt, rất nhiều sinh viên sau khi ra trường thất nghiệp một thời gian dài Chính vì vậy, từ đầu năm 2022 tới nay em đã đến
nhiều điều từ kiến thức công việc, kinh nghiệm sống, cách làm việc từ các anh, chị trong công ty Giúp em áp dụng được các kiến thức đã học vào thực tiễn, hiểu rõ hơn
về công việc thuộc chuyên ngành mà em đang theo học và định hướng rõ hơn về công việc sau khi ra trường
Trong thời gian quá trình thực tập tại công ty, em được anh Manager người quản
lý trực tiếp giao cho công việc nghiên cứu xây dựng quy trình ứng cứu sự cố xử lý sự
cố an toàn an ninh mạng Các quy trình đã được nghiên cứu đánh giá và áp dụng ở chính công ty Vì vậy, em đã quyết định chọn đề tài “Tìm hiểu lập trình Android”, để báo cáo kết quả trong quá trình thực tập tại Công ty TNHH Hola 360 Đề tài bao gồm
3 phần:
● Chương 1: Giới thiệu chung về địa điểm thực tập
● Chương 2: Nội dung thực tập
● Chương 3: Kết luận
Em xin cảm ơn tập thể anh chị ở công ty TNHH Công nghệ Hola 360 đã giúp đỡ em trong quá trình thực tập tại đây
Đặng Thanh Phương
Trang 6CHƯƠNG 1 Giới thiệu chung về Cơ sở thực tập 1.1 Thông tin doanh nghiệp
1.1.1 Giới thiệu chung Công ty TNHH là công ty có hai thành viên trở lên, thành viên chịu trách nhiệm về các khoản nợ và các nghĩa vụ tài sản khác của doanh nghiệp trong phạm vi số vốn đã cam kết góp vào doanh nghiệp, nhưng không quá 50 thành viên.Phần vốn góp của tất
cả các thành viên dưới bất kỳ hình thức nào đều phải đóng đủ ngay khi thành lập công ty
tương đối nhỏ Và không ngừng mở rộng quy mô qua các năm Cho tới nay số lượng thành viên của công ty đã lên tới hơn 50 người Công ty chuyên làm product bao gồm các sản phẩm về web, app android và app ios Cho tới nay công ty đã triển khai trên
500 ứng dụng với người dùng là khách hàng trên toàn cầu Hướng phát triển của công
ty là không ngừng sáng tạo để tạo ra những ứng dụng theo phương châm: “sang, xịn, mịn, và có tính ứng dụng cao” để phục vụ người dùng một cách tốt nhất
Trong năm 2016, công ty được thành lập và mục tiêu đề ra: bắt đầu cho khởi nguồn của ý tưởng và sự nhiệt huyết, lên kế hoạch phát triển dài hạn và thực hiện mục tiêu ngắn hạn Năm 2017, khởi tạo đội ngũ với mục tiêu: phát triển đội ngũ nhân lực và tìm hiểu mở rộng thị trường sản xuất sản phẩm Năm 2018, duy trì đà tăng trưởng: thực hiện kế hoạch phát triển dài hạn và duy trì đà tăng trưởng của năm 2017 Năm 2019, khó khăn và thử thách: một năm đầy thử thách từ kinh tế cho tới con người Nhưng cũng mở ra một con đường mới cho phát triển sản phẩm Thay vì tiếp tục phát triển ứng dụng sử dụng trong nước, công ty chuyển sang đánh trọng tâm vào thị trường châu Âu, phát triển các ứng dụng phù hợp với thị hiếu của thị trường nước ngoài Năm
2020, cơ hội phát triển: vượt qua ảnh hưởng và khó khăn của đại dịch covid-19, dù phải thực hiện “work from home” nhưng toàn đội vẫn hoàn thành tiến độ công việc Năm 2021, chuyển đổi cơ cấu sản xuất: tập chung phát triển sản phẩm phục vụ tốt cho người dùng và tái cơ cấu lại hệ thống nhân sự Năm 2022, phát triển nhân lực: tập chung phát triển nguồn nhân lực “lấy con người làm chung tâm” Thực hiện kế hoạch
Trang 7ngắn hạn, lên kế hoạch dài hạn Mở rộng quy mô công ty, mở rộng thị trường, tạo ứng dụng mới trên nhiều lĩnh vực
Công ty chia ra làm 2 bộ phận bao gồm: bộ phận Hr và bộ phận Dev với chức vụ cao nhất là tổng giám đốc - người trực tiếp điều hành công ty và đạo diện về mặt pháp
lý của công ty Bộ phận hr bao gồm: nhân viên hr và nhân viên kế toán Bộ phận dev đợcc chia ra thành 4 team gồm: team Android – chuyên làm về mảng phát triển ứng dụng Android, team Ios – chuyên làm về mảng phát triển ứng dụng Ios, team web – chuyên làm về mảng phát triển website và cuối cùng là team Backend
1.1.2 Thông tin liên hệ
● Đại diện pháp luật: Ngô Quốc Hoàn
1.2 Thông tin về đơn vị thực tập
Team Android là một trong số các team của công ty, chuyên làm các sản phẩm phát triển ứng dụng trên Android từ các ứng dụng giải trí như nghe nhạc, xem phim cho tới các ứng dụng học tập và game Team android là một đội ngũ phát triển đầy tâm huyết
và tính sáng tạo Các thành viên luôn làm việc với sự nhiệt tình và tính ham học hỏi, không ngừng sáng tạo
Trang 8CHƯƠNG 2 Nội dung thực tập 2.1 Training
2.1.1 Quy trình thực hiện công việc Tìm hiểu về cách viết báo cáo, cách thức log time, các nội quy, quy định của công
ty về công việc, cách ứng xử trong công ty…
Tuỳ vào từng mục đích mà có các cách báo cáo khác nhau nhưng mọi việc chao đổi liên quan tới công việc đều phải thực hiện qua mail nội bộ để có thể dữ lại làm bằng chứng và bảo mật tuyệt đối cho công ty Trong công ty tuyệt đối không được dùng điện thoại để ghi hình, mạng công ty sẽ chặn 1 số trang web để tăng tính bảo mật cho công
ty Không tự tiện mang máy tính cá nhân vào công ty, không cắm bộ nhớ ngoài vào máy tính của công ty, không được phép mang dự án ra ngoài công ty khi chưa được phép Hàng ngày trước khi về phải log time báo cáo lại những gì đã thực hiện trong ngày và những gì chưa hoàn thành theo tiến độ, lý do, vướng mắc, cách khắc phục 2.1.2 Văn hoá code
Phải code theo đúng rule chung của công ty Từ việc đặt tên biến tới cách comment, số lượng dòng code trong 1 class,…
2.2 Các công nghệ sử dụng
Theo yêu cầu của công ty là sử dụng công nghệ mới, hiện đại, thì em có đưa ra một
số công nghệ được sử dụng như sau:
2.2.1 Ngôn ngữ Kotlin Kotlin là một loại ngôn ngữ lập trình dạng tĩnh và được sử dụng dành cho những
ứgdụng thuộc dạng đa nền tảng hiện đại Hiện nay, người ta đã chính thức phát hành phiên bản 1.0.Kotlin và nó được tạo ra cũng như phát triển bởi các đội ngũ lập trình nằm trong nhóm JetBrains Sự xuất hiện của ngôn ngữ lập trình Kotlin đã khiến cho ngôn ngữ Java trong Android bị “soán ngôi” Từ đó, Kotlin trở thành một trong những ngôn ngữ thông dụng hơn với Android Kotlin đã được thiết kế với khả năng tương tác cùng với java code cũng như có thể khai thác những gì có ở bên trong Java Class Library Từ đây, sẽ phát sinh định nghĩa Kotlin Android là gì? Hãy cùng tìm hiểu định
Trang 9nghĩa này nhé! Kotlin Android bạn có thể một cách đơn giản là một trong những ứng dụng của Android có khả năng sử dụng ngôn ngữ lập trình Kotlin Sau khi trở thành ngôn ngữ lập trình cơ bản của Android vào năm 2019 thì Kotlin được Google hỗ trợ rất đầy đủ để có thể được tham gia đầy đủ vào các gói cài đặt của IDE để có thể thay thế cho trình biên dịch của Java dạng tiêu chuẩn
Ưu điểm: code ngắn gọn dễ hiểu, được sự hậu thuẫn mạnh của google với những api được phát triển mới hàng năm phụ giúp rất nhiều cho việc code một cách dễ dàng hơn mà java không có
2.2.2 Mô hình MVVM
Kể từ khi Microsoft cho ra mắt hai nền tảng phát triển ứng dụng mới đó là WPF và Silverlight Trên nên tảng đó đã có nhiều thay đổi trong việc xử lý sự kiện và binding
dữ liệu, giữa các tầng của ứng dụng với nhau Vì vậy, nảy sinh ra nhu cầu phải có một
mô hình phát triển ứng dụng mới phù hợp hơn Do vậy Model – View – ViewModel (MVVM) pattern ra đời và ngày càng trở nên phổ biến, phát triển hơn
Mô hình MVVM cho phép tách biệt dữ liệu (Model), mã thực thi (logic hay ViewModel) và giao diện người dùng (View)
View: Mô hình mvvm cho phép tách biệt dữ liệu (Model), mã thực thi (logic hay ViewModel) và giao diện người dùng (View)
Model: Mô hình mvvm cho phép tách biệt dữ liệu (Model), mã thực thi (logic hay ViewModel) và giao diện người dùng (View)
ViewModel: Mô hình mvvm cho phép tách biệt dữ liệu (Model), mã thực thi (logic hay ViewModel) và giao diện người dùng (View)
Ưu điểm:
đồng nghĩa bạn sẽ phải thay đổi ở Controller
chẽ với nhau
nhiều code được viết thêm vào
Trang 10 MVC phù hợp với các dự án lớn Với các dự án nhỏ, mô hình này khá cồng kềnh và tốn nhiều thời gian trong việc trung chuyển dữ liệu
Nhược điểm:
đồng nghĩa bạn sẽ phải thay đổi ở Controller
chẽ với nhau
nhiều code được viết thêm vào
kềnh và tốn nhiều thời gian trong việc trung chuyển dữ liệu
2.2.3 Kiến trúc phần mềm Clean Architecture
Clean Architecture là kiến trúc phần mềm thiết kế dựa trên Dependency Rule, được đề xuất vào năm 2012 bởi Robert C Martin
Clean architecture không bị giới hạn trong một ứng dụng mà nó còn có thể được áp dụng cho cả một hệ thống (tập các ứng dụng) Đây cũng là một trong những điểm vượt trội so với MVC, MVP hay MVVM.
Trang 11b) Sơ đồ Clean Architecture
Hình 1 Sơ đồ Clean Architecture
Đầu tiên thì ta cần biết Dependency rule là gì?, ta sẽ tìm hiểu nó thông qua sơ đồ ở trên:
Mô hình sẽ chia thành nhiều vòng tròn, mỗi vòng tròn tương ứng với 1 layer
Vị trí của vòng tròn nói lên cấp (level) của chúng, vòng tròn càng xa tâm thì có cấp càng cao
Dependency rule là quy tắc quy định rằng:
o Layer trong (level thấp hơn) không được chứa source code của layer ngoài (có level cao) hơn
o Bất cứ thay đổi ở layer ngoài không làm ảnh hưởng tới layer trong, có nghĩa là sự phụ thuộc hướng vào trong
Clean architecture thông thường chia thành 4 layer: entities, use cases, interface adapters và Frameworks and drivers Nhưng tuỳ theo hệ thống, chúng ta có thể chia thành nhiều layer hơn nhưng phải tuyệt đối tuân thủ vào dependency rule
Khi chúng ta đi vào trong từ layer level cao xuống các layer thấp hơn, mức độ trừu tượng hoá sẽ được tăng lên (mức độ phụ thuộc giảm đi)
c)Ưu điểm
Giúp business logic trở nên rõ ràng
Với việc tách biệt thành các layer và tuân theo dependecy rule, hệ thống của chúng ta sẽ dễ dàng test, maintain và thay đổi
Khi một thành phần như giao diện, database work…bị lỗi thời, chúng ta có thể
Trang 12d) Nhược điểm
Clean architecture do phân tách cấu trúc thành nhiều tầng nên dẫn đến việc số lượng code sinh ra là rất lớn, không phù hợp cho các dự án nhỏ
Khó hiểu, khó áp dụng với những người mới bắt đầu
2.2.4 Các công cụ tích hợp khác Ngoài các công cụ chính để phát triển ứng dụng android, cần tích hợp một số công
cụ thông minh tự động khác
Figma – công cụ thiết kế giao diện: Với thành công của phiên bản dùng thử vào cuối năm 2015, Figma đã chính thức ra mắt vào tháng 09 năm 2016 và tạo được vị trí riêng của mình trong cộng đồng thiết kế Đến tháng 10 năm 2019, Figma Community ra đời Từ đây, các nhà thiết kế có thể xuất bản tác phẩm của mình để người khác xem và phối lại
Tháng 04 năm 2021, Figma phát triển FigJam, một công cụ cho phép người dùng
sử dụng các công cụ ghi chú, vẽ hay thêm các biểu tượng cảm xúc vào các dự án cộng tác
Ưu điểm:
windown, macos, linux,…
trong thời gian thực Với Figma, làm việc nhóm từ xa trở nên dễ dàng khi nó cho phép những người khác trong dự án có thể cộng tác về thiết kế, cung cấp phản hồi, kiểm tra tiến độ công việc hoặc gắn cờ các vấn đề có thể xảy ra theo thời gian thực
suất làm việc Việc quản lý màu sắc, nội dung hình ảnh hay hoạt ảnh đều trở nên dễ dàng hơn bao giờ hết
cùng lúc cũng được tích hợp trên Figma Với tính năng này, bạn có thể sáng
Trang 13tạo nhiều layout với các kích thước khác nhau trên cùng một sản phẩm mà không cần phải tạo thêm tệp mới
dạng vector nên chất lượng của hình ảnh sẽ không bị giảm khi bạn thay đổi kích thước của chúng Hình ảnh xuất ra cũng sẽ giữ được độ sắc nét với nhiều
Jira - ứng dụng quản lý theo dõi tiến trình dự án
Tính năng:
phù hợp với nhiều loại hình dự án, nhiều đối tượng người dùng
liệu
chính xác và hiệu quả
sử dụng Thành phần cơ bản:
Trang 14 Roles: Xác lập các role của dự án, Mục này xác nhận ai tham gia vào dự án, những người add vào role thì mới có thể tạo Resource Allocation và project team sau này Nhiều người có thể vào 1 role
work
của dự án Ai là team lead của group nào thì sẽ được approve worklog cho member của group đó Project management được quyền approve cho toàn bộ thành viên dự án
lấy từ file kế hoạch doanh số Nếu dự án làm theo Scrum thì sẽ là Product của Sprint tương ứng
việc, điều kiện, xác nhận, và sau chức năng Trang này sẽ cung cấp một cái nhìn tổng quan và các bước cơ bản cho từng phần của công việc của bạn
Bitbucket - dịch vụ web giúp lưu trữ mã nguồn và tất cả các phiên bản thực hiện trên code, phát triển bởi công ty Atlassian
Bitbucket cho phép người dùng quản lý các phiên bản phân tán (Git hoặc Mercurial) của các thành viên trong dự án Theo đó thì người đứng đầu dự án có thể theo dõi, đánh giá tiến độ công việc và kịp thời đưa ra các phương án tối ưu để cải tiến
mã nguồn
Tính năng nôt bật:
giúp mọi người trong nhóm chia sẻ kiến thức lẫn nhau
branch cụ thể
gần như chính xác những gì mà developer đang muốn tìm kiếm