Tải bản đầy đủ (.pdf) (19 trang)

Lập trình ứng dụng trên IOS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (770.97 KB, 19 trang )

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 ỨNG DỤNG TRÊN IOS

Cơng ty thực tập

: gumiVietnam

Người phụ trách

: Nguyễn Nhất Nguyên

Thực tập sinh

: Nguyễn Đức Hiếu

TP. Hồ Chí Minh, 9 tháng 1 năm 2021


2

LỜI MỞ ĐẦU

Ngày nay, lập trình ứng dụng iOS là một bộ phận không thể thiếu của ngành công nghiệp
phần mềm nói chung và cơng nghiệp ứng dụng di động nói riêng. Với tốc độ phát triển vơ cùng
mạnh mẽ, công nghiệp ứ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.
Chuyên mơn lập trình ứng dụng iOS được sinh ra là do nhu cầu đáp ứng thị trường, một


ứng dụng được sinh ra phải đáp ứng được trên cả 2 nền tảng Android và iOS. Và cũng chính
người lập trình iOS sẽ là nguồn nhân lực quan trọng cho việc phát triển của lập trình ứng dụng di
động sau này. Vì lý do này, em quyết định chọn lập trình ứng dụng iOS làm định hướng cho việc
học tập của mình.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như
muốn được tham gia làm game trong một mơi trường chun nghiệp, em có dự định là sẽ thực
tập trong hè. Vì vậy, em quyết định chọn gumiVietnam - một môi trường thân thiện, lý tưởng,
chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này.

Nguyễn Đức Hiếu


3

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty gumiVietnam đã tạo điều kiện cho em có cơ hội được
thực tập tạ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 mentor, nhóm
thực tập chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được những ứng
dụng iOS tuyệt vời. Chân thành cảm ơn các anh chị trong nhóm mentor đã 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 team iOS Developer, đã training iOS, hướng dẫn, giúp đỡ cho chúng
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 Nguyễn Nhất Nguyên tạo điều khiện training và đã giúp đỡ em trong
suốt quá trình thực tập.
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.
Nguyễn Đức Hiếu
TpHCM, ngày 9 tháng 1 năm 2021


Nguyễn Đức Hiếu


4

Nguyễn Đức Hiếu


5

NHẬN XÉT CỦA KHOA

..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................

..........................................................................................................................................................

Nguyễn Đức Hiếu


6

MỤC LỤC

MỤC LỤC ........................................................................................................................... 6
Chương 1: Giới thiệu công ty thực tập ........................................................................... 7
Giới thiệu về công ty Gumi Viet Nam. ..................................................................... 7
Sản phẩm của công ty ............................................................................................... 7
Chương 2: Nội dung thực tập ........................................................................................ 10
Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty .......................................... 10
Nghiên cứu kỹ thuật ................................................................................................ 10
Thực hiện project .................................................................................................... 12
Lịch làm việc .......................................................................................................... 12
Chương 3: Chi tiết về project ........................................................................................ 14
Giới thiệu về Project ............................................................................................... 14
Thực hiện ................................................................................................................ 16
Kế hoạch ................................................................................................................. 17
TÀI LIỆU THAM KHẢO ............................................................................................... 18
TỔNG KẾT ...................................................................................................................... 19

Nguyễn Đức Hiếu


7


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

1. Giới thiệu công ty gumiViet
Công ty cổ phần gumi Việt Nam là cơng ty CNTT có vốn đầu tư 100% đến từ Nhật
Bản chuyên về phát triển website và các ứng dụng dành cho smart phone. Được thành lập
từ năm 2012 tại Việt Nam.
- Định hướng phát triển sản phẩm – dịch vụ
Đầu tư phát huy công nghệ mới, vận dụng kiến thức chuyên sâu vào hoạt động.
Nghiên cứu vào lĩnh vực chuyên môn. Cung cấp hệ thống website/Mobile App phù hợp
với mong muốn của khách hàng. Các sản phẩm, dịch vụ được tạo ra trên nền tảng VR/AR...

- Giá trị cốt lõi
 Hướng tới khách hàng
 Hợp tác chia sẻ
 Năng động sáng tạo
 Phát triển mạnh mẽ.
- Chiến lược phát triển
 Tầm nhìn : Gumi Việt Nam mong muốn trở thành người bạn đồng hành hàng đầu
của các tổ chức và doanh nghiệp trong việc cung cấp các giải pháp, sản phẩm cơng
nghệ có giá trị sáng tạo, có tính ứng dụng cao, nhằm thú đẩy hoạt động kinh doanh
phát triển hiệu quả.

