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

báo cáo thực tập lập trình ứng dụng 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 (722.03 KB, 22 trang )

1

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 IOS
Cơng ty thực tập

: Công ty TNHH Chợ Tốt

Người phụ trách

: Nguyễn Đức Thành

Thực tập sinh

: Phạm Quang Vinh

TP. Hồ Chí Minh, tháng 7 năm 2020

Phạm Quang Vinh


2

Table of Contents
LỜI MỞ ĐẦU ........................................................................................................................................... 3
LỜI CẢM ƠN ........................................................................................................................................... 4
NHẬN XÉT CỦA KHOA ........................................................................................................................ 5


CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP ............................................................................ 6
1.

Giới thiệu công ty Chotot ............................................................................................................. 6

2.

Sản phẩm của công ty .................................................................................................................. 7

CHƯƠNG 2: NỘI DUNG THỰC TẬP .................................................................................................. 9
1.

Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty ............................................................. 9

2.

Nghiên cứu kỹ thuật ..................................................................................................................... 9
2.1.
Các cơng cụ làm việc ............................................................................................................ 9
2.2.
Tìm hiểu ngơn ngữ Swift cơ bản và nâng cao .................................................................. 10
2.3.
Tìm hiểu mơ hình làm việc Agile ...................................................................................... 11
2.4.
Lập trình trên iOS .............................................................................................................. 13

3.

Thực hiện project ....................................................................................................................... 14


4.

Lịch làm việc ............................................................................................................................... 14

CHƯƠNG 3: CHI TIẾT VỀ PROJECT CHÍNH ĐÃ LÀM .............................................................. 17
1.

UI dự đốn giá xe........................................................................................................................ 17

2.

Bảo trì UI và điều hướng trong phần mua bán bất động sản ................................................ 18

CHƯƠNG 4: TỔNG KẾT ..................................................................................................................... 20
1.

Kiến thức ..................................................................................................................................... 20

2.

Kỹ năng ....................................................................................................................................... 20

3.

Đóng góp cơng ty ........................................................................................................................ 20

TÀI LIỆU THAM KHẢO ..................................................................................................................... 22

Phạm Quang Vinh



3

LỜI MỞ ĐẦU
Ngày nay, sự phát triển của công nghệ thông tin đã kéo theo sự phát triển của ngành
thương mại điện tử. Sự phát triển ấy giúp việc mua bán, trao đổi hàng hoá trở nên thuận tiện và
dễ dàng hơn bao giờ hết.
Có rất nhiều ứng dụng lớn hiện nay trên thị trường phát triển mạnh trong ngành thương
mại điện tử như Tiki, Sendo, Lazada, GetIt,…Và một trong số đó là ứng dụng Chợ Tốt, một
cơng ty thương mại điện tử đã và đang phát triển mạnh mẽ với mơ hình C2C (Customer to
Customer) với lượng truy cập cao nhất hiện nay.
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 việc trong một môi trường chun nghiệp. Vì vậy, em quyết định chọn
Cơng ty TNHH Chợ Tốt – một trong những đơn vị tiên phong trong mơ hình kinh doanh thương
mại C2C, có nên tảng vận hành và phát triển gần 10 năm.

Phạm Quang Vinh


4

LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến quý thầy/cô khoa Công Nghệ Phần
Mềm - Trường Đại học Công Nghệ Thông Tin – Đại học Quốc gia Thành phố Hồ Chí Minh đã
tận tình chỉ dạy, trang bị cho em những kiến thức và kỹ năng cần thiết trong suốt quá trình học
tập tại trường.
Trân trọng gửi lời cảm ơn Công ty TNHH Chợ Tốt đã tạo điều kiện cho em được học tập
và phát triển trong môi trường đầy năng động và bổ ích như vậy.
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của các anh chị, em đã
tiếp thu được những kiến thức rất quan trọng về ngành nghề lập trình, cách làm việc nhanh

