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 MOBILE VỚI OBJECTIVE C VÀ JAVA Công ty thực tập Vitalify Asia Người phụ trách Anh Hà Cao Thắng Thực tập sinh Sơn N[.]
Trang 1BÁO CÁO THỰC TẬP
LẬP TRÌNH MOBILE VỚI OBJECTIVE C VÀ
JAVA
Trang 3Ngày nay, cùng với sự phát triển của khoa học công nghệ, con người đã dần dần đemcông nghệ áp dụng vào trong cuộc sống hằng ngày ngày càng nhiều hơn Theo xu hướng đó,những thiết bị nhỏ gọn được tích hợp đầy đủ những công nghệ cần thiết và có thể đem theo bêncạnh và sử dụng bất cứ lúc nào như điện thoại, tablet… ngày càng phổ biến hơn Điều đó cũnglàm cho nhu cầu về ứng dụng trên di động cũng ngày càng cao hơn Ngành công nghiệp phầnmềm mảng di động càng chiếm được vị trí quan trọng và phát triển vô cùng mạnh mẽ, góp phần
to lớn vào sự phát triển công nghệ thông tin thế giới
Bắt kịp với xu thế phát triển của thế giới, ngành công nghiệp phần mềm trên ứng dụng diđộng của Việt Nam cũng đã và đang phát triển một cách thần tốc Công ty Vitalify Asia cũng làmột trong những công ty hàng đầu và góp một phần không nhỏ vào sự phát triển tích cực củangành công nghiệp phần mềm Việt Nam
Ứng dụng di động được sinh ra là do nhu cầu sử dụng điện thoại đặc biệt là điện thoạithông minh (Smartphone) càng lúc càng nhiều cũng như nhu cầu làm việc, giải trí trên thiết bị diđộng ngày càng cao Do đó, em quyết định chọn lập trình trên thiết bị di động làm định hướngcho công việc của mình
Sau thời gian tích lũy kiến thức ở trường, nhằm nâng cao kinh nghiệm thực tế, đối mặt,giải quyết và học tập những điều không thể học ở trường cũng như muốn được tham gia vàomột môi trường chuyên nghiệp, vì thế em quyết định sẽ thực tập ở doanh nghiệp vào học kì này.Công ty Vitalify Asia – một môi trường lý tưởng, hiện đại, năng động, chuyên nghiệp đặc biệt
là một trường làm việc cùng với những anh chị đến từ Nhật – là nơi sẽ giúp em thực hiện đượcquyết định này
Trang 4Trân trọng gửi lời cảm ơn Vitalify Asia đã tạo điều kiện cho em có cơ hội được thực tậptại công ty.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của nhóm trainer, nhómthực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể có đủ kiến thức và kỹnăng lập trình ứng dụng trên iOS bằng ngôn ngữ Objective C, lập trình trên thiết bị Androidbằng Java và tham gia vào dự án thật của công ty Chân thành cảm ơn các anh chị trong nhómtrainer đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Hà Cao Thắng, đã training iOS, hướng dẫn, giúp đỡ cho em tận tình
cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới;
cảm ơn anh Huỳnh Hữu Tâm đã training Android, hướng dẫn và truyền đạt những kiến thức mới; cảm ơn anh Nguyễn Anh Duy đã hỗ trợ em rất nhiều về các vấn đề kỹ thuật, thiết bị cũng
như quy trình làm việc của công ty để em có thể nhanh chóng hòa nhập và làm việc hiệu quả
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ềukiện cho em làm bài báo cáo này
Sơn Ngọc MinhTpHCM, ngày 14 tháng 12 năm 2022
Trang 5NHẬN XÉT CỦA KHOA
Trang 6
MỤC LỤC
Chương 1: Giới thiêu công ty thực tập 5
1 Giới thiệu công ty Vitalify Asia 5
2 Sản phẩm của công ty 5
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 Các công cụ làm việc 8
2.2 Củng cố cơ bản ngôn ngữ Java trên Android 8
2.3 Làm quen với dự án Android 9
2.4 Tìm hiểu về lập trình trên hệ điều hành iOS và ngôn ngữ Objective C 10
3 Thực hiện project 11
3.1 Tham gia vào dự án NIFCloud Mbaas Android 11
3.2 Tham gia vào dự án YourGolf Online 11
4 Lịch làm việc 12
Chương 3: Chi tiết về project 14
1 Giới thiệu về dự án 14
1.1 Các chức năng chính 14
2 Thực hiện 16
3 Kế hoạch 17
Giai đoạn 1 17
Giai đoạn 2 17
Giai đoạn 3 17
TỔNG KẾT 18
TÀI LIỆU THAM KHẢO 19
Trang 7Chương 1: Giới thiêu công ty thực tập
Hình 1 Vitalify Asia
1 Giới thiệu công ty Vitalify Asia
Kể từ khi thành lập vào năm 2008, Vitalify Asia đã tham gia phát triển phần mềmtập trung vào thiết bị di động để đạt được tầm nhìn “mang lại hạnh phúc thông quaInternet” Với mục tiêu trở thành một nhóm chuyên nghiệp thực sự có thể cạnh tranhtrên phạm vi toàn cầu Bây giờ, hơn 10 năm sau khi thành lập, công ty tiến đến mộtgiai đoạn mới để nâng cao hơn nữa giá trị năng lực, kỹ thuật tại Việt Nam nhằm tạo
ra nhiều sản phẩm “Made in Vietnam” và bán chúng trên khắp thế giới
Tầm nhìn của công ty là “Delivering Happiness Through the Internet” cung cấp giátrị cho người dùng thông qua Internet và các ứng dụng Với sứ mạng là phát triển 10dịch vụ có 100.000 người dùng đến năm 2025 Mục tiêu của công ty là trở thànhNo.1 MUSIC trong đó M là Mobile, U là Unique, S là Software, I là Internet và C làCompany
2 Sản phẩm của công ty
Vitalify Asia phát triển ứng dụng di động trên nhiều mảng như các ứng dụnghealthcare, giải trí, database service, game, các ứng dụng outsource … Một số ứngdụng của công ty như YourGolf Online, OMRON Asthma Diary, Joggle – Fitness atHome, Dungeon Dash và nhiều ứng dụng cũng như game khác
Trang 8Hình 2 Your Golf Online
Hình 3 OMRON Asthma Diary
Trang 9Hình 4 Joggle – Fitness at Home
Hình 5 Dungeon Dash
Trang 10Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình mobile với Objective C và Java” nhằm mục đích giúpsinh viên thực tập được đào tạo toàn diện về lập trình mobile bằng cả ngôn ngữ Objective C vàJava, đồng thời 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 Tạicô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áttriển ứng dụng chuyên nghiệ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, cách 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ủacô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 tynhư 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ôngviệc…
Thực tập sinh được đọc các tài liệu của công ty về workflow, các vị trí trong dự
án, các chính sách làm việc, quyền lợi của nhân viên
Kết quả: Hiểu thêm về công ty Vitalify Asia, quá trình thành lập và phát triển Có thêm
các kỹ năng về việc sử dụng email, chatwork 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, em được tìm hiểu về Redmine (công cụ quản lý dự án),Circle CI (công cụ CI/CD) và Deploygate (công cụ để phát hành sản phẩm để test vàdùng thử), Adobe Photoshop (công cụ xử lý ảnh)
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả: Biết cách nhận, cập nhật công việc của bản thân trên Redmine, biết cách xây
dựng Circle Ci cho mỗi task được giao sau khi hoàn thành, dùng deploygate tạo bảndùng thử để PM (project manager – người quản lý dự án) kiểm tra và giao cho kháchhàng
Trang 11Thời gian: 5 ngày (1 tuần)
Nội dung: Được giao các bài tập củng cố ngôn ngữ Java, những kiến thức quan trọng
cho việc tối ưu trên Android
- Định nghĩa về Android:
Android là một hệ điều hành mã nguồn mở dựa trên nền tảng Linux được thiết kếdành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh vàmáy tính bảng Ban đầu Android được phát triển bởi Android Inc với sự hỗ trợ tàichính từ Google Google Inc đã mua lại phát triển ban đầu của phần mềm từAndroid Inc vào năm 2005
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niệm, các đặc tínhnhư tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình
- Các thành phần giao diện của Java
Thực tập sinh được giao những bài tập nhỏ áp dụng những thành phần giao diện
cơ bản trong Android Java
- Các kỹ thuật áp dụng để việc viết mã nguồn dễ dàng hơn
Sử dụng ButterKnife vào mã nguồn giúp đơn giản hóa mã nguồn, giảm sự rườm ràcủa mã nguồn làm cho mã nguồn trở nên dễ đọc, dễ sắp xếp, dễ theo dõi và cảitiến
- Các kỹ thuật khác cần thiết cho lập trình như Api, push notification, kết nối vớicái dịch vụ như Facebook, Google…
- Các quy tắc viết code của dự án sao cho dễ đọc, dễ hiểu
Thực hiện:
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả:
- Nâng cao được kỹ năng lập trình trên thiết bị Android
- Biết được thêm những kỹ thuật mới hỗ trợ cho việc viết mã nguồn tốt hơn
- Ngoài ra còn được biết thêm một số quy tắc trong việc viết code sao cho đúngchuẩn, dễ đọc, dễ hiểu
2.3 Làm quen với dự án Android
Thời gian: 3 ngày
Nội dung: Tìm hiểu về dự án sắp tham gia NIFCloud - Mbaas
- Mục tiêu dự án
Trang 12bỏ ra một ít thời gian để cài đặt và cấu hình trước Nhờ đó mà người dùng có thểphát triển nhanh một sản phẩm phần mềm mà không cần phải bỏ ra nhiều côngsức cho backend Hệ thống cũng cấp cho người dùng nơi lưu trữ dữ liệu trên cloud
và các api để truy xuất dữ liệu
- Tìm hiểu về chức năng mà dự án cung cấp cho người dùng thông qua việc làm các
bài tập và thực hiện thử những chức năng đó trên thiết bị Android bằng ngôn ngữJava
Thực hiện:
- Tham gia đầy đủ các buổi trainning
- Làm các bài tập dựa trên document của dự án, thử trải nghiệm những chức năngcủa dự án, làm những ứng dụng demo cho các chức năng của dự án trên hệ điềuhành Android
Kết quả:
- Hiểu được mục tiêu của dự án
- Hiểu và sử dụng được các chức năng của dự án cung cấp cho người dùng
2.4 Tìm hiểu về lập trình trên hệ điều hành iOS và ngôn ngữ Objective C
Thời gian: 10 ngày (2 tuần)
Nội dung: Được giao các bài tập training ngôn ngữ Objective C, những kiến thức
quan trọng trong việc lập trình trên hệ điều hành iOS
- Định nghĩa về iOS:
+ iOS là hệ điều hành trên các thiết bị di động của Apple Đây là hệ điềuhành chạy trên các sản phẩm iPhone, cũng như một số sản phẩm iPadkhông được hỗ trợ iPadOS, và iPod Touch, là hệ điều hành phổ biến thứ 2trên toàn cầu sau Android của Google
+ Các phần mềm trên iOS được các nhà phát triển sử dụng ngôn ngữ lập trìnhObjective C để viết và sau này được thay thế bằng Swift
- Objective C
Objective C là một loại ngôn ngữ lập trình được sáng tạo bởi Steve Jobs dựa trênnền tảng của ngôn ngữ C++ Objective C được bổ sung kêu gọi hàm của ngôn ngữSmalltalk Ngôn ngữ Objective C được biên soạn nhằm giúp lập trình viên có thểsáng tạo các công cụ duy trì và hỗ trợ Objective C có ưu điểm là người dùng dễdàng xây dựng bất cứ thứ gì từ dòng lệnh common line utilities đến cả giao diệncho người dùng (animated GUI)
Trang 13+ Thực tập sinh được hướng dẫn tạo một ứng dụng cơ bản trên iOS với ngônngữ Objective C
+ Thực tập sinh được giao các bài tập để tìm hiểu những thành phần củaObjective C như Syntax, GUI component, Thread, Asynchonos,Database… các bài tập nằm trong sách “iOS 7 Programming Cookbook”.Thực tập sinh hoàn thành các bài tập trong sách và báo cáo lại cho ngườiphụ trách
Thực hiện:
- Thực hiện đầy đủ các bài tập trong sách, viết ứng dụng Demo cho mỗi bài học vàbáo cáo hằng ngày với người phụ trách, gửi Demo để kiểm tra tiến độ, meetingkiểm tra kiến thức hằng ngày
Kết quả:
- Nắm được kiến thức và kỹ năng lập trình trên iOS với Objective C
- Nâng cao các kỹ năng lập trình hướng đối tượng, tư duy lập trình
- Nâng cao kỹ năng tự học, đọc hiểu tài liệu
- Hoàn thành các bài tập được giao
3 Thực hiện project
Sau 3 tuần training về cách làm việc và các kỹ thuật lập trình trên thiết bị Android thìthực tập sinh được tham gia vào dự án thực tế là NIFCloud Mbaas Mobile Backend
3.1 Tham gia vào dự án NIFCloud Mbaas Android
Thời gian: 7 ngày
Nội dung: Phát triển chức năng mới, fix lỗi version cũ
- Phát triển chức năng mới:
+ Viết phần mềm Demo cách áp dụng Mbass Mobile backend vào Android
13, chỉnh sửa các cài đặt cần thiết Sau khi hoàn thành, báo cáo lại nhữngthay đổi và cập nhật vào tài liệu dành cho người dùng cuối của dự án
+ Cập nhật SDK Facebook service cho Android 13 Do phiên bản Android 13SDK Facebook không còn được hỗ trợ nên bắt buộc phải cập nhật Viếtứng dụng Demo, báo cáo lại những thay đổi và cập nhật vào tài liệu dànhcho người dùng cuối của dự án
- Fix lỗi version cũ: Nhận những phản hồi từ khách hàng và sửa lỗi
Thực hiện:
- Hoàn thành các task được giao
- Tạo ra các ứng dụng Demo và bổ sung tài liệu cho người dùng cuối của dự án
Kết quả:
- Đã thích ứng với môi trường làm việc trong dự án thực tế
Trang 14Thời gian: Sau 1 tháng thực tập cho đến hiện tại
Nội dụng: Tham gia vào dự án và làm những việc như fix bug, cải tiến chức năng,
tạo mới giao diện người dùng, tham gia họp dự tính thời gian hoàn thành dự án, …
Thực hiện:
- Hằng ngày, tham gia họp vào buổi sáng để phổ biến công việc của mỗi thànhviên, chia sẻ khó khăn và tiến độ công việc
- Tham gia phát triển ứng dụng theo các task được chia theo dạng “ticket”
- Báo cáo tiến độ, khó khăn và task dự kiến vào cuối ngày
Kết quả:
- Thích ứng với qui tắc làm việc của nhóm dự án
- Dần dần tiến bộ hơn trong việc lập trình trên thiết bị iOS bằng Objective C
- Hoàn thành đúng hạn các task được giao
- Trau dồi được thêm kiến thức, có đóng góp ý kiến góp phần tích cực cho dự án
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
1
- Tìm hiểu về công
ty, cách tổ chức củacông ty
- Làm quen với cáccông cụ làm việctrong công ty
- Học cách trao đổi,làm việc qua email,chatwork
- Học và làm quenvới quản lý dự ántrên Redmine
- Thực hiện các bàitập để làm quen
Anh Huỳnh Hữu
Trang 15tham gia
3 - Tham gia dự ánNIFCloud Mbaas Anh Huỳnh HữuTân 100%
4
- Tìm hiểu về ngônngữ Objective C vàlập trình trên thiết bịiOS
Anh Nguyễn AnhDuy
mô hình, kiến trúccủa ứng dụng
- Fix những lỗi đơngiản
- Thực hiện một sốtask đơn giản
- Khối lượng côngviệc tăng lên
- Ngày càng rút ngắnthời gian xử lý vấnđề
Anh Hà Cao Thắng 100%
8 Giao đoạn hiện tại và
báo cáo:
- Đã hoàn toàn thíchnghi với môi trườnglàm việc, các kỹnăng và kiến thứcngày càng tốt, làmcác task độ khó caohơn
Anh Hà Cao Thắng 100%
Trang 17Chương 3: Chi tiết về project
1 Giới thiệu về dự án
Nhận thấy sự bất tiện khi ghi điểm trên giấy khi chơi golf về khả năng lưu trữ, khả năngsửa chữa và hơn thế nữa nhằm đưa đến cho người dùng một ứng dụng “all-in-one” cóthể cung cấp không những là thẻ xem điểm mà còn thống kê chi tiết, lưu trữ miễn phítrên đám mây, khả năng truy cập từ nhiều thiết bị, các thông tin liên quan đến golf trên
cả thế giới và nhiều tiện ích khác Ứng dụng Your Golf Online (GN+) được ra đời nhằmgiải quyết tất cả những vấn đề nếu trên một cách nhanh chóng, tiện lợi nhất cho ngườidùng
1.1 Các chức năng chính
- Giữ điểm của người dùng của hơn 38.000 sân golf trên toàn thế giới Sắp xếp sựkiện chơi golf của riêng người dùng với bảng xếp hạng trực tiếp Tải dữ liệu củangười dùng một cách “TỰ ĐỘNG” trên máy chủ đám mây của GN+ Chọn cáctùy chọn, đơn vị tính độ dài sân, hỗ trợ hệ thống ghi điểm stableford, cung cấpchức năng bản đồ cho người dùng để dễ dàng hơn trong việc chơi golf
- Xem những cuộc thi đấu golf qua phát trực tiếp và video Với khoảng 900chương trình mỗi tháng thông qua phát trực tiếp và khoảng 400 video mới mỗitháng qua Video-On-Demand
- Cung cấp thông tin liên quan đến golf từ nhiều nguồn
- Liên kết đến sàn thương mại điện từ về các sản phẩm phục vụ việc chơi golf