Nguyễn Đức Hiếu


8

 Sứ mệnh: Trong suốt quá trình hoạt động, gumi Việt Nam luôn nỗ lực với mục tiêu
cao nhất là mang lại sự hài lòng cho khách hàng với phon cách làm việc chun


nghiệp, ln đảm bảo tính chính xác, kịp thời của dự án. Ngoài ra gumi Việt Nam
tiên phon trong các xu hướng cơng nghệ mới góp phần vào sự nghiệp cơng nghiệp
hóa, hiện đại hóa đất nước trong bối cảnh hội nhập kinh tế Thế giới.
- Số năm kinh nghiệm trong lĩnh vực bán hàng dịch vụ: 8 năm
- Chính sách chất lượng
 Ln cung cấp những sản phẩm dịch vụ tốt nhất, đảm bảo thi công đúng tiến độ,
chất lượng, hiệu quả, an toàn như đã thỏa thuận với khách hàng.
 Không ngừng cải tiến về mọi mặt để đạt được sự hoàn hảo về sản phẩm và dịch vụ
cung cấp, về mối quan hệ với khách hàng và khả năng cạnh tranh.
 Liên tục đào tạo nhằm phát triển nguồn nhân lực; tăng cường đầu tư trang thiết bị
kỹ thuật và công nghệ thi công hiện đại; nghiên cứu và ứng dụng các phương thức
quản lý hiệu quả, chuyên nghiệp, tiên tiến nhất nhằm đáp ứng tối đa yêu cầu của
Khách hàng, Đối tác.

2. Tổ chức và các lĩnh vực hoạt động của gumi Việt Nam
-

Sản xuất phần mềm, gia công phần mềm

-

Cung cấp hệ thống website/Mobile App

-

Cung Cấp các sản phẩm, dịch vụ được tạo ra trên nền tảng VR/AR

3. Cơ cấu tổ chức của gumi Việt Nam
Gumi Việt Nam là sự kết hợp giữa sức trẻ, tri thức và đội ngũ các nhà quản lý
đầy kinh nghiệm, gumi gồm nhiều kỹ sư tin học được đào tạo bài bản từ các trường

Đại học danh tiếng về Cơng nghệ thơng tin hiện nay, có kinh nghiệm lâu năm trong
lĩnh vực xây dựng phần mềm.
- Ban giám đốc:
 CEO : Harada Shogo
 General Manager : Phạm Q Tồn

Nguyễn Đức Hiếu


 CTO : Nguyễn Sỹ Đăng

9

- Các bộ phận:
 Phòng Marketing.
 Phòng Hỗ trợ khách hàng.
 Phòng Phát triển Website/Mobile App

Nguyễn Đức Hiếu


10

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

Đợt thực tập với chủ đề “Lập trình ứng dụng iOS” nhằm mục đích giúp sinh viên thực
tập được đào tạo toàn diện về lập trình trên thiết bị iOS, đồ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ạ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 game chuyên
nghiệp.

Là thành viên của team iOS trong Công ty cổ phần gumiVietnam sẽ có cơ hội được học
tập trau dồi các kiến thức về lĩnh vực lập trình app trên nền tảng mobile, được tiếp cận
với các nền tảng công nghệ mới khác nhau, được tăng khả năng tìm kiếm và đọc hiểu tài
liệu tiếng Anh…

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, q 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 .
Ngồ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…
Kết quả : Hiểu thêm về cơng ty gumiViet, q 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 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, mentor đã 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ư Xcode – IDE
chính để lập trình ứng dụng iOS, Terminal để sử dụng git, SourceTree để sử dụng git
với GUI
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các cơng cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau, so với việc dung các IDE.


Nguyễn Đức Hiếu


11

2.2.

Tìm hiểu ngơn ngữ Swift
Thời gian : 5 ngày (1 tuần)
Nội dung : Được training về các kỹ thuật Swift cơ bản và nâng cao, những kiến thức
quan trọng cho việc tối ưu trên iOS.
- 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ính như
tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình.
- Optional :
Swift là một trong những ngơn ngữ an tồn nhất trong lập trình. Nắm được khái
niệm về optional, cách unwrap optional sẽ giúp người lập trình tối ưu hóa được đặc
tính an tồn của ngơn ngữ Swift.
- Quản lý bộ nhớ
Thực tập sinh sẽ được hướng dẫn về cách cấp phát, quản lý bộ nhớ sao cho tối ưu,
tránh rò rỉ bộ nhớ, một trong những phần rất quan trọng trong lập trình game trên
điện thoại, vì bộ nhớ trên điện thoại khơng thể lớn như trên máy tính được.
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ả :
-