chóng và hiệu quả. Chân thành cảm ơn các anh đã bỏ ra nhiều thời gian, cơng sức để hướng dẫn
em hồn thành đợt thực tập này.
Phạm Quang Vinh
Tp. HCM, ngày 25 tháng 07 năm 2020

Phạm Quang Vinh


5

NHẬN XÉT CỦA KHOA

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


Phạm Quang Vinh


6

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1. Giới thiệu công ty Chotot
Được thành lập vào năm 2012, Chotot.com là trang web phân loại trực tuyến hàng
đầu tại Việt Nam với hơn 500 triệu lượt xem trang hàng tháng. Sứ mạnh công ty là
“Empower Vietnamese daily lives with smart platforms” – Nâng cao cuộc sống của
người Việt với những nền tảng thơng minh.
Với phương châm “Muốn là có” (“A Way to Your Wants”), Chotot.com cung cấp
một thị trường trực tuyến hiệu quả cho người Việt Nam để mua và bán các loại sản
phẩm một cách dễ dàng. Các danh mục phổ biến trên Chotot.com bao gồm từ thiết bị
điện tử, phương tiện, tài sản đến công việc, dịch vụ và vật dụng cá nhân.
Tại Cho Tot, bạn sẽ là một phần của đội ngũ trẻ và năng động của chúng tơi trong
một mơi trường nhanh chóng và u thích vui vẻ. Bạn sẽ nhận được cơ hội để thể
hiện kỹ năng của mình và phát triển sự nghiệp của bạn lên tầm cao hơn.
Cho Tot cung cấp mức lương cạnh tranh và lợi ích đầy đủ. Quan trọng hơn, văn
hố cơng ty làm việc như một gia đình trong cơng ty để hỗ trợ nhau học hỏi, phát
triển và đắm mình trong những trải nghiệm mới mỗi ngày. Mỗi thành viên trong gia

Phạm Quang Vinh


7

đình sẽ ở đó cùng nhau trên con đường đam mê để cung cấp trang web phân loại trực

tuyến tốt nhất để phục vụ người Việt Nam.
Cho Tot là một phần của Carousell, một trong những nền tảng thị trường phát
triển nhanh nhất và lớn nhất thế giới ở Đông Nam Á. Ra mắt vào tháng 8 năm 2012,
Carousell bắt đầu tại Singapore và hiện đã có mặt tại tám thị trường dưới các thương
hiệu Carousell, Mudah, Cho Tot và OneKyat. Carousell được hỗ trợ bởi Tập đoàn
Telenor, Rakuten Ventures, Sequoia Ấn Độ và Naspers.
2. Sản phẩm của công ty
Sản phẩm công ty bao gồm Website chotot.com và ứng dụng trên di động cả trên
hai nền tảng Android và iOS. Cung cấp những chức năng như đăng tin, nhận tin, tìm
kiếm và lọc tin bán hàng. Đồng thời ứng dụng cũng cung cấp các chức năng giúp
người mua và người bán nhanh chóng có kết quả hơn như Dự đốn giá xe, Đẩy tin,
Theo dõi từ khoá,…

Phạm Quang Vinh


8

Phạm Quang Vinh


9

CHƯƠNG 2: NỘI DUNG THỰC TẬP
Đợt thực tập cung cấp cho sinh viên kỹ năng cứng về lập trình iOS cũng như quy trình
làm việc để phát triển sản phẩm ChoTot, đồ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 ứng dụng và vận hành một sản phẩm một cách 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, 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 ChoTot, q trình thành lập và phát triển, cơ cấu cơng ty.
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, supervisor đã 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ư
Confluence - sử dụng trong làm việc nhóm, GitKraken – trình duyệt Git Client trực

Phạm Quang Vinh


10

quan với nhiều tiện ích, Xcode – IDE để phát triển các ứng dùng iOS, Sketch – Phần
mêm thiết kế giao diện cho cả iOS, Android và Website.
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.
2.2.

Tìm hiểu ngôn ngữ Swift cơ bản và nâng cao

