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[.]
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 Người phụ trách Thực tập sinh : Vitalify Asia : Anh Hà Cao Thắng : Sơn Ngọc Minh TP Hồ Chí Minh, tháng 12 năm 2022 Sơn Ngọc Minh LỜI MỞ ĐẦU Ngày nay, với phát triển khoa học công nghệ, người đem công nghệ áp dụng vào sống nhiều Theo xu hướng đó, thiết bị nhỏ gọn tích hợp đầy đủ cơng nghệ cần thiết đem theo bên cạnh sử dụng lúc điện thoại, tablet… ngày phổ biến Điều làm cho nhu cầu ứng dụng di động ngày cao Ngành công nghiệp phần mềm mảng di động chiếm vị trí quan trọng phát triển vơ mạnh mẽ, góp phần to lớn vào phát triển công nghệ thông tin giới Bắt kịp với xu phát triển giới, ngành công nghiệp phần mềm ứng dụng di động Việt Nam phát triển cách thần tốc Công ty Vitalify Asia cơng ty hàng đầu góp phần khơng nhỏ vào phát triển tích cực ngành công nghiệp phần mềm Việt Nam Ứng dụng di động sinh nhu cầu sử dụng điện thoại đặc biệt điện thoại thông minh (Smartphone) lúc nhiều nhu cầu làm việc, giải trí thiết bị di động ngày cao Do đó, em định chọn lập trình thiết bị di động làm định hướng cho cơng việc 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 học tập điều học trường muốn tham gia vào môi trường chuyên nghiệp, em định thực tập doanh nghiệp vào học kì Cơng ty Vitalify Asia – môi trường lý tưởng, đại, động, chuyên nghiệp đặc biệt trường làm việc với anh chị đến từ Nhật – nơi giúp em thực định Sơn Ngọc Minh LỜI CẢM ƠN Trân trọng gửi lời cảm ơn Vitalify Asia tạo điều kiện cho em có hội thực tập cơng ty Chỉ thời gian ngắn, nhờ dẫn nhiệt tình nhóm trainer, nhóm thực tập chúng em tiếp thu kiến thức quan trọng để có đủ kiến thức kỹ lập trình ứng dụng iOS ngơn ngữ Objective C, lập trình thiết bị Android Java tham gia vào dự án thật công ty Chân thành cảm ơn anh chị nhóm trainer bỏ 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 Đặ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 khó khăn cơng việc, đến 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 truyền đạt kiến thức mới; cảm ơn anh Nguyễn Anh Duy hỗ trợ em nhiều vấn đề kỹ thuật, thiết bị quy trình làm việc cơng ty để em nhanh chóng hịa nhập làm việc hiệu Cũng xin cảm ơn thầy khoa Cơng nghệ phần mềm nhiệt tình hỗ trợ, tạo điều kiện cho em làm báo cáo Sơn Ngọc Minh TpHCM, ngày 14 tháng 12 năm 2022 Sơn Ngọc Minh NHẬN XÉT CỦA KHOA Sơn Ngọc Minh MỤC LỤC Chương 1: Giới thiêu công ty thực tập Giới thiệu công ty Vitalify Asia Sản phẩm công ty .5 Chương 2: Nội dung thực tập .8 Tìm hiểu cơng ty kỹ công ty .8 Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc 2.2 Củng cố ngôn ngữ Java Android 2.3 Làm quen với dự án Android .9 2.4 Tìm hiểu lập trình hệ điều hành iOS ngơn ngữ Objective C 10 Thực 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 Lịch làm việc 12 Chương 3: Chi tiết project 14 Giới thiệu dự án 14 1.1 Các chức 14 Thực 16 Kế hoạch 17 Giai đoạn 17 Giai đoạn 17 Giai đoạn 17 TỔNG KẾT 18 TÀI LIỆU THAM KHẢO 19 Sơn Ngọc Minh Chương 1: Giới thiêu công ty thực tập Hình Vitalify Asia Giới thiệu cơng ty Vitalify Asia Kể từ thành lập vào năm 2008, Vitalify Asia tham gia phát triển phần mềm tập trung vào thiết bị di động để đạt tầm nhìn “mang lại hạnh phúc thơng qua Internet” Với mục tiêu trở thành nhóm chuyên nghiệp thực cạnh tranh phạm vi toàn cầu Bây giờ, 10 năm sau thành lập, công ty tiến đến giai đoạn để nâng cao giá trị lực, kỹ thuật Việt Nam nhằm tạo nhiều sản phẩm “Made in Vietnam” bán chúng khắp giới Tầm nhìn cơng ty “Delivering Happiness Through the Internet” cung cấp giá trị cho người dùng thông qua Internet ứng dụng Với sứ mạng phát triển 10 dịch vụ có 100.000 người dùng đến năm 2025 Mục tiêu công ty trở thành No.1 MUSIC M Mobile, U Unique, S Software, I Internet C Company Sản phẩm công ty Vitalify Asia phát triển ứng dụng di động nhiều mảng ứng dụng healthcare, giải trí, database service, game, ứng dụng outsource … Một số ứng dụng công ty YourGolf Online, OMRON Asthma Diary, Joggle – Fitness at Home, Dungeon Dash nhiều ứng dụng game khác Sơn Ngọc Minh Hình Your Golf Online Hình OMRON Asthma Diary Sơn Ngọc Minh Hình Joggle – Fitness at Home Hình Dungeon Dash Sơn Ngọc Minh Chươ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 Java” nhằm mục đích giúp sinh viên thực tập đào tạo toàn diện lập trình mobile ngơn ngữ Objective C Java, đồng thời rèn luyện kỹ mềm làm việc nhóm, thuyết trình, giao tiếp Tại cơng ty, sinh viên có hội học tập, khám phá làm việc môi trường phát triển ứng dụng chun nghiệp Tìm hiểu cơng ty kỹ công ty Thời gian: ngày Nội dung: Giới thiệu công ty, cách tổ chức công ty Được nghe người phụ trách giới thiệu cơng ty, q trình thành lập 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ơng ty Ngồi ra, thực tập sinh cịn giới thiệu cách thức làm việc công ty thời gian làm, quy định cần phải tuân thủ, cách sử dụng email công việc… Thực tập sinh đọc tài liệu công ty workflow, vị trí dự án, sách làm việc, quyền lợi nhân viên Kết quả: Hiểu thêm cơng ty Vitalify Asia, q trình thành lập phát triển Có thêm kỹ việc sử dụng email, chatwork công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc Thời gian: ngày Nội dung: Tìm hiểu cơng cụ sử dụng q trình làm việc Trong thời gian này, em tìm hiểu Redmine (công cụ quản lý dự án), Circle CI (công cụ CI/CD) Deploygate (công cụ để phát hành sản phẩm để test dùng thử), Adobe Photoshop (công cụ xử lý ảnh) Thực hiện: Thực hành sử dụng phần mềm nêu Kết quả: Biết cách nhận, cập nhật công việc thân Redmine, biết cách xây dựng Circle Ci cho task giao sau hoàn thành, dùng deploygate tạo dùng thử để PM (project manager – người quản lý dự án) kiểm tra giao cho khách hàng Sơn Ngọc Minh 10 2.2 Củng cố ngôn ngữ Java Android Thời gian: ngày (1 tuần) Nội dung: Được giao tập củng cố ngôn ngữ Java, kiến thức quan trọng cho việc tối ưu Android - Định nghĩa Android: Android hệ điều hành mã nguồn mở dựa tảng Linux thiết kế dành cho thiết bị di động có hình cảm ứng điện thoại thơng minh máy tính bảng Ban đầu Android phát triển Android Inc với hỗ trợ tài từ Google Google Inc mua lại phát triển ban đầu 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 lập trình hướng đối tượng khái niệm, đặc tính 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 Java Thực tập sinh giao tập nhỏ áp dụng thành phần giao diện Android Java - Các kỹ thuật áp dụng để việc viết mã nguồn dễ dàng Sử dụng ButterKnife vào mã nguồn giúp đơn giản hóa mã nguồn, giảm rườm rà mã nguồn làm cho mã nguồn trở nên dễ đọc, dễ xếp, dễ theo dõi cải tiến - Các kỹ thuật khác cần thiết cho lập trình Api, push notification, kết nối với dịch vụ Facebook, Google… - Các quy tắc viết code dự án cho dễ đọc, dễ hiểu Thực hiện: - Tham gia đầy đủ buổi training công ty - Làm thực hành, kiểm tra kiến thức học Kết quả: - Nâng cao kỹ lập trình thiết bị Android - Biết thêm kỹ thuật hỗ trợ cho việc viết mã nguồn tốt - Ngồi cịn biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu 2.3 Làm quen với dự án Android Thời gian: ngày Nội dung: Tìm hiểu dự án tham gia NIFCloud - Mbaas - Mục tiêu dự án Sơn Ngọc Minh 11 Dự án hướng tới cung cấp backend cho người dùng mà người dùng khơng cần phải lập trình backend Cung cấp cho người dùng backend mà cần bỏ thời gian để cài đặt cấu hình trước Nhờ mà người dùng phát triển nhanh sản phẩm phần mềm mà không cần phải bỏ nhiều công sức cho backend Hệ thống cấp cho người dùng nơi lưu trữ liệu cloud api để truy xuất liệu - Tìm hiểu chức mà dự án cung cấp cho người dùng thông qua việc làm tập thực thử chức thiết bị Android ngôn ngữ Java Thực hiện: - Tham gia đầy đủ buổi trainning - Làm tập dựa document dự án, thử trải nghiệm chức dự án, làm ứng dụng demo cho chức dự án hệ điều hành Android Kết quả: - Hiểu mục tiêu dự án - Hiểu sử dụng chức dự án cung cấp cho người dùng 2.4 Tìm hiểu lập trình hệ điều hành iOS ngơn ngữ Objective C Thời gian: 10 ngày (2 tuần) Nội dung: Được giao tập training ngôn ngữ Objective C, kiến thức quan trọng việc lập trình hệ điều hành iOS - Định nghĩa iOS: + iOS hệ điều hành thiết bị di động Apple Đây hệ điều hành chạy sản phẩm iPhone, số sản phẩm iPad không hỗ trợ iPadOS, iPod Touch, hệ điều hành phổ biến thứ toàn cầu sau Android Google + Các phần mềm iOS nhà phát triển sử dụng ngôn ngữ lập trình Objective C để viết sau thay Swift - Objective C Objective C loại ngơn ngữ lập trình sáng tạo Steve Jobs dựa tảng ngôn ngữ C++ Objective C bổ sung kêu gọi hàm ngôn ngữ Smalltalk Ngôn ngữ Objective C biên soạn nhằm giúp lập trình viên sáng tạo cơng cụ trì hỗ trợ Objective C có ưu điểm người dùng dễ dàng xây dựng thứ từ dịng lệnh common line utilities đến giao diện cho người dùng (animated GUI) Sơn Ngọc Minh 12 - Tạo ứng dụng iOS + Thực tập sinh hướng dẫn tạo ứng dụng iOS với ngôn ngữ Objective C + Thực tập sinh giao tập để tìm hiểu thành phần Objective C Syntax, GUI component, Thread, Asynchonos, Database… tập nằm sách “iOS Programming Cookbook” Thực tập sinh hoàn thành tập sách báo cáo lại cho người phụ trách Thực hiện: - Thực đầy đủ tập sách, viết ứng dụng Demo cho học báo cáo ngày với người phụ trách, gửi Demo để kiểm tra tiến độ, meeting kiểm tra kiến thức ngày Kết quả: - Nắm kiến thức kỹ lập trình iOS với Objective C - Nâng cao kỹ lập trình hướng đối tượng, tư lập trình - Nâng cao kỹ tự học, đọc hiểu tài liệu - Hoàn thành tập giao Thực project Sau tuần training cách làm việc kỹ thuật lập trình thiết bị Android thực tập sinh tham gia vào dự án thực tế NIFCloud Mbaas Mobile Backend 3.1 Tham gia vào dự án NIFCloud Mbaas Android Thời gian: ngày Nội dung: Phát triển chức mới, fix lỗi version cũ - Phát triển chức 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ài đặt cần thiết Sau hoàn thành, báo cáo lại thay đổi cập nhật vào tài liệu dành cho người dùng cuối dự án + Cập nhật SDK Facebook service cho Android 13 Do phiên Android 13 SDK Facebook khơng cịn 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 thay đổi cập nhật vào tài liệu dành cho người dùng cuối dự án - Fix lỗi version cũ: Nhận phản hồi từ khách hàng sửa lỗi Thực hiện: - Hoàn thành task giao - Tạo ứng dụng Demo bổ sung tài liệu cho người dùng cuối dự án Kết quả: - Đã thích ứng với mơi trường làm việc dự án thực tế - Có đủ kỹ kiến thức để sửa lỗi dự án Sơn Ngọc Minh 13 - Tạo ứng dụng Demo bổ sung liệu cho dự án 3.2 Tham gia vào dự án YourGolf Online Thời gian: Sau tháng thực tập Nội dụng: Tham gia vào dự án làm việc fix bug, cải tiến chức năng, tạo 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 thành viên, chia sẻ khó khăn tiến độ công việc - Tham gia phát triển ứng dụng theo task chia theo dạng “ticket” - Báo cáo tiến độ, khó khăn 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 nhóm dự án - Dần dần tiến việc lập trình thiết bị iOS Objective C - Hoàn thành hạn task giao - Trau dồi thêm kiến thức, có đóng góp ý kiến góp phần tích cực cho dự án Lịch làm việc Tuần - - - Mức độ Cơng việc Người hướng dẫn hồn thành Tìm hiểu cơng Anh Bùi Bình 100% ty, cách tổ chức Trung công ty Làm quen với công cụ làm việc công ty Học cách trao đổi, làm việc qua email, chatwork Học làm quen với quản lý dự án Redmine Củng cố kiến thức Anh Huỳnh Hữu 100% ngôn ngữ Java Tâm Tìm hiểu kiến thức kỹ thuật lập trình Android Thực tập để làm quen Nhận xét người hướng dẫn Sơn Ngọc Minh 14 trước với dự án tham gia - Tham gia dự án NIFCloud Mbaas - Tìm hiểu ngơn ngữ Objective C lập trình thiết bị iOS - Bắt đầu tham gia dự án iOS “Your Golf Online” Giai đoạn làm quen dự án: - Đọc hiểu source code, xem cấu trúc, cách triển khai mơ hình, kiến trúc ứng dụng - Fix lỗi đơn giản - Thực số task đơn giản Giai đoạn sau quen với công việc - Thực hiên task khó - Khối lượng cơng việc tăng lên - Ngày rút ngắn thời gian xử lý vấn đề Giao đoạn báo cáo: - Đã hoàn tồn thích nghi với mơi trường làm việc, kỹ kiến thức ngày tốt, làm task độ khó cao - Báo cáo cuối đợt Anh Huỳnh Hữu 100% Tân Anh Nguyễn Anh 100% Duy Anh Hà Cao Thắng Anh Hà Cao Thắng 100% Anh Hà Cao Thắng 100% Anh Hà Cao Thắng 100% Anh Hà Cao Thắng 100% Sơn Ngọc Minh 15 thực tập Sơn Ngọc Minh 16 Chương 3: Chi tiết project Giới thiệu dự án Nhận thấy bất tiện ghi điểm giấy chơi golf khả lưu trữ, khả sửa chữa nhằm đưa đến cho người dùng ứng dụng “all-in-one” cung cấp khơng thẻ xem điểm mà thống kê chi tiết, lưu trữ miễn phí đám mây, khả truy cập từ nhiều thiết bị, thông tin liên quan đến golf giới nhiều tiện ích khác Ứng dụng Your Golf Online (GN+) đời nhằm giải tất vấn đề cách nhanh chóng, tiện lợi cho người dùng 1.1 Các chức - Giữ điểm người dùng 38.000 sân golf toàn giới Sắp xếp kiện chơi golf riêng người dùng với bảng xếp hạng trực tiếp Tải liệu người dùng cách “TỰ ĐỘNG” máy chủ đám mây GN+ Chọn tùy chọn, đơn vị tính độ dài sân, hỗ trợ hệ thống ghi điểm stableford, cung cấp chức đồ cho người dùng để dễ dàng việc chơi golf - Xem thi đấu golf qua phát trực tiếp video Với khoảng 900 chương trình tháng thơng qua phát trực tiếp khoảng 400 video thá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ừ sản phẩm phục vụ việc chơi golf Sơn Ngọc Minh 17 Sơn Ngọc Minh 18 Hình Hình ảnh ứng dụng Your Golf Online Sơn Ngọc Minh 19 Thực - Nhóm phát triển ứng dụng Your Golf iOS Vitalify Asia Thực tập sinh: Sơn Ngọc Minh Người hướng dẫn: Hà Cao Thắng Kế hoạch Giai đoạn - Tìm hiểu ngơn ngữ Objtective C lập trình thiết bị iOS Đọc tìm hiểu tài liệu dự án Đọc tìm hiểu thiết kế UI/UX ứng dụng Nghiên cứu, đọc hiểu source code, cấu trúc mơ hình ứng dụng Tìm hiểu cài đặt framework, thư viện liên quan đến dự án Giai đoạn Tham gia thức vào dự án theo quy trình Scrum, quản lý dự án Redmine, họp báo cáo tiến độ, khó khăn ngày, viết báo cáo tiến độ ngày, họp rút kinh nghiệm cho dự án - Thực task điều tra, task đơn giản - Tham gia “cross-review” iOS Android, nhận phản hồi, nhận xét, tiếp thu cải thiện - Dần dần nâng cao độ khó task, nâng cao hiệu suất công việc - Giai đoạn - Đánh giá kết thực tập Hoàn thành tài liệu thực tập Sơn Ngọc Minh ... Ng? ?c Minh Hình Joggle – Fitness at Home Hình Dungeon Dash Sơn Ng? ?c Minh Chươ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 Java” nhằm m? ?c đích giúp sinh viên th? ?c. .. quy trình làm vi? ?c từ cao xuống thấp, c? ?ch th? ?c tổ ch? ?c cơng ty Ngồi ra, th? ?c tập sinh giới thiệu c? ?ch th? ?c làm vi? ?c công ty thời gian làm, quy định c? ??n phải tuân thủ, c? ?ch sử dụng email c? ?ng... Cookbook” Th? ?c tập sinh hoàn thành tập sách báo c? ?o lại cho người phụ trách Th? ?c hiện: - Th? ?c đầy đủ tập sách, viết ứng dụng Demo cho h? ?c báo c? ?o ngày với người phụ trách, gửi Demo để kiểm tra tiến