2.3.


Nâng cao kỹ năng lập trình với ngơn ngữ Swift.
Có được những kiến thức quan trọng cho việc lập trình game mobile sau này.
Ngồ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.

Lập trình ứng dụng iOS với Swift
Nội dung: Cách sử dụng Xcode, kiến thức cơ bản về UIKit, áp dụng các thư viện bên
thứ 3 với CocoaPods để có thể làm ra một ứng dụng đơn giản.
-

Cách sử dụng Xcode:
Nắm được layout của Xcode IDE, giúp người lập trình có thể thao tác nhanh trên
Xcode, từ đó có thể làm việc nhanh hơn

-

Kiến thức cơ bản về UIKit:
UIKit và SwiftUI là 2 thư viện chính để lập trình giao diện iOS, tuy nhiên SwiftUI
vẫn chưa thịnh hành, còn đang trong giai đoạn phát triển nên rất ít dự án thực tế liên
quan đến SwiftUI.
Nguyễn Đức Hiếu


12

Nắm được kiến thức về UIKit giúp người lập trình hiểu về các thành phần giao diện,
cấu tạo cơ bản của một màn hình trong ứng dụng.
-


Thư viện bên thứ 3 với CocoaPods:
Tương tự với npm đối với nodejs, cocoapods là bên quản lý các thư viện sử dụng
bởi các lập trình viên iOS.

Thực hiện :
-

Tham gia đầy đủ các buổi trainning.
Làm các bài tập thực hành như làm lại các màn hình có sẵn, thêm những logic phức
tạp, …
Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

Kết quả :
-

Hiểu được những khái niệm cơ bản trong lập trình giao diện với UIKit, nắm được
các sử dụng Xcode một cách hiệu quả, cách sử dụng CocoaPods.
Đã làm được một số màn hình có độ phức tạp cao, thêm được các thư viện bên
ngoài (Firebase, GoogleMaps, Alamofire) vào trong ứng dụng demo.

3. Thực hiện project
Sau 3 tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ
bản về Swift, UIKit, iOS. Sau tháng thứ 3, thực tập sinh đã được đưa lên tham gia thực
hiện dự án thực tế.
Chi tiết đồ án sẽ được nói ở phần sau.
4. Lịch làm việc

Tuần

Cơng việc

-

1

-

-

Người hướng dẫn

Mức
độ
hồn
thành

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

Tìm hiểu về cơng
Chị Nguyễn Yến
ty, cách tổ chức của Nhi
công ty.
Làm quen với các
công cụ làm việc
trong công ty.
Học cách trao đổi,
làm việc qua email.
Nguyễn Đức Hiếu



13

Tìm hiểu ngơn ngữ
lập trình Swift nâng
cao
- Thực hành Swift
- Tìm hiểu về
Xcode, UIKit
- Thực hành một số
ứng dụng cơ bản
- Tìm hiểu về iOS
- Thực hành một số
màn hình giao diện
phức tạp.
-

2

3

4 => 8

Ứng dụng thư viện
Gọi API với
Alamofire.
- Mở GoogleMaps
- Xác thực với
Firebase
Giai đoạn 1:
- Làm những task

đơn giản để học
việc.
- Release ứng dụng
lên App Store.
Giao đoạn 2:
- Thêm chức năng
theo yêu cầu khách
hàng.
- Fix bug theo yêu
cầu khách hàng.
- Báo cáo cuối đợt
thực tập.
-

8 => 12

12 => 18

18 =>
Hiện tại

Mentor Thắng

Mentor Tồn, Zed,
Mỹ, Chính

Mentor Long,
Trinh

Mentor Nhật,

Long Trinh

Mentor Sơn

Team iOS

Nguyễn Đức Hiếu


14

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

1. Giới thiệu về project
Ứng dụng FoodApp là ứng dụng đặt đồ ăn online có các chức năng cho 3 phân quyền
chính dành cho cửa hàng, cho user và cho admin quản lí, giúp thống kê doanh thu và tăng
lợi nhuận cho của hàng, ngoài ra tiện lợi và nhanh chóng.
1.1.