Thời gian : 15 ngày (3 tuần)
Nội dung : Được training về các kỹ thuật Swift cơ bảng 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. Ngồi ra, thực tập sinh
cịn được hướng dẫn về cách thiết kế lớp giao diện trong lập trình iOS.

-

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 ứng dụng
iOS, các vấn đề phổ biển trong quản lí bộ nhớ như Reference Recycle,
Weak/strong variable, Closure capture,…

-

Apple SDK - UIKit
Thực tập sinh chủ động tìm hiểu các UI Component cơ bản và phổ biến trong lập
trình iOS, đồng thời thực hành, tuỳ chỉnh các Component để tạo UI như mong
muốn.


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 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 iOS sau này.

Phạm Quang Vinh


11

-

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.

2.3.


Tìm hiểu mơ hình làm việc Agile

Nội dung: Các kiến thức cơ bản về quy trình làm việc Agile
-

Khái niệm cơ bản về Agile.
Agile là một phương pháp phát triển phần mềm linh hoạt, là một hướng tiếp cận

cụ thể cho việc quản lý dự án phần mềm. Nó gồm một q trình làm việc tương tác và
tích hợp để có thể đưa sản phẩm đến tay người dùng càng nhanh càng tốt.
Những phương pháp phát triển phần mềm theo cách truyền thống ngày càng bộc
lộ nhiều nhược điểm và tỷ lệ các dự án thất bại cao trong thời kỳ bùng phát của ngành
công nghệ. Nhận ra vấn đề đó, một số cá nhân và cơng ty riêng lẻ đã đưa ra các
phương pháp phát triển phần mềm hiện đại hơn và khác nhau để thích ứng với tình
hình mới.
-

Các tuyên ngôn của Agile
+ Cá nhân và sự tương tác hơn là quy trình và cơng cụ
Đặt trọng tâm vào con người và sự tương hỗ giữa những thành viên trong
team. Nếu dự án có những thành viên có năng lực, chịu làm việc cùng nhau thì sẽ
mang đến thành công cho dự án.
+ Phần mềm chạy tốt hơn là tài liệu đầy đủ
Trong một số quy trình phát triển phần mềm, việc tạo ra và cập nhật các tài
liệu về sản phẩm là bắt buộc. Nhóm lập trình không thể hoặc không đồng ý tiến
hành công việc nếu khơng có tài liệu đặc tả về u cầu, thiết kế hệ thống.
Nhóm kiểm thử thì u cầu tài liệu về sản phẩm để có thể viết trường hợp
kiểm thử và kiểm thử được. Nhóm QA địi tất cả các tài liệu phải được viết trước
Phạm Quang Vinh



12

khi sản phẩm được giao cho khách hàng nếu không thì khơng đủ điều kiện, chuẩn
để giao sản phẩm cho khách hàng.Việc viết tài liệu thật ra rất mất nhiều thời gian
và được cho là rất chán. Ý tưởng ở đây là tại sao mình phải tập trung quá nhiều
cho việc khơng cần thiết mà khơng dành thời gian đó để trao đổi để hiểu thêm về
công việc phải làm. Sau đó đúc kết và chỉ viết những gì mà mọi người cần đọc.
+ Cộng tác với khách hàng hơn là đàm phán hợp đồng
Ta luôn nghe các câu này “Khách hàng là thượng đế” hay “khách hàng
luôn luôn đúng”. Tuy nhiên thì khách hàng có nhiều dạng. Cách duy nhất để có
thể làm việc tốt là phải cộng tác với khách hàng để hiểu được khách hàng muốn gì
và cần gì để có thể tư vấn và điều chỉnh thay vì chỉ dựa vào những điều đã quy
định trong hợp đồng.
Trao đổi và thảo luận với khách hàng về sự cần thiết có hay khơng của một
chức năng trong sản phẩm, từ đó quyết định là có nên làm hay khơng. Tất nhiên
để thuyết phục khách hàng thì cần có số liệu nghiên cứu cụ thể chẳng hạn.
+ Phản hồi với sự thay đổi hơn là bám theo kế hoạch
Có một điểm chung là hầu hết những dự án đều có sự thay đổi điều chỉnh
khi triển khai. Sự thay đổi đó có thể là thay đổi về requirements, thay đổi tech
stack, thay đổi nhân sự, thay đổi deadline, thay đổi phương thức làm việc… mặc
dù kế hoạch đã được định ra rõ ràng từ đầu.
Agile khơng khuyến khích cho sự thay đổi nhưng khuyến khích chúng ta
tập thích nghi với thay đổi.
Một trong các nguyên tắc cơ bản của agile là “phần mềm chạy tốt chính là
thước đo của tiến độ”. Nguyên tắc này giúp nhóm dám loại bỏ đi các công việc dư
thừa không trực tiếp mang lại giá trị cho sản phẩm.
Thực hiện :


Phạm Quang Vinh


13

-

Tham gia đầy đủ các buổi trainning.

-

Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.

Kết quả :
-

Hiểu được quy trình làm việc Agile.

-

Tham gia dự án đang được quản lí với quy trình làm việc Agile.

2.4.

Lập trình trên iOS

Nội dung : Các kỹ thuật tạo ra một ứng dụng cơ bản trong iOS, sử dụng Framework
cho iOS để tối ưu hiệu năng cũng như thời gian lập trình: Alamofire, SnapKit,…
-


Định nghĩa về iOS:
iOS (trước đây là iPhone OS) là hệ điều hành trên các thiết bị di động của Apple.
Đây là hệ điều hành chạy trên các sản phẩm iPhone, iPad, và iPod Touch và là hệ
điều hành phổ biến thứ 2 trên toàn cầu, sau Android của Google.

-

Tạo ứng dụng Android:
Được các trainner hướng dẫn tạo ra một ứng dụng cơ bản, cấu hình quyền truy cập
cho iOS, cách sử dụng các công cụ để biên dịch, chạy iOS trên máy ảo trên
Macbook.

-

Kiểm tra và đo hiệu suất của ứng dụng:
Sử dụng phần mềm Xcode để Debug, xem thơng số, hiệu năng của ứng dụng để
tìm lỗi về rò rỉ bộ nhớ, UI bị giật, lag…

Thực hiện :
-

Tham gia đầy đủ các buổi training.

-

Tạo ra những ứng dụng Demo cơ bản, thuyết trình về ứng dụng.

Phạm Quang Vinh



14

-

Sau khi nắm vững các kiến thức về Swift cũng như lập trình iOS, thực tập viên
đừng vào project iOS để tham gia phát triển ứng dụng Chợ Tốt iOS.

Kết quả: Đã có thể tạo ra những ứng dụng sử dụng ngôn ngữ Swift và Apple SDK.
3. Thực hiện project
Sau một tháng rưỡi đượ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, iOS. Trong thời gian tiếp theo, supervisor sẽ hướng dẫn trực tiếp
tham gia vào project của công ty.
4. Lịch làm việc
Mức
Tuần

Cơng việc

Người hướng dẫn

độ

Nhận xét của người

hồn

hướng dẫn

thành
-


Tìm hiểu về công Anh Nguyễn Đức
ty, cách tổ chức của Thành
công ty.

-

Làm quen với các
công cụ làm việc

1-6

trong công ty.
-

Học cách trao đổi,
làm việc qua email.

-

Quy trình làm việc
với Agile.

-

Tìm hiểu ngơn ngữ Anh Nguyễn Nhu
lập trình Swift cơ

7


bản và nâng cao
-

Thực hành Swift.

Phạm Quang Vinh


15

-

Tìm hiểu về iOS Anh Nguyễn Nhu
SDK.

7

-

Thực hành custom
một số UI cơ bản
và nâng cao.

-

Tìm hiểu về các Anh Nguyễn Nhu
Framework sử dụng
trong việc phát triển

8


iOS.
-

Tạo ứng dụng từ
các framework đã
tìm hiểu.

-

Tham

gia

project Anh Nguyễn Nhu

iOS của cơng ty, vận
hành và phát triển
ứng dụng ChoTot
iOS.
-

Tham gia vào team
với vai trò Fresher,
nhận task và quản lí

9 – Cịn

task


lại

thơng

qua

Confluence.
-

Bảo trì các chức
năng cũ.

-

Release chức năng
dự đoán giá xe.

-

Release chức năng
điều hướng trong
ứng dụng phần mua

Phạm Quang Vinh


16

nhà, dự án.


Phạm Quang Vinh


17

CHƯƠNG 3: CHI TIẾT VỀ PROJECT CHÍNH ĐÃ LÀM
1. UI dự đốn giá xe
u cầu: Lập trình giao diện dự đoán giá xe theo design từ Sketch, tối ưu việc gọi API và
hiển thị UI để tránh hiện tượng giật, lag.

Kết quả:

Phạm Quang Vinh


18

-

Giao diện được thực hiện đúng yêu cầu với Animation và tương thích trên nhiều
loại size màn hình khác nhau.

-

Hồn thành cơng việc đúng hạn.

2. Bảo trì UI và điều hướng trong phần mua bán bất động sản
Yêu cầu: Lập trình giao diện, các nút để xem thơng tin bất động sản (dự án) theo design
có sẵn từ Sketch. Thêm các chức năng điều hướng trong phần xem tin dự án, bất động
sản và một số UI mới.


Kết quả:
- UI thể hiện đúng yêu cầu theo design.
Phạm Quang Vinh


19

- Cơng việc được hồn thành đúng hạn.

Phạm Quang Vinh


20

CHƯƠNG 4: TỔNG KẾT
Cho dù chỉ thực tập trong thời gian 6 tháng nhưng em đã tích lũy nhiều kiến thức bổ ích,
được tiếp xúc, làm việc trong mơi trường công ty khắc hẳn với môi trường học tập. Học được
nhiều điều hay, những kinh nghiệm quý giá mà những người đi trước truyền lại. Làm quen được
nhiều anh chị, nhiều bạn mới, những người rất đáng để học hỏi. Giúp cải thiện bản thân ở nhiều
mặt như cách ứng xử, giao tiếp, kỹ năng trong công việc như làm việc nhóm, làm việc có
nguyên tắc, theo nề nếp, quy củ. Đặc biệt là có cơ hội áp dụng những kiến thức được dạy vào
thực tế, biết được những thiếu sót của bản thân từ đó có kế hoạch rèn luyện về kiến thức để
ngày càng hoàn thiện hơn.
Một lần nữa xin được cảm ơn các anh chị ở Chợ Tốt, đặc biệt là anh Nguyễn Đức Thành
– Manager của team và anh Nguyễn Nhu – Mentor đã giúp em có một trải nghiệm học vấn và
làm việc vơ cùng vui và bổ ích như lần này.
1. Kiến thức
-


Có kiến thức về lập trình iOS và ngơn ngữ Swift.

-

Có kinh nghiệp tham gia team sử dụng quy trình làm việc Agile

2. Kỹ năng
- Được trải nghiệm trong một môi trường doanh nghiệp thực tế. - Hiểu được quy trình
làm việc của mơ hình Agile.
- Củng cố và phát triển được nhiều kỹ năng mềm: làm việc với git, kỹ năng làm việc
nhóm và đặt câu hỏi, kỹ năng đọc hiểu yêu cầu khách hàng,... - Mở rộng mối quan hệ
với các anh chị - những người có nhiều kiến thức và kinh nghiệm, cùng các bạn đồng
thực tập để giúp đỡ và học tập.
3. Đóng góp cơng ty
- Đảm bảo được giờ làm việc trên công ty theo quy định.
- Hồn thành các cơng việc được giao đúng tiến độ, báo cáo các vấn đề khi gặp phải.

Phạm Quang Vinh


21

- Release các chức năng cần thiết của ứng dụng, tham gia góp ý, phát triển sản phẩm.

Phạm Quang Vinh


22

TÀI LIỆU THAM KHẢO

iOS: />
Swift: />
Alamofire Framwork: />
Agile: />
Phạm Quang Vinh



×