CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI 1. Giới thiệu chung Hiện nay, các công nghệ tiên tiến ngày càng phát triển mạnh mẽ và được ứng dụng ngày càng nhiều vào lĩnh vực kinh tế cũng như đời sống thường nhật của con người. Một điểm tiêu biểu trong việc phát triển các công nghệ đó phải kể đến việc ứng dụng công nghệ thông tin vào hầu hết các hoạt động.
Nhờ đó, các công việc được thực hiện nhanh, chính xác và đạt kết quả cao hơn rất nhiều. Khi xã hội ngày càng phát triển, mức sống của người dân được nâng cao, thu nhập kinh tế càng được cải thiện thì chiếc điện thoại thông minh không còn trở nên xa lạ với mọi người nữa mà ngược lại nó là một vật dụng không thể thiếu đối với người dân hiện nay. Hầu hết mỗi người đều trang bị cho mình một chiếc điện thoại phù hợp với nhu cầu và túi tiền của mình. Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việc muốn mua một đôi giày ưa thích thì người tiêu dùng phải đến tận cửa hàng để chọn lựa vì thế sẽ mất khác nhiều thời gian và công sức.
Cùng với các lý do đã nêu trên, nhóm đồ án đã quyết định chọn đề tài "Xây dựng ứng dụng bán giày". Người dùng chỉ cần các thao tác đơn giản trên điện thoại di động là có thể đặt hàng nhanh chóng và có được đôi giày mình cần mà không cần phải tới tận cửa hàng. Mục tiêu đề tài 2. Lý thuyết - Nghiên cứu về Flutter và ngôn ngữ lập trình Dart - Nắm rõ các thao tác trên môi trường phát triển tích hợp Android studio và công cụ lập trình Visual studio code - Nghiên cứu và sử dụng dịch vụ cơ sở dữ liệu trên nền tảng đám mây – Firebase - Nghiên cứu cách thức phát triển ứng dụng đa nền tảng 2.
Mục tiêu - Người dùng có thể lưu lại thông tin cá nhân và đơn hàng để phục vụ tốt hơn trong việc quản lý mua hàng - Ứng dụng sẽ hỗ trợ từ cơ bản đến đầy đủ chức năng của một ứng dụng bán giày điển hình - Ứng dụng có giao diện thân thiện, dễ sử dụng 3. Quá trình hiện thực Trải qua quá trình tìm hiểu và thực hiện đề tài, nhóm đã giải quyết được các vấn đề đặt ra ban đầu, từng bước giải quyết và liên tục đặt ra những vấn đề mới để ngày càng hoàn thiện sản phẩm. Những bước thực hiện: - Phân tích yêu cầu bài toán - Lựa chọn nền tảng công nghệ phù hợp với yêu cầu - Nghiên cứu cơ sở lý thuyết của công nghệ lựa chọn - Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn - Kiểm tra và khám phá các ứng dụng tương tự để tối ưu hoá trải nghiệm người dùng và cải thiện các tính năng cho ứng dụng 4. Tổng quan về chức năng Hình 1.
Tổng quan về chức năng CHƯƠNG II. Tổng quan và lịch sử Flutter là một bộ công cụ phát triển phần mềm mã nguồn mở được tạo ra bởi Google – một trong những công ty công nghệ lớn nhất hành tinh. Nó được sử dụng với mục đích phát triển các ứng dụng đa nền tảng cho Android, iOS, Linux, Windows, MacOS và web chỉ từ một nền tảng mã duy nhất. Flutter được giới thiệu lần đầu tiên vào năm 2015 và đến tháng 5, 2017 phiên bản ổn định đầu tiên được ra mắt chính thức.
Dù được ra mắt khá trễ nhưng Flutter đã và đang phát triển mạnh mẽ, dần trở thành một đối thủ nặng ký đối với những công cụ hỗ trợ lập trình đa nền tảng khác như React Native (Facebook), Xamarin (Microsoft)… Tính đến thời điểm hiện tại Flutter đang là một trong những công cụ hỗ trợ lập trình đa nền tảng được sử dụng nhiều nhất. Một số ứng dựng nổi tiếng được viết bằng Flutter: Hình 2. Một số ứng dụng nổi tiếng được viết bằng Flutter 1. Thành phần của Flutter Flutter gồm có hai tầng chính là Engine và Framework: - Tầng engine chứa một thư viện đồ hoạ giúp render giao diện người dùng và máy ảo Dart – môi trường để thực thi mã nguồn và biên dịch mã lệnh Dart.
Đây cũng chính là nơi thực hiện việc kết nối với hệ thống - Tầng framework được viết bằng mã lệnh Dart, cung cấp các lớp, chức năng và tiện ích (widget) được dùng để tạo ứng dụng Flutter. Lập trình viên sẽ sử dụng chủ yếu tầng này để lập trình. Kiến trúc của Flutter 1. Một số đặc điểm nổi bật - Fast Development: Tíng năng Hot Reload hoạt động trong milliseconds để hiện thị giao diện tới bạn.
Sử dụng tập hợp các widget có thể customizable để xây dựng giao diện trong vài phút. Ngoài ra Hot Reload còn giúp bạn thêm các tính năng, fix bug tiết kiệm thời gian hơn mà không cần phải thông qua máy ảo, máy android hoặc iOS. - Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện của Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ trợ nhiều các APIs chuyển động, smooth scrolling. - Native Performance: Các widget của fluter kết hợp các sự khác biệt của các nền tảng ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt nhất tới iOS và Android.
Ưu và nhược điểm của Flutter: 1. Ưu điểm: - Flutter là một bộ open-source SDK, tức là nó hoàn toàn miễn phí và “mở” chính vì thế mà cộng đồng lập trình viên có thể cùng tham gia phát triển và hoàn thiện nó - Flutter cung cấp đầy đủ và đa dạng các tiện ích (widget) hỗ trợ nên lập trình viên ít khi cần sự hỗ trợ từ thư viện của bên thứ ba cung cấp - Hỗ trợ hot reload: Tính năng này cho phép thay đổi xuất hiện trực tiếp trên ứng dụng mà không cần phải rebuild lại toàn bộ ứng dụng từ đó làm giảm thời gian của lập trình viên và khiến việc xây dựng ứng dụng trở nên dễ dàng hơn 1. Nhược điểm: - Còn nhiều hạn chế khi phát triển các ứng dụng có các chức năng cần can thiệp sâu vào phần cứng của thiết bị - Kích thước ứng dụng khá lớn do Flutter hỗ trợ đa nền tảng nên hiển nhiên số lượng file và mã nguồn cũng sẽ bị đội lên khá nhiều, tuy nhiên điều này đã được Google cam kết sẽ cải thiện hơn trong tương lai - Công nghệ còn mới và vẫn chưa có quá nhiều thư viện hỗ trợ, tuy nhiên thì cộng đồng lập trình viên sử dụng Flutter đang ngày càng nhiều, chính vì thế mà trong tương lai chắc chắn sẽ có thêm nhiều thư viện hỗ trợ tốt cho Flutter 2. Ngôn ngữ lập trình Dart 2.
Tổng quan - Flutter sử dụng ngôn ngữ lập trình Dart. Ra đời từ năm 2011 và được phát triển bởi Google, Dart được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động. - Dart là ngôn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn. - Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript.
Nó hỗ trợ interface, mixin, abstract, generic, static typing và type safe. Tại sao Flutter chọn Dart? - Năng suất: Cú pháp Dart rõ ràng và súc tích, công cụ của nó đơn giản nhưng mạnh mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart có các thư viện cốt lõi và một hệ sinh thái gồm hàng ngàn package - Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được dự đoán hiệu suất cao và khởi động nhanh trên các thiết bị di động và web - Tính di động: Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa.
Đối với các ứng dụng web, chuyển mã từ Dart sang JavaScript - Dễ học và sử dụng: Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú pháp và định hướng đối tượng không gây ngạc nhiên của nó. Nếu bạn đã biết C++, C # hoặc Java, bạn có thể làm việc hiệu quả với Dart chỉ sau vài ngày. Hệ quản trị cơ sở dữ liệu Firebase 3. Firebase là gì? Firebase là một nền tảng mà Google cung cấp để phát triển các ứng dụng di động và trang web, hỗ trợ Developer trong việc đơn giản hóa các thao tác với dữ liệu và không cần tác động tới backend hay server 3.
Firebase Realtime database Đầu tiên, để sử dụng nền tảng này tạo ứng dụng, lập trình viên cần đăng ký tài khoản Firebase. Đăng ký xong, bạn sẽ sở hữu một Realtime Database có dạng JSON được đồng bộ thời gian đến tất cả kết nối client Dữ liệu trong các database được tự động cập nhật liên tục khi lập trình viên tiến hành phát triển ứng dụng. Sau khi được cập nhật, những dữ liệu này sẽ được truyền tải thông qua kết nối SSL có chứng nhận 2048 bit Tại những ứng dụng đa nền tảng toàn bộ máy khách đều dùng chung một database. Trong trường hợp kết nối Internet bị gián đoạn, các dữ liệu sẽ được lưu trữ trên local và cập nhật khi đường truyền ổn định 3.
Firebase Authentication Hoạt động kế tiếp của Firebase là tạo lập quy trình xác thực người dùng thông qua các phương tiện như Google, Email, GitHub, Facebook, Twitter và xác thực nặc danh đối với các ứng dụng. Việc xác thực giúp bảo vệ an toàn dữ liệu về thông tin cá nhân của người dùng mạng 3. Firebase Hosting Các thức hoạt động tiêu biểu cuối cùng, không thể không nhắc đến của Firebase là cung cấp hosting. Firebase hosting thông qua sự hỗ trợ của SSL đến từ mạng CDN.
Nhờ vậy mà lập trình viên có thể tiết kiệm rất nhiều thời gian thiết kế cũng như phát triển ứng dụng. Ưu điểm của Firebase - Tốc độ cao: Firebase hỗ trợ phát triển ứng dụng với tốc độ nhanh chóng, giảm bớt thời gian phát triển và tiếp thị ứng dụng - Đơn giản, dễ dàng trong sử dụng: Người dùng có thể tạo tài khoản Firebase bằng tài khoản Google và cũng như sử dụng nền tảng này trong phát triển ứng dụng một cách dễ dàng - Một nền tảng, đa dịch vụ: Firebase cung cấp đầy đủ các dịch vụ hỗ trợ phát triển web, bạn có thể chọn database Firestore hoặc Realtime theo ý muốn - Là một phần của Google: Firebase đã được mua lại và hiện tại đang là một phần của Google.