Cơng nghệ
Ứng dụng FoodApp sử dụng thư viện UIKit và swift làm giao diện, Firebase làm
backend. Ứng dụng được xây dựng theo mơ hình MVVM một dạng nâng cấp của
MVC. Đồng thời sử dụng Localized làm quản lý ngơn ngữ, sử dụng 2 ngơn ngữ
chính là tiếng anh và tiếng việt

1.2.

Tính năng chính
FoodApp là một ứng dụng cho phép bạn đặt đồ ăn, bằng điện thoại, chuyển tới địa
chỉ người đặt. Đăng kí đăng nhập: App xử cho phép tạo tài khoản bằng nhiều loại

khác nhau, xử dụng firebase Author để xử lý tài khoản, các tài khoản được liên kết
với nhau, một Mail chỉ có thể tạo một tài khoản dù đăng kí đăng nhập bằng mạng
xã hội nào.

Chúng ta đăng nhập và dưới sự phân quyền là người dùng thì màn hình chính của
App là các lựa chọn đặt món ăn theo thể loại, hoặc tìm kiếm món ăn tùy thích
Nguyễn Đức Hiếu


15

Tiến hành đặt các món ăn trên App và được nhà hàng nhận được món ăn giao hàng, tiếp
theo là các bước tiến hành thanh toán

Nguyễn Đức Hiếu


16

Trong các bước thanh tốn này có dùng các coupons giảm giá các sản phẩm, và tiến hành
thanh toán đồ ăn sẽ được chuyển giao tới nơi đã đặt

2. Thực hiện
Phát triển sản phẩm: thực tập sinh Nguyễn Đức Hiếu dưới sự hướng dẫn trực tiếp của
team iOS Developer
Phối hợp với team để nhận bug report và debug.

Nguyễn Đức Hiếu



17

3. Kế hoạch
Thời gian: 3 tháng
Nội dung: Tham gia trực tiếp vào các dự án đang được thực hiện và học hỏi kiến thức thực
tế từ team. Tham gia vào các task và debug.
 Cách các team, bộ phận làm việc với nhau trong một dự án thực tế.
Nắm được trình tự các bộ phận làm việc với nhau theo quy trình thực tế. Được tham
gia vào daily meeting để hiểu them về dự án, báo cáo tiến độ và trao đổi về các nhiệm
vụ cần làm. Và học được cách giải quyết khi có vấn đề xuất hiện trong q trình làm
việc.
 Cách đọc các mơ tả u cầu:
Đọc các yêu cầu mới hoặc bug được bên QA report trên skype mà mình được assign
và giải quyết vấn đề, cập nhật tiến độ.
Thực hiện:
Tham gia các cuộc họp daily meeting để báo cáo tiến độ, hướng giải quyết cũng
như học hỏi những vấn đề liên quan xung quan project.
 Thực hiện nhiệm vụ được giao, và trao đổi với đồng nghiệp các vấn đề liên quan để
đảm bảo đi đúng hướng
 Khi nhận được bug report thì đọc kỹ yêu cầu, reproduce bug để tìm nguyên nhân
và hướng giải quyết. Dựa vào tỉ lệ gặp phải thì có thể dự đoán nguyên nhân và
hướng giải quyết
 Khi nhận task phải báo cáo hướng giải quyết cho người hướng dẫn và thực hiện
nhiệm vụ.
Kết quả :








Biết được cách đọc tài liệu hiệu quả, học các skill mới liên quan tới việc debug và phát
triển ứng dụng.
Hồn thành cơng việc được giao, các task hoàn thành đều được merge vào project và
học hỏi được nhiều từ việc debug.
Hồn thành các cơng việc được giao
Học hỏi thêm nhiều kiến thức quà quy trình làm việc trong một product team thực thụ

Nguyễn Đức Hiếu


18

TÀI LIỆU THAM KHẢO

Swift


UIKit
/>iOS
/> />
Nguyễn Đức Hiếu


19

TỔNG KẾT
Qua q trình thực tập thực tế tại Cơng ty cổ phần gumiVietnam em đã tích lũy cho bản
thân nhiều kinh nghiệm, kỹ năng và cũng cố được kiến thức đã học, nhận thấy đây là cơ hội, là

bước đệm cho con đường phía trước.
Em được trực tiếp làm việc với đội ngũ các anh chị trong công ty nhiệt tình, chịu khó
trong cơng việc. Được đào tạo với đúng chuyên ngành, được thực hiện các công việc dưới sự
chỉ dẫn của anh hướng dẫn; được trực tiếp tham gia, tích lũy kiến thức, kinh nghiệm cho bản
thân.

Nguyễn Đức Hiếu



×