FACULTY OF INFORMATION TECHNOLOGYĐINH CÔNG HƯNG – 521H0064 NGUYỄN QUỐC KHẢI – 521H0456 NGUYỄN TRẦN TRƯỜNG TÚ – 521H0179 LEARNING ENGLISH APP FINAL PROJECT CROSS-PLATFORM MOBILE APPLICATI
Trang 1FACULTY OF INFORMATION TECHNOLOGY
ĐINH CÔNG HƯNG – 521H0064
NGUYỄN QUỐC KHẢI – 521H0456
HO CHI MINH CITY, 2024
Trang 2FACULTY OF INFORMATION TECHNOLOGY
ĐINH CÔNG HƯNG – 521H0064
NGUYỄN QUỐC KHẢI – 521H0456
NGUYỄN TRẦN TRƯỜNG TÚ – 521H0179
LEARNING ENGLISH APP
FINAL PROJECT
CROSS-PLATFORM MOBILE APPLICATION DEVELOPMENT
Instructor
TS Mai Văn Mạnh
HO CHI MINH CITY, 2024
Trang 3THANK YOU
Cross-Platform Mobile Application Development is a very interesting andbeneficial subject We sincerely thank Mr Mai Van Manh for your guidance and forproviding the best conditions for us to complete the project with the topic of
‘Learning English App’ It helped us gain more knowledge about system design andhave a broader understanding of real business processes
During the implementation of this project, our team inevitably made someunintended mistakes We kindly hope that you could offer feedback and assistance
We sincerely thank you
Ho Chi Minh City, date 02 month 05 year 2024
Author (Sign and write full name)
Đinh Công Hưng
Nguyễn Quốc Khải
Nguyễn Trần Trường Tú
Trang 4THE ESSAY WAS COMPLETED AT
TON DUC THANG UNIVERSITY
I hereby declare that this is our own project and is guided by TS MaiVan Manh The research contents and results in this topic are honest and havenot been published in any form before The data in the tables for analysis,comments, and evaluation are collected by the author ourselves from differentsources, clearly stated in the references section
In addition, the project also uses a few comments, assessments as well asdata of other authors, other agencies, and organizations, with citations andsourec annotations
If any frauds detected, I will take full responsibility for the content of
my project Ton Duc Thang University is not involved in copyright violations
caused by me during the implementation process (if any)
Ho Chi Minh City, date 02 month 05 year 2024
Author (Sign and write full name)
Đinh Công Hưng
Nguyễn Quốc Khải
Nguyễn Trần Trường Tú
Trang 5LEARNING ENGLISH APP
ABSTRACT
In an increasingly globalized society, the emphasis on learning languages,particularly English, is escalating To cater to this demand, our team has launched aproject to create a "Learning English Application." This application is designed toefficiently manage and organize learning materials, monitor learner progress, andboost engagement through tailored learning journeys Furthermore, the applicationfacilitates the storage and analysis of user data, allowing educators to pinpointlearners needing extra support and customize the educational content accordingly.With this project, our team aims to apply the theoretical knowledge gained inschool, while also conducting thorough research and analysis to develop aneffective educational system
Trang 6TABLE OF CONTENTS
LIST OF FIGURES
CHAPTER 1 TOPIC INTRODUCTION
1.1 Reasons for choosing the topic
1.2 Objectives of implementing the topic
CHAPTER 2 THEORICAL BASIS
2.1 Dart Language
2.1.1 Introduction
2.1.2 Features of Dart Programming Language
2.2 Flutter Framework
2.2.1 Introduction
2.2.2 Features of Flutter
2.2.3 Advantages and Disadvantages of Flutter
2.3 Firebase
2.3.1 Introduction
2.3.2 Features of Firebase
2.3.3 Advantages and Disadvantages of Firebase
CHAPTER 3 DESIGN ANALYSIS AND EXPERIMENT
CHAPTER 4 DEMO
CHAPTER 5 SUMMARY
5.1 Achieved Results
5.2 Limitations
5.3 Future Development
Trang 7REFERENCES
Trang 8LIST OF FIGURES
Figure 2.1.1.1: Dart Programming Language 4
Figure 2.2.1.1: Flutter framework 6
Figure 2.3.1.1: Firebase 8
Figure 2.3.2.1: Firebase – Realtime Database 8
Figure 2.3.2.2: Firebase – Cloud Firestore 9
Figure 2.3.2.3: Firebase - Authentication 9
Figure 2.3.2.4: Firebase – Remote Configuration 10
Trang 9CHAPTER 1 TOPIC INTRODUCTION
1.1 Reasons for choosing the topic
The importance of English language proficiency in the modern world cannot
be overstated As the global lanaguage, English is crucial for internationalcommunication, academic pursuits, and professional development However, manylearners struggle with vocabulary acquisition, which is a fundamental component oflanguage learning Recognizing the need for effective tools to support vocabularylearning, this project aims to develop a mobile application similar to Quizlet, whichhas proven to be an effective platform for language learners
The decision to create this application is driven by several factors:
Educational Impact: Enhancing vocabulary acquisition cansignificantly improve overall language proficiency, aiding learners inacademic and professional settings
Technological Advancement: Leveraging modern technology,particularly mobile applications, can provide learners with convenientand effective tools for studying anytime, anywhere
Community and Collaboration: By incorporating community features,learners can benefit from shared knowledge and collaborativelearning, fostering a supportive educational environment
Customization and Flexibility: Allowing users to create personalizedvocabulary topics and quizzes ensures that the learning experience istailored to individual needs, increasing engagement and effectiveness
1.2 Objectives of implementing the topic
The primary objectives of this project are to design, develop, and implement
a cross-platform mobile application that facilitates English vocabulary learning Thespecific objectives are as follows:
Trang 10 User Account Management:
Implement features for user registration, login, and passwordrecovery
Provide a user-friendly profile management system
Vocabulary Topic Management:
Enable users to create, edit, delete, and manage vocabulary topics andfolders
Allow import and export of vocabulary lists in csv format for ease ofdata handling
Learning and Practice Modes:
Develop multiple learning modes, including flashcards, quizzes, andtyping practice
Ensure these modes cater to different learning preferences and providecomprehensive coverage of vocabulary learning
Trang 11 Utilize remote servers (e.g., Firebase) for data storage andsynchronization, ensuring data persistence and accessibility acrossdevices.
By achieving these objectives, the project aims to create a comprehensive,user-friendly mobile application that supports English vocabulary learning, fosterscommunity engagement, and leverages modern technology to enhance the learningexperience
Trang 12CHAPTER 2 THEORICAL BASIS
2.1 Dart Language
2.1.1 Introduction
Dart is a modern, object-oriented programming language designed for clientoptimization, allowing developers to create high-performance apps for a variety ofplatforms including Android, iOS, web, and desktop This language, developed byGoogle, is known for its ability to craft visually appealing user interfaces anddeliver exceptional user experiences
Dart has gained popularity and is currently one of the top languages to learn,especially for those looking to develop high-quality apps using Flutter According
to GitHub, Dart ranks among the most loved programming languages globally
Figure 2.1.1.1: Dart Programming Language
2.1.2 Features of Dart Programming Language
Easy to Understand
Dart because of its similarities with C# and Java user often find the DartSyntax Familiar , Also, as it provides the code Reuse it makes the Programs cleanand easy to understand
Object Oriented Programming
Trang 13Nowadays OOPS is considered as one of the most important feature formany Programming Language including Java and C++ Now, Dart which isfollowing the same path of OOPS
Flexible Compilation and Execution
Dart Compilation is flexible as it supports both JIT(Just-in-Time)compilation as well as AOT(Ahead of Time) compilation And dart2js adds extravalue to it
Asynchronous Programming
Dart Supports Asynchronous Programming is where even when a Primaryset of tasks are running , Program will respond to other set of tasks and at the end ofthe execution a final result will be returned
2.2 Flutter Framework
2.2.1 Introduction
Flutter – a simple and high performance framework based on Dart language,provides high performance by rendering the UI directly in the operating system’scanvas rather than through native framework
Trang 14Flutter also offers many ready to use widgets (UI) to create a modernapplication These widgets are optimized for mobile environment and designing theapplication using widgets is as simple as designing HTML.
To be specific, Flutter application is itself a widget Flutter widgets alsosupports animations and gestures The application logic is based on reactiveprogramming Widget may optionally have a state By changing the state of thewidget, Flutter will automatically (reactive programming) compare the widget’sstate (old and new) and render the widget with only the necessary changes instead
of re-rendering the whole widget
Figure 2.2.1.2: Flutter framework
2.2.2 Features of Flutter
Flutter framework offers the following features to developers:
Modern and reactive framework
Uses Dart programming language and it is very easy to learn
Fast development
Beautiful and fluid user interfaces
Huge widget catalog
Runs same UI for multiple platforms
High performance application
2.2.3 Advantages and Disadvantages of Flutter
Advantages of Flutter
Trang 15Flutter comes with beautiful and customizable widgets for high performanceand outstanding mobile application It fulfills all the custom needs andrequirements Besides these, Flutter offers many more advantages as mentionedbelow:
Developers need to write just a single code base for both applications(both Android and iOS platforms) Flutter may to be extended to otherplatform as well in the future
Flutter needs lesser testing Because of its single code base, it issufficient if we write automated tests once for both the platforms
Flutter’s simplicity makes it a good candidate for fast development Itscustomization capability and extendibility makes it even morepowerful
With Flutter, developers has full control over the widgets and its layout
Flutter offers great developer tools, with amazing hot reload
Disadvantages of Flutter
Despite its many advantages, flutter has the following drawbacks in it:
Since it is coded in Dart language, a developer needs to learn newlanguage (though it is easy to learn)
Modern frameworks aim to separate logic and user interface (UI) asmuch as possible However, in Flutter, the UI and logic are ofteninterwoven This can be addressed by employing smart coding practicesand using high-level modules to separate the UI from the logic
Flutter is yet another framework to create mobile application.Developers are having a hard time in choosing the right developmenttools in hugely populated segment
2.3 Firebase
2.3.1 Introduction
Trang 16Firebase, a product developed by Google, assists developers in building,managing, and growing their apps with ease It enables faster and more secure appdevelopment without requiring programming on the Firebase side, allowing forefficient use of its features Firebase supports Android, iOS, web, and Unityplatforms, and offers cloud storage solutions It utilizes a NoSQL database for datastorage, providing a flexible and scalable solution for app development.
Figure 2.3.1.3: Firebase
2.3.2 Features of Firebase
Realtime Database
The Firebase Realtime Database is a cloud-based NoSQL database designed
to handle data with millisecond speed Essentially, it can be viewed as a large JSONfile, allowing for efficient and real-time data management The Realtime Database
is especially useful for applications that require frequent data updates and instantfeedback, making it a powerful tool for developers looking to create responsive andinteractive applications
Trang 17Figure 2.3.2.4: Firebase – Realtime Database
Cloud Firestore
Cloud Firestore is a NoSQL document database that offers global-scaleservices for storing, syncing, and querying data through applications It organizesdata as objects, known as documents, which contain key-value pairs Thesedocuments can store various types of data, including strings, binary data, and evenJSON trees This flexibility makes Cloud Firestore an ideal solution for a widerange of application needs, from simple data storage to complex, real-timesynchronization and querying across multiple users and devices
Figure 2.3.2.5: Firebase – Cloud Firestore
Authentication
Firebase Authentication service offers user-friendly UI libraries and SDKs tosimplify user authentication for your app It significantly reduces the manpower and
Trang 18effort needed to develop and maintain a robust authentication system Additionally,Firebase Authentication takes care of complex tasks such as merging user accounts,which can be cumbersome and time-consuming if handled manually.
Figure 2.3.2.6: Firebase - Authentication
Trang 19 Remote Configuration
The Remote Configuration service enables developers to publish updates tousers instantly These updates can range from modifying UI components to alteringthe application's behavior This service is particularly useful for implementingseasonal offers and time-sensitive content within an application, allowingdevelopers to dynamically update and manage features without requiring users todownload a new version of the app
Figure 2.3.2.7: Firebase – Remote Configuration
2.3.3 Advantages and Disadvantages of Firebase
Advantages of Firebase
Realiable and extensive database: Google’s Firebase database offersrobust capabilities for web and mobile application development SomepopularFirebases include the Realtime Database, Cloud StorageServices like Crashlytics, etc
Google Analytics: Google Analytics supports iOS, Android, web, C++, and Unity This free tool provides insights into user interactions.Firebase Analytics improves user retention and engagement,enhancing app performance
Disadvantages of Firebase
Data storage is not convenient: Can't query multiple keyssimultaneously or filter data The database is a single JSON file,unlike SQL's storage format, making data modeling impossible
Trang 20 Reduced data migration: If users lack easy access or control overupdating certain app parts due to its externally hosted backend,problems can arise with no solution other than restarting, which manyusers wish to avoid.