Để có thể cọ sát với thực tế, làm quen với môi trường doanh nghiệp, bắt kịp xu hướng công nghệ của thị trường, trong thời gian từ tháng 10/2020 đến nay, em đã được làm việc tại công ty
Trang 1TRƯỜ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 DI ĐỘNG
TP Hồ Chí Minh, tháng 1 năm 2021
Trang 2LỜI MỞ ĐẦU
Tại Việt Nam, ngành công nghiệp phần mềm di dộng cũng đã và đang có tốc độ phát triển nhanh chóng và lớn mạnh Có thể thấy rằng, với sự tăng trưởng mạnh mẽ như vậy thì ngàng phần mềm di động là ngành có tiềm năng trong tương lai
Để có thể cọ sát với thực tế, làm quen với môi trường doanh nghiệp, bắt kịp xu hướng công nghệ của thị trường, trong thời gian từ tháng 10/2020 đến nay, em đã được làm việc tại công ty TNHH CÔNG NGHỆ REXBIX, chức vụ lập trình viên di động Với sự hướng dẫn nhiệt tình của các thầy cô khoa Công nghệ phần mềm cũng như sự chỉ bảo nhiệt tình của các anh trong công ty, em đã thu được nhiều kinh nghiệm quý giá, những hiểu biết về nghề nghiệp cũng như công việc sau khi ra trường Qua đợt thực tập này em thấy mình cần phải cố gắng nhiều hơn nữa trong việc học tập, giao lưu học hỏi cũng như hoàn thiện các kĩ năng cần thiết cho bản thân
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn CÔNG TY TNHH CÔNG NGHỆ REXBIX đã 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 các anh trong công ty,
em đã tiếp thu được những kiến thức quan trọng để có thể làm được một ứng dụng di động
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 hoàn thành đợt
thực tập này Đặc biệt cảm ơn anh Nguyễn Minh Dương đã hướng dẫn, giúp đỡ cho em về những quy
trình cần nắm, các kiến thức nền, cách làm việc với các nhóm và cách giải quyết những khó
khăn trong công việc; cảm ơn anh Phạm Xuân Phúc,người hướng dẫn trực tiếp trong giai đoạn tham gia dự án đã hướng dẫn, hỗ trợ em rất nhiều về các kiến thức cụ thể, tận tình chỉ bảo em
các điểm khó, các điểm cần lưu ý và cách giải quyết các vấn đề phát sinh khi là người trực tiếp
đảm nhiệm dự án, và review cho em từng task, từng dòng code; đồng thời cảm ơn các anh trong
team Backend đã chỉ dẫn em về cách giao tiếp với sever, giúp đỡ em về các kiến thức để em có
thể hiểu thêm về dự án mà mình tham gia, và cả những kỹ năng mềm khác mà một nhân viên
trách nhiệm không thể thiếu trong môi trường làm việc của mình; Cảm ơn bạn Phạm Trần Chính là partner trong giai đoạn training đã có nhiều lời khuyên bổ ích trong quá trình thực tập,
góp ý trong giai đoạn em thực tập ở công ty 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 Quang Huy TpHCM, ngày 10 tháng 01 năm 2021
Trang 4NHẬN XÉT CỦA KHOA
Trang 5Nô ̣i dung
Trang 6Chương 1.Giới thiêu công ty thực tập
1 Giới thiệu công ty REXBIX
Công ty TNHH Công nghệ REXBIX là công ty Việt Nam được thành lập vào năm 2016, chuyên kinh doanh và cung cấp các dịch vụ phần mềm
REXBIX có trụ sở đặt tại Tòa Nhà FIMEXCO, 231-233 Lê Thánh Tôn, Phường Bến Thành, Quận 1, Thành Phố Hồ Chí Minh, Việt Nam và văn phòng làm việc tại Quận Tân Bình
1.1 Sản phẩm của công ty
REXBIX cung cấp giải pháp công nghệ phần mềm, bảo trì, triển khai ERP, QA, cho các tập đoàn, đơn vị trong nhiều lĩnh vực như: Bất động sản, Tài chính, Kinh doanh
…
Các đối tác công nghệ như Agora, Freshchat,… với các khách hàng thân thiết như Chung cư Hùng Vương Plaza, Ezugi Gaming…
Hiện tại REXBIX đang tập trung phát triển sản phẩm về hoạt động bất động sản và Đồng tiền điện tử Trong đó có các sản phẩm như PayVin, KingGame, VNRealNET…
Trang 7Chương 2.Nội dung thực tập
Chủ đề “Lập trình Ứng dụng di động với Flutter” 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, đồ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, nghiên cứu và làm việc trong một môi trường phát triển phần mềm chuyên nghiệp
1 Tìm hiểu 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 giới thiệu về công ty, quá trình thành lập và phát triể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, 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 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, thực tập sinh sẽ được hướng dẫn 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ư Asana - sử dụng trong làm việc nhóm, phân chia công việc, Github – quản lý source code, Whatsapp và Discord – kênh trao đổi thông tin chung của công ty ngoài giờ và trong thời gian làm việc tại nhà do ảnh hưởng của covid
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àm quen được các công cụ làm việc, giúp dễ dàng hơn trong công việc
Trang 82.2 Tìm hiểu cách sử dụng Git trong dự án
Thời gian : 1 ngày
Nội dung : Được training về quy trình sử dụng Git
- Các lệnh git thường dùng
- Quy trình làm việc với Git tại công ty
- Cách xử lý các trường hợp không may xảy ra
Thực hiện : Thực hành theo hướng dẫn và đặt câu hỏi
Kết quả :
- Biết cách sử dụng git
- Làm quen với quy trình quản lý source code của công ty
- Biết các quy tắc đặt tên nhánh, đặt tên commit,
2.3 Tìm hiểu ngôn ngữ Dart nâng cao
Thời gian : 5 ngày (1 tuần)
Nội dung: Được training về các kỹ thuật Dart nâng cao, những kiến thức quan trọng cho việc tối ưu trên Android
- Lập trình hướng đối tượng
- Đồng bộ và bất đồng bộ trong ngôn ngữ Dart
- Tìm hiểu về Stream Builder
- Xử dụng graphql để fetch dữ liệ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 kỹ năng lập trình với ngôn ngữ Dart
- Làm quen với code của công ty
- Hoàn thành sản phẩm demo
2.4 Tìm hiểu về Flutter
Thời gian: 5 ngày (1 tuần)
Nội dung: Được training về Flutter framework và những kỹ thuật trong việc tối
ưu code của dự án
Trang 9- Cài đặt môi trường trên máy và chạy giả lập chương trình trên thiết bị Android
- Các khái niệm về Widget của Flutter:
o Tìm hiểu về các widget của Flutter, cách sử dụng Tìm hiểu về cách chia layout và bố cục sắp xếp các widget
- Package và plugin trong Flutter
o Tìm hiểu về các package trong Flutter, cách thêm và sử dụng một package vào dự án
o Custom các package theo nhu cầu của dự án
- Tối ưu hiệu suất của Flutter
o Biết cách làm thế nào để có thể thiết kế 1 ứng dụng Flutter có hiệu suất tốt nhất
o Kiểm soát được các phương thức trong Flutter framework
- Tìm hiểu về Provider Pattern
o Hiểu về Provider Pattern và ý tưởng hoạt động của pattern này
o Hiểu về điểm mạnh và điểm yếu của Provider
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ả :
- Hiểu về Flutter framework
- Có được những kiến thức nền tảng cho việc phát triển ứng dụng di động sau này
2.5 Tham gia vào dự án PayVin
Thời gian: 5 tuần
Trang 10Nội dung: Được tham gia vào dự án PayVin của công ty, hỗ trợ làm những màn
hình đơn giản và sửa lỗi
Thực hiện :
- Nhận task từ người quản lý
- Thực hiện và báo cáo tiến độ hoàn thành task qua Asana
- Thông báo đến người quản lý review và merge code sau khi hoàn thành task
Kết quả :
- Hoàn thành task đúng thời hạn
- Có được những kiến thức quan trọng trong việc phát triển phần mềm của doanh nghiệp
- 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
3 Thực hiện project
Sau 3 tuần đượ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ề Dart, Flutter Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để thực hiện một project ứng dụng di động thực tế của công ty
Thời gian: 5 tuần
Nội dung: Được tham gia vào dự án PayVin của công ty, hỗ trợ làm những màn
hình đơn giản và sửa lỗi
Thực hiện :
- Nhận task từ người quản lý
- Thực hiện và báo cáo tiến độ hoàn thành task qua Asana
- Thông báo đến người quản lý review và merge code sau khi hoàn thành task
Kết quả :
Trang 11- Có được những kiến thức quan trọng trong việc phát triển phần mềm của doanh nghiệp
- 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
4 Lịch làm việc
Mức độ hoàn thành
1
- Tìm hiểu về công ty, cách tổ chức của công ty
- Học cách trao đổi, làm việc qua email
- Làm quen với các công cụ làm việc trong công ty
- Tìm hiểu về git và quy trình quản
lý source code của công ty
Anh Nguyễn Minh Dương
Anh Pham Xuân Phúc
8/10
2
- Tìm hiểu ngôn ngữ Dart
- Tìm hiểu về Flutter framwork
- Làm 1 màn hình demo
Anh Phạm Xuân Phúc 8/10
3
- Tham gia nghe quản lý lên kế hoạch, và họp triển khai dự án
- Code giao diện màn hình đăng nhập, đăng ký số điện thoại
- Hoàn thành chức năng đăng nhập đăng ký số điện thoại
Anh Nguyễn Minh Dương
Anh Trần Văn Công Anh Phạm Xuân Phúc
8/10
5
- Màn hình Trang chủ
- Banner và chuyển tab
- Màn hình setting và giới thiệu app
Anh Pham Xuân Phúc 9/10
6
- Lấy tỉ giá và hiển thị thông tin đồng tiền điện tử
- Làm màn hình lịch sử giao dịch
- Phân trang màn hình lịch sử giao dịch
- Bổ sung hiệu ứng loading và fix lỗi
Anh Phạm Xuân Phúc 9/10
7 - Sửa giao diện và sửa lỗi giao dịch Anh Phạm Xuân Phúc 10/10
Trang 12- Làm màn hình thông tin người dùng
8
- Thiết kế màn hình danh sách thông báo
- Thiết kế màn hình chi tiết thông báo
- Báo cáo cuối đợt thực tập
Anh Phạm Xuân Phúc 10/10
Trang 13Chương 3.Chi tiết về project
1 Giới thiệu về Ứng dụng PayVin
Ứng dụng PayVin do REXBIX phát triển tạo cầu nối đầu tư tiền điện tử cho các nhà đầu tư tài chính
Mục tiêu của ứng dụng:
- Kết nối giữa các nhà đầu tư với phương thức đầu tư vào tiền điện tử (Bitcoin, Etherium, USDT, )
- Giúp các nhà đầu tư theo dõi và dự đoán biến động của thị trường tiền ảo
- Tạo ra lợi nhuận cho bên trung gian cung cấp dịch vụ mua/bán tiền điện tử Nội dung hoạt động:
- Xây dựng Hệ thống mua bán tiền điện tử
- Tạo tài khoản điện tử cho các nhà đầu tư
- Nghiên cứu, theo dõi biến động của thị trường hiện tại và tương lai
Tính năng chính:
- Hỗ trợ nhà đầu tư mua bán tiền điện tử
- Xem biến động của thị trường tiền điện tử
- Nhận các thông báo từ ứng dụng
2 Thực hiện
- Nguyễn Minh Dương (Product Owner)
- Phạm Xuân Phúc (Mobile Developer)
- Nguyễn Quang Huy (Mobile Developer)
- Trần Văn Công (Backend Developer)
- Phạm Trần Chính (Backend Developer)
- Trần Hiệp Nguyên Huy (Frontend Developer)
3 Kế hoạch
Sprint 1: Đăng nhập, Đăng xuất, Đăng ký tài khoản bằng số điện thoại
- Đăng kí bằng xác thực OTP qua số điện thoại
Trang 14- Reset mật khẩu bằng cách nhập OTP qua số điện thoại
- Màn hình lần đầu đăng nhập ứng dụng
- Trang thông tin cá nhân của người dùng
- Đổi mât khẩu người dùng
- Hiển thị banner và danh sách thông tin các đồng tiền điện tử
Kết quả:
- Đăng nhập, đăng ký
- Màn hình giới thiệu app
- Màn hình trang chủ
- Màn hình thông tin người dùng
Sprint 2:
- Màn hình Dashboard của ứng dụng
- Hiển thị điều khoản ứng dụng và chính sách
- Hiển thị số dư của ví
- Hiển thị các phương thức giao dịch hỗ trợ
- Chức năng giới thiệu app
- Sửa lỗi
- Build ứng dụng lên Firebase App Distribution để tester test lỗi
Kết quả: Hoàn thành các chức năng trên
Sprint 3:
- Thực hiện giao dịch nạp
- In bill cho giao dịch nạp
- Thực hiện giao dịch rút
- In bill cho giao dịch rút
- Kiểm tra và cập nhật số dư sau giao dịch
- Thực hiện nhập thông tin tài khoản ngân hàng
- Xóa, sửa tài khoản ngân hàng
- Danh sách tài khoản ngân hàng
- Hỗ trợ tiếng Anh
- Đăng xuất tài khoản
- Sửa lỗi
Trang 15Sprint 4:
- Thực hiện giao dịch mua
- In bill cho giao dịch mua
- Thực hiện giao dịch bán
- In bill cho giao dịch bán
- Hiển thị phí giao dịch
- Các precheck dữ liệu để điều hướng người dùng sử dụng và nhập dữ liệu Kết quả: Hoàn thành chức năng về mua bán
Sprint 5:
- Hiển thị lịch sử thông báo
- Hiển thị nội dung thông báo
- Tích hợp FCM để nhận thông báo trên điện thoại
- Sửa lỗi và hoàn thiện app
- Cập nhật ứng dụng chạy trên IOS
- Upload ứng dụng lên google play
Kết quả: Ứng dụng ra mắt version 1.0 với các tính năng tối thiểu để sử dụng
4 Các màn hình
Link tải ứng dụng: https://play.google.com/store/apps/details?id=io.payvin.ex
Trang 17TỔNG KẾT
Như vậy, chỉ trong vòng 5 tuần ngắn ngủi, mọi người đã kịp hoàn thành một ứng dụng chạy trên nền tảng IOS và Android App đã có khá đầy đủ các tính năng đã đề ra ban đầu đối với version 1 Do thời gian có hạn nên tính năng app còn đơn giản, thiết kế chưa được đẹp như mong đợi Nhưng do app phát triển theo từng module có tính kế thừa nên sau này khi có thời gian sẽ có thể phát triển lên mức cao hơn
Chân thành cảm ơn sự giúp đỡ của các anh/bạn đồng nghiệp tại REXBIX, sự nỗ lực của mọi người để có thể hoàn thành ứng dụng này Cảm ơn thầy cô khoa CNPM đã giúp em hoàn thành bài báo cáo này