Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Lập trình ứng dụng ios (báo cáo thực tập)...

Tài liệu Lập trình ứng dụng ios (báo cáo thực tập)

.PDF
22
1
71

Mô tả:

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 : GUMI Việt Nam Người phụ trách : Lê Khánh Sơn Thực tập sinh : Võ Minh Đôn TP. Hồ Chí Minh, tháng 6 năm 2022 Võ Minh Đôn LỜI MỞ ĐẦU Ngày nay, ngành công nghiệp ứng dụng di động nói chung và lập trình ứng dụng trên nền tảng iOS nói riêng là một bộ phận không thể thiếu của ngành công nghiệp phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ, ngành lập trình ứ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. Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ. Ngành công nghiệp phát triển ứng dụng trên nền tảng iOS tại Việt Nam đã và đang phát triển mạnh mẽ dựa trên nhu cầu sử dụng các thiết bị của Apple của người Việt ngày càng gia tăng. Người Việt ta rất chuộng iPhone bởi vì tính dễ dùng, mượt mà và thể hiện đẳng cấp. Hơn nữa, người dùng iPhone sẽ có xu hướng sử dụng các ứng dụng trả phí do sự quản lý ứng dụng chặt chẽ trên Appstore của Apple và việc hệ điều hành iOS hạn chế việc cài đặt ứng dụng không rõ từ nguồn bên ngoài. Ngành lập trình ứng dụng iOS được sinh ra là do nhu cầu sử dụng các ứng dụng để phục vụ công việc và giải trí trên thiết bị iPhone. Và giới trẻ sẽ là nguồn nhân lực quan trọng cho việc phát triển của ngà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 chuyên nghiệp, em có dự định là sẽ thực tập trong hè. Vì vậy, em quyết định chọn Gumi Việt Nam - một môi trường lý tưởng, thân thiện, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này. Võ Minh Đôn LỜI CẢM ƠN Trân trọng gửi lời cảm ơn Công ty Gumi Việt Nam đã 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 một ứ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 Lê Khánh Sơn, đã training về Swift và 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 chị Mã Hồng Yến Linh, đã training về nội quy công ty, hỗ trợ em rất nhiều về các vấn đề về thực tập; cảm ơn chị Trần Thị Mỹ Hạnh đã chỉ dẫn em về cách làm báo cáo, lên kế hoạch, những kỹ năng không thể thiếu; cảm ơn các anh Lý Thành Long, anh Nguyễn Hoàng Nhật, anh Thạch Kỳ Sanh và anh Vũ Đình Thuận đã kiểm tra kiến thức, training thêm cho em những điểm còn thiếu sót 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. Võ Minh Đôn Thành phố Hồ Chí Minh, ngày 10 tháng 6 năm 2022 Võ Minh Đôn NHẬN XÉT CỦA KHOA ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... ......................................................................................................................................................... Võ Minh Đôn MỤC LỤC Table of Contents Chương 1: Giới thiêu công ty thực tập ..........................................................................................6 1. Giới thiệu công ty Gumi Việt Nam .....................................................................................6 2. Cơ cấu tổ chức.....................................................................................................................7 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 nghê làm việc ...............................................................................................8 2.2. Tìm hiểu ngôn ngữ Swift ..............................................................................................8 2.3. Lập trình ứng dụng iOS với Swift và UIKit .................................................................9 3. Thực hiện project ..............................................................................................................10 4. Lịch làm việc .....................................................................................................................10 Chương 3: Chi tiết về project .......................................................................................................14 1. Giới thiệu về project Nenga ..............................................................................................14 1.1. Công nghệ sử dụng ....................................................................................................14 1.2. Các tính năng chính ...................................................................................................14 1.3. Thực hiện ...................................................................................................................17 1.4. Kế hoạch ....................................................................................................................17 2. Giới thiệu về project ShimaumaPrint ................................................................................17 2.1. Công nghệ sử dụng ....................................................................................................17 2.2. Các tính năng chính ...................................................................................................18 2.3. Thực hiện ...................................................................................................................20 2.4. Kế hoạch ....................................................................................................................20 TÀI LIỆU THAM KHẢO ..............................................................................................................21 Võ Minh Đôn Chương 1: Giới thiêu công ty thực tập 1. Giới thiệu công ty Gumi Việt Nam Được thành lập vào năm 2012. Gumi Việt Nam là công ty công nghệ thông tin có vốn đầu tư 100% đến từ Nhật Bản, là một công ty Outsource chuyên phát triển các website và ứng dụng cho di động SmartPhone, ngoài ra còn cung cấp các dịch vụ được tạo ra trên nền tảng VR/AR Số năm kinh nghiệp trong lĩnh vực bán hàng dịch vụ: 8 năm Chiến lược phát triển: - Tầm nhìn: Gumi 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, các sản phẩm công nghệ có tính sáng tạo, tính ứng dụng cao nhằm thúc đẩy hoạt động kinh doanh phát triển hiệu quả. - 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 phong cách làm việc chuyên nghiệp. Luôn đảm bảo tính chính xác, kịp thời của dự án. Ngoài ra Gumi Việt Nam luôn tiên phong trong các xu hướng công nghệ mới góp phần vào sự nghiệp công nghiệp hoá, hiện đại hoá đất nước trong quá trình hội nhập với nền kinh tế thế giới. Chính sách chất lượng: - Luôn cung cấp 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ả như đã thoả 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 Võ Minh Đôn phương thức quản lý hiệu quả, chuyên nghiệp, tiên tiến nhất nhằm đám ứng yêu cầu của khách hàng, đối tác. 2. Cơ cấu tổ chức Gumi Việt Nam là sự kết hợp giữa sức trẻ, tri thức và đội ngũ các quản lý gồm nhiều kỹ sư công nghệ thông tin được đào tạo bài bản từ các trường học danh tiếng trong nước và nước ngoài, 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: Shogo Harada - General Manager: Phạm Quí Toàn - Administrative Manager: Bùi Huyền My - Các bộ phận Marketing, hỗ trợ khách hàng, bộ phận phát triển ứng dụng. Võ Minh Đôn 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 ứng dụng di động trên nền tảng iOS và tham gia dự án thực tế dưới sự hướng dẫn của mentor, đồ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 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ủa cô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 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 Gumi Việt Nam, 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 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 nghê 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ư Slack – công cụ sử dụng trong làm việc nhóm, Nulab backlog – công cụ sử dụng để quản lý tiến độ công việc, Xcode – môi trường phát triển tích hợp để lập trình ứng dụng iOS, Sourcetree – công cụ để quản lý mã nguồn. Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên. Kết quả : Hiểu rõ được các công cụ sẽ được sử dụng, dễ dàng kết hợp các công cụ với nhau để tạo ra luồng xử lý công việc hiệu quả. 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 lập trình bằng ngôn ngữ Swift, những kiến thức quan trọng cho việc tối ưu trên iOS. Võ Minh Đôn - - - 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. Các ứng dụng nâng cao với ngôn ngữ Swift. Optional : Swift là một trong những ngôn ngữ an toàn nhất trong lập trình, nắm được optional và unwrap optional sẽ tối ưu được hệ thống và tránh được nhiều lỗi phát sinh trong quá trình chạy ứng dụng. 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 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ả : - 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 ứng dụng di động sau này. Ngoà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. Lập trình ứng dụng iOS với Swift và UIKit Nội dung: Các kiến thức về UIKit, sử dụng các thư viện bên thứ 3 từ Cocoapods, Swiftpackage manager, Carthage, cách sử dụng Xcode để có thể tạo ra một ứng dụng iOS. - Kiến thức về UIKit. Hiện nay UIKit và SwiftUI là 2 thư viện chính để lập trình giao diện iOS tuy nhiên cho đến hiện tại SwiftUI vẫn chưa được sử dụng phổ biến và còn đang dần được cải thiện nên có rất ít dự án thực tế sử dụng thư viện này. Nắm được phương pháp sử dụng UIKit giúp người lập trình hiểu được cấu trúc xây dựng giao diện của thư viện, các thành phần cấu thành giao diện cơ bản của một màn hình. - Cocoapods, Swiftpackage manager, Carthage: Võ Minh Đôn Đây là các công cụ quản lý thư viện từ bên thứ 3 được thêm vào Xcode được sử dụng phổ biến của các lập trình viên iOS. - Realm, Core data Đây là những hệ quản trị cơ sở dữ liệu thường dùng trong các ứng dụng iOS được sử dụng để lưu trữ dữ liệu trên di động. Thực hiện : - - Tham gia đầy đủ các buổi trainning. Làm các bài tập thực hành xây dựng giao diện của một số màn hình trong dự án có sẵn, lập trình logic cho những xử lý liên quan đến giao diện, lưu trữ dữ liệu và quản lý mã nguồn bằng Sourcetree… 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 ứng dụng iOS, cách sử dụng thư viện UIKit, Cocoapods, Realm, Xcode, Sourcetree. Đã hoàn thành được một số màn hình có độ phức tạp cao, sử dụng các thư viện của bên thứ 3 như Firebase, Alamofire, SDProgressHud, Kingfisher vào trong ứng dụng... 3. Thực hiện project Sau 3 tháng được training và làm bài tập thực hành, thực tập sinh đã nắm vững được những kiến thức về iOS. Sau tháng thứ 3, thực tập sinh được tiếp cận với dự án thực tế dưới sự hướng dẫn của mentor. 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 độ hoà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 Thị ty, cách tổ chức của Mỹ Hạnh, Chị Mã công ty, nội quy Hồng Yến Linh công ty Làm quen với các Võ Minh Đôn - 2 - công cụ làm việc trong công ty. Học cách trao đổi, làm việc qua email. Tìm hiểu ngôn ngữ Anh Nguyễn lập trình Swift Hoàng Nhật Tìm hiểu về Xcode Tìm hiểu về Coding convention Dùng ngôn ngữ Swift làm các bài tập cơ bản - Tìm hiểu về UIKit Anh Lê Khánh Sơn - Tìm hiểu về iOS architecture - Tìm hiểu về quản lý Library trong ứng dụng - Xây dựng một số màn hình đơn giản 3 - 4 - - 5 - Tìm hiểu về json, Anh Lê Khánh Sơn cách đọc và gửi dữ liệu json, Tìm hiểu về GCD Tìm hiểu về Delegate và Singleton pattern Đọc dữ liệu json từ api và hiển thị trong ứng dụng Tìm hiều về Realm, Anh Lê Khánh Sơn Core Data, User Default Tìm hiểu về các thư viện bên thứ 3 hay được sử dụng như Firebase, Alamofire Lưu trữ dữ liệu trên ứng dụng và sử Võ Minh Đôn dụng Alamofire để gửi request 6 => 9 Anh Lý Thành Giai đoạn Trainee: Long, anh Vũ Đình - Tiếp tục tìm hiểu về Thuận, anh Lê UIKit và xây dựng Khánh Sơn một số màn hình phức tạp giống như trong dự án - Sử dụng Sourcetree, git flow để quản lý mã nguồn. - Xây dựng tính năng đa ngôn ngữ - Cải thiện ứng dụng từ các đóng góp từ mentor - - 10=>12 - 12=>20 Anh Lý Thành Sử dụng thư viện Long, anh Lê Alamofire để gọi Khánh Sơn, anh api Vũ Đình Thuận Lưu dữ liệu đã lấy xuống cơ sở dữ liệu Realm Sử dụng Firebase Crashlytics để quản lý quản lý các báo cáo về crash ứng dụng theo thời gian thực Cải thiện ứng dụng từ các đóng góp của mentor Giai đoạn Fresher: Anh Lê Khánh Sơn - Làm task trong dự án dưới dự quản lý của mentor. - Trau dồi thêm kiến thức về iOS - Bảo cáo cuối đợt Võ Minh Đôn thực tập Hiện tại Giai đoạn Staff: Anh Lý - Xây dựng, quản lý, Long bảo trì dự án dưới sự quản lý của Leader Thành Võ Minh Đôn Chương 3: Chi tiết về project 1. Giới thiệu về project Nenga Project trong giai đoạn trainee: Nenga là một ứng dụng thiết kế và đặt mua các loại thiệp khác nhau trên ứng dụng di động. Từ những bức ảnh của bản thân được lưu trong thư viện kết hợp với các loại template mẫu, sticker, các kí tự, lời chúc có sẵn…Ta sẽ tạo ra được một tấm thiệp theo ý thích và đặt mua chúng. 1.1. Công nghệ sử dụng Để thực hiện project này em chọn những công nghệ cho từng mục đích sử dụng như sau: o Sử dụng UIKit và Swift để thiết kế giao diện và logic o Sử dụng mô hình MVVM làm kiến trúc ứng dụng o Sử dụng Cocoapods làm công cụ quản lý thư viện bên thứ 3 o Sử dụng thư viện Alamofire để xử lý request, SDProgressHUD để làm màn hình loading o Sử dụng Realm làm Database o Sử dụng Localization để quản lý đa ngôn ngữ 1.2. Các tính năng chính Màn hình home, màn hình chọn thiệp: Là một ứng dụng thiết kế thiệp, ở màn hình home sẽ hiển thị các loại danh mục thiệp để người dùng lựa chọn như thiệp cho trẻ em, cho đám cưới, đám tang…Sau khi chọn danh mục thiệp sẽ điều hướng đến màn hình chọn thiệp, người dùng có thể lưu những tấm thiệp mà mình yêu thích. Võ Minh Đôn Màn hình thiết kế tấm thiệp: Sẽ có 4 màn hình tương ứng với những tuỳ chỉnh mà ta có thực hiện với tấm thiệp như thêm ảnh từ thư viện vào thiệp, thêm lời chúc, stickers, đổi font chữ… Màn hình chọn ảnh từ thư viện cho thiệp, chọn stick dán vào thiệp: Võ Minh Đôn Ở màn hình này người dùng sẽ chọn ảnh từ ứng dụng Photos của di động để dùng trong tấm thiệp và chọn Stickers để dán lên thiệp đồng thời cũng lưu lại những Sticker đã chọn vào Database. Quản lý đa ngôn ngữ: Võ Minh Đôn Trong ứng dụng có 3 ngôn ngữ là tiếng Việt, tiếng Nhật và tiếng Anh. Tuỳ thuộc vào ngôn ngữ của điện thoại mà ứng dụng sẽ hiển thị ngôn ngữ phù hợp. 1.3. Thực hiện Được thực hiện bởi thực tập sinh Võ Minh Đôn dưới sự hướng dẫn chính của Mentor Lê Khánh Sơn cùng với các thành viên khác của team mobile. 1.4. Kế hoạch Thời gian: 2 tháng Nội dung: Từ dự án Nenga xây dựng ứng dụng mô phỏng theo những chức năng của ứng dụng sẵn có, theo dõi các task và học hỏi từ dự án này về công nghệ, đọc hiểu yêu cầu từ khách hàng cũng như cách các thành viên khác làm việc và giúp đỡ lẫn nhau. Kết quả: o Hoàn thành hầu hết những yêu cầu được đặt ra từ mentor o Có tích hợp đa ngôn ngữ cái mà ứng dụng gốc không có o Hiểu được cách thức làm việc của các member trong dự án 2. Giới thiệu về project ShimaumaPrint Project trong giai đoạn fresher: ShimaumaPrint là ứng dụng cho phép người dùng sử dụng ảnh của bản chỉnh sửa và đặt mua ảnh theo nhu cầu, với các chức năng chính như chọn size giấy in, loại giấy in, chỉnh sửa ảnh, in ảnh có mốc thời gian... 2.1. Công nghệ sử dụng Các công nghệ được sử dụng trong dự án: o Sử dụng UIKit và RxSwift để thiết kế giao diện và logic o Sử dụng mô hình MVVM kết hợp Clean Architecture làm kiến trúc ứng dụng o Sử dụng Cocoapods làm công cụ quản lý thư viện bên thứ 3 o Sử dụng thư viện Alamofire để xử lý request, Firebase để quản lý báo cáo crash và log event, Kingfisher để thao tác với ảnh, Quick & Nimble để test… Võ Minh Đôn o Sử dụng Realm làm Database 2.2. Các tính năng chính Màn hình đăng nhập, đăng kí, chọn size giấy: Ở màn hình này người dùng sẽ đăng nhập hoặc đăng kí tài khoản sau đó có thể bắt đầu chọn size giấy để tạo ảnh. Màn hình chọn ảnh, chỉnh sửa ảnh: Ở màn hình này người dùng sẽ chọn những tấm ảnh đã có sẵn ở thư viện, tuỳ chỉnh chế độ in, khung ảnh và cắt ảnh tuỳ ý. Võ Minh Đôn Màn hình chọn bìa giấy, màn hình order: Võ Minh Đôn Ở màn hình chọn bìa người dùng có thể chọn mẫu bìa giấy phù hợp tương ứng với giá tiền và có thể tuỳ chọn tính năng tối ưu màu sắc cho ảnh sau đó đi đến màn hình đặt hàng và tiến hành thanh toán. 2.3. Thực hiện Được thực hiện bởi các thành viên của team D2C cùng các thành viên khác ở Nhật Bản: o Leader: Lý Thành Long o IT comtor Leader: Trần Phan Thanh Phương o Nguyễn Hoàng Nhật: (Senior iOS Developer) o Lê Khánh Sơn (Middle iOS Developer) o Vũ Đình Thuận (Junior iOS Developer) o Lê Duy Khang (Intern iOS Developer) o Võ Minh Đôn (Intern iOS Developer) 2.4. Kế hoạch Thời gian: Từ tháng 12 đến nay Nội dung: Tham gia trực tiếp vào dự án và làm task dưới sự hướng dẫn của mentor, tuân thủ kỷ luật, chủ động giao tiếp với các thành viên khác trong công việc, học hỏi và chia sẻ kiến thức với các thành viên khác, sửa lỗi hay tính năng theo yêu cầu của khách hàng và hiểu rõ quy trình làm việc. Kết quả: o Hiểu rõ quy trình làm việc và giao tiếp với các thành viên khác o Nắm chắc được công cụ và kiến thức sử dụng o Hoàn thành tốt các công việc được giao o Đọc hiểu các yêu cầu của khách hàng dễ dàng Võ Minh Đôn
- Xem thêm -

Tài liệu liên quan