o Feature Development: = Implement core features such as Exam Quiz, Daily Quiz, True/False Quiz, Math Quiz.. o User Roles: = Admin: e Create and manage quizzes Manage Daily Quiz, Manage
Trang 1VIETNAM NATIONAL UNIVERSITY HCM
UNIVERSITY OF INFORMATION TECHNOLOGY
FACULTY OF INFORMATION SYSTEM
NGUYEN VAN BAO - 18520494
PhD NGUYEN THANH BINH
HO CHI MINH CITY, 2024
Trang 2The thesis topic of building a cloud based quiz system for student studying is the
content that I researched and made my graduation thesis after studying at the
Faculty of Information Systems, University of Information Systems, University ofInformation Technology - Vietnam National University Ho Chi Minh City While
researching and completing the thesis, I received a lot of attention and support fromteachers, colleagues, family, and friends For the successful completion of this
thesis, I would like to express my sincere thanks to:
Faculty of Information Systems, University of Information Technology - VietnamNational University, Ho Chi Minh City has created a very good learning and
training environment, providing me with useful knowledge and skills to help me
apply and improve my skills advantages in writing the thesis
Instructor PhD Nguyen Thanh Binh is a teacher who wholeheartedly guided and
helped me throughout researching and writing this thesis He gave me some ideas
and suggestions to help me complete this research
I would also like to thank the Board of Directors and teachers at the University of
Information Technology for allowing me to study and work at the university to gain
practical knowledge and experience I have helpful information for my thesis
Finally, I would like to thank my family and friends for always encouraging me andcreating the best conditions for me to strive to complete my research project well
Sincerely thank!
Nguyen Van Bao
Trang 3UNIVERSITY OF INFORMATION
Advanced
TECHNOLOGY Education
ProgramADVANCED PROGRAM
e Details of what to be done:
o Project Planning and Research:
= Define the scope of project to be covered by the app
= Conduct research on existing quiz apps to identify features,
user interfaces, and potential improvements
o Development Environment Setup:
= Set up the development environment, including version
control, integrated development environment (IDE), andnecessary tools
o Database Design and Security:
Trang 4= Design the database structure to efficiently store quiz-related
data
o Feature Development:
= Implement core features such as Exam Quiz, Daily Quiz,
True/False Quiz, Math Quiz
Scope:
o The project focuses on using Flutter Framework and Firebase
Platform to build the mobile application
o User Roles:
= Admin:
e Create and manage quizzes (Manage Daily Quiz,
Manage Exam Quiz)
e Track the number of people registered to use the
application
= Users:
e Register and create individual profiles
e Take quizzes
e View immediate detailed results
o Exam Quiz Features:
= Test your knowledge with Exam Quiz Answer questions
within a set time limit
o User Authentication and Security:
= User Registration: Allow users to sign up or log in quickly
Trang 5o Design Intuitive User Interface
o Implement Core Features
o Establish Data Security Measures
o Adhere to Project TimelineMethodologies: Design Thinking, Database Design, Security
Implementation
Expected results: For this thesis, I want to build and develop a fullyfeatured application that offers different types of necessary knowledge Italso provides smooth and efficient learning, memorizing, and test-taking
experience for everyone, especially students
Research timelines:
19/02/2024 to 05/03/2024:
o Define project scope and objectives, set up project management tools
and develop a detailed project plan
Trang 6Approved by the advisor(s)
Signature(s) of advisor(s)
Ho Chi Minh City, / /
Signature(s) of student(s)
Trang 72.1 Introduction to Cloud-Based Learning Systems «+5 «5< <c<s<++ 52.2 Solutions Available on the Market - 56 <1 k3 E* 9v kikskseeeeevee 5
2.3 Student Engagement and Performance - - + + «+ ++s£+v+seEsereerseees 72.4 Technologies for Cloud-Based Quiz Systems - 5 5c c+csees 72.5 Case Studies and Applications - - + xxx nh nghiệt 92.6 Challenges and Future Directions - - 5G n1 23 911931191191 kg re, 9
Chapter 3: BACKGROUND KNOWLEDGE 2-5 S+<cs++scssseereees 10
3.1 Android OS Overview eee HH TT TH TH HH nh 11
BLL Introduction oe 11k0 02c 133.1.3 Architecture Android - «+ + x1 9E nh nh ng tr 133.2 Visual Studio CO(e - s1 ng ni ng Ti ng nh ng 20
3.2.1 (6i asa1ỚỪ 20
3.2.2 FEAatures 2 21
Trang 8KÝ Voi Ầ 223.2.4 Lo in 44 233.3 Flutter - Cross platform for MObIÏÌe - - <6 1 3E ESkvseksseeseeeree 24
3.5.1 In{TOUCfIOTN - 6 + 119v 9h nh HT HH nh nhà 283.5.2 AVATAĐ€ HH T9 TH HT HH Họ 29
3.8.1 IntrOduCfIOT\ - - - - << <2 1E EEEEEE6111166 2155335311118 11H55 1x kkreg 36
Trang 9E4) na :¬::-: -Ÿ©›ÖẰ-Ls5E5Ố 37
Chapter 4: ANALYSIS AND DESIGN ĂSccSSssseieerrerree 41
4.1 General arCH1f€CfUITE G1 101991 ng ng vết 414.2 Process on nỪDỪDỪ 41
4.3 Use-case øeneraÌ1ZtÏOI s11 139113911 9119 11 11 1 1n ng 444.4 Web ii ae Ơ 45
4.4.1 List Of ACẨOTS - Gv HT TH TH TH Tu HH nh nh 45
““IPF loài .uAẠIIậạaađ 454.4.3 Use-case specification and diagrams s «+ +<s*++s++sesseess 454.5 Mobile CÌÏI€TRE 2n 1 1991191011 1 19h nh nh TH TH HH nh 91
4.5.1 List Of AC[OTS G1 TT HH ng TH TH nh 91
4.5.2 List Of USC-CASES - HT TH TH TH HH nh 914.5.3 Use-case specification and diagrams 5+ +< + £+s£+s£++ec+se++ 92
4.7.2 Web admin panelL - «+ + x19 9v ng ng nh 118
Chapter 5: SUMMARY AND FUTURE WORK - << 126
ha 126b0 02001 13 126
REFERENCES - - Án TH Hệ 127
Trang 101: System ATChIt€CfUT€ - 6 1S ng nưệp 412: Process follow of web admin panel ‹- «+ «+ ++xx+ereereesereke 423: Process follow of mobile appÏIcaftIONn s5 «+ << +++eessseeesess 434: Use-case website øeneral1Z4fIOT - - - «+ + +vsskkseeesreereeee 445: Use-case mobile øeneral1ZatIOIA - s5 + ++kE+svkEsseeseeeeesees 446: Activity diagram: Sign 1T1 - - c3 332118331 EESEeseeerereerreerrrre 477: Sequence diagram: Sign 1T\ - c5 1+1 33 2E E£EESEeEeeererseerrrersee 488: Activity diagram: Sign OU - -.- 5 s19 vn ng rưệt 499: Sequence diagram: Sign OUK - - 5 + + k**tESeEeserereeereerereee 5010: Activity diagram: Change password 5 525 + +vssserseee 5211: Sequence diagram: Change paSSWOT 6 se svsrsesek 5312: Activity diagram: Create exam qu1z que€sfiOI -« -« «<< «+2 5513: Sequence diagram: Create exam QUIZ quesf1On «« -«++ 56
14: Activity diagram: Update exam quiz quesf1on - «<< «<2 58
15: Sequence diagram: Update exam quiz queSfIOn - - «+ 59
Trang 11Figure 4.
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
Figure 4
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
Activity diagram: Delete exam quiz quesfIon - - «<< «<2 61
Sequence diagram: Delete exam quiz quesfIOn «« -«<+ 62 Activity diagram: Create daily quiz quesfIOn - -.‹ s<+-«<<s+2 65
Sequence diagram: Create daily quiz queSfIOn «« -«++ 65
Activity diagram: Update daily quiz quesflon -««+<s«<+ 67 Sequence diagram: Update daily quiz question - -« 68
Activity diagram: Delete daily quiz quesfion -« ««+ 70
Sequence diagram: Delete daily quiz quesfIOn - «« s«<+ 71 Activity diagram: Create math quiz quesfIOn - -«++-ss++sss+ 73 Sequence diagram: Create math quiz queSfIOn «5s «+ 74 Activity diagram: Update math quiz quesf1on « - «<< «<2 76 Sequence diagram: Update math quiz question - 77
Activity diagram: Delete math quiz quesfIOn - « «<5s«2 79 Sequence diagram: Delete math quiz queSfIOn - - «5< «5+ 80 Activity diagram: Create true/false quiz queSfIOn -‹ 82
Sequence diagram: Create true/false quiz quesfIon - - 83
Activity diagram: Update true/false quiz question -‹- 85
Sequence diagram: Update true/false quiz quesfIon - - 86
Activity diagram: Delete true/false quiz quesfIon - ‹ 88
Sequence diagram: Delete true/false quiz quesfIon - - - 89
Activity diagram: View user list esc eeceeseeseceeceseeceneceaeeeseeeeneeeees 90 Sequence diagram: View USer list 5 55 S5 Eeeeesereeers 91
Activity diagram: Sign 1n apD - 5 ca tk si, 93 Sequence diagram: Sign iN apDD 5 se rnriey 94 Activity diagram: Sign OUt apD - 5 <6 + Series 95 Sequence diagram: Sign OUf apDD 5 << + **+EsskEeeesereeees 96 Activity diagram: View pDTOẨTÏe ng nrkp 97 Sequence diagram: View DTOẨIÏ€ - s5 k + *sskkseesserseee 98 Activity diagram: Take Exam Qu1zZ - - 55+ +ss*++s+seesseexss 100
Trang 12Sequence diagram: Take Exam QUIZ - 25 5< «<< ++se+se+ 100
Activity diagram: Take Daily QQU17 - 25 55+ £sseesseeess 101
Sequence diagram: Take Daily (Qu1z - 5 55+ + <++eesx 102
Activity diagram: Take true/false Qu1z - +5 «<< <++es++ 103
Sequence diagram: Take true/false Qu1z - << <+<<<<ss+ 104
Activity diagram: Take Math Qu1z - 5 255 ssesseeess 105Sequence diagram: Take Math QQu1z - 5 55 << <<+<c<++ 106
UI of home Screen = 109
UI of Login SCreCN 0117 110
UL Of nav-batt oo 111/8u:)vv:-i 017 112
UI of dashboard DaØG - c1 123111911 9111111111 re ree 118
UI of manage daily quiz D4© - 5 c3 1 3E sESskEsereeeeserek 119
UI of create new question daily QU17 - - 55s ++ssesseeess 119
UI of update question daily Quiz 55 555 +<£++£ssesseeess 120
UI of manage true/false qU1Z Daة - - 5 55 S6 +E+ksesrrsersee 121
UI of add new question pop-up of true/false qu1Z ‹ 121
UI of edit question pop-up of true/false qU1zZ - «<< «<<<+ 122
UI of add new question math quiz POP-UP - 555 << <5 s52 123
UI of edit question math Quiz pOD-UD - 5 55+ *s+*s++ess+ 123
UI of manage exam QUIZ DA - 55c 133 £+EESseereeeeseeeree 124
Trang 13Figure 4 74: UI of add new question exam QUIZ pOp-UD ««+s«<++<<<++Figure 4 75: UI of edit question math quiz DOD-UD 25 5 5+5 ££+se++ess+
Figure 4 76: UI of view user page
Trang 14TABLE CATALOG
Table 4 1: System’s actors nh 45
Table 4 2: List of use-case W€bSI€ - - su ng ng nh 45 Table 4 3: Use case Specification: Sign 1T - - + xxx HH re, 46 Table 4 4: Use case Specification: Sign OUK .- -c- ch nrưy49 Table 4 5: Use case Specification: Change paSSWOTC 5 Sex sskeseee 51 Table 4 6: Use case Specification: Create exam quiz question - - «+ 54
Table 4 7: Use case Specification: Update exam quiz question - 57
Table 4 8: Use case Specification: Delete exam quiz question -«- 60
Table 4 9: Use case Specification: Create daily quiz questIon - -« 63
Table 4 10: Use case Specification: Update daily quiz question 66
Table 4 11: Use case Specification: Delete daily quiz questIon - -‹ 69
Table 4 12: Use case Specification: Create math quiz questIon -‹ 72
Table 4 13: Use case Specification: Update math quiz quesfion 75
Table 4 14: Use case Specification: Delete math quiz question ‹ 78
Table 4 15: Use case Specification: Create true/false quiz quesfion 81
Table 4 16: Use case Specification: Update true/false quiz question 84
Table 4 17: Use case Specification: Delete true/false quiz question - 87
Table 4 18: Use case Specification: View user ÏIS( s. 5 «se seeeeeeees 89 Table 4 19: Application actors 1n e 91 Table 4 20: List of US€ CAaS€S - SG 1T ng TH HH nh 92 Table 4 21: Use case Specification: Sign 1n app ce eseesesscesecseceteceeeeneeseceeenees 92 Table 4 22: Use case Specification: Sign OUt App eccesceeseceseeeseceeeeeseeeeeeeeseeeees 95 Table 4 23: Use case Specification: View DTOfTÏ€ - ccs+c series 97 Table 4 24: Use case Specification: Take eXam QUIZ - - 5 6s £+xs+eesecss 98 Table 4 25: Use case Specification: Take daily QU1Z - 55555 << s+++ess+ 101 Table 4 26: Use case Specification: Take true/false qu1Z «++-«<+<+ 102 Table 4 27: Use case Specification: Take math QU1zZ - 5555 « «+ << +++s+++ 105 Table 4 28: Overview databasSe€ - - - HH HH TH HH HH hcm 106
Trang 1535: Scores collection
Trang 16ACRONYMS CATALOG
Trang 17Currently, the education issue is very focused, underscoring the imperative for a
robust quiz platform In this context, the demand for a reliable platform arises due
to the importance of assessments in educational settings Whether for evaluating
students' comprehension, facilitating self-assessment, or aiding in certification
processes, there's a crucial need for a quiz system However, the challenge lies in
the difficulty of creating and disseminating quizzes effectively Traditional methodsmay struggle to reach all students or fail to provide comprehensive feedback To
address these challenges, a quiz system application is proposed Operating on the
Android platform to leverage its widespread accessibility, this system aims to
provide a centralized hub where educators can create quizzes, students can access
them, and both parties can receive timely feedback Key features include user
registration, quiz creation, real-time scoring, math quizzes, exam quizzes, and easyaccessibility via mobile devices
Ultimately, the envisioned quiz platform aims to revolutionize the assessment
landscape by providing educators and students with a versatile, accessible, and
effective tool for learning, memorizing, and test-taking By addressing the diverse
needs and challenges of modern education, this platform contributes to the
advancement of educational outcomes, equity, and innovation in teaching and
learning practices
Trang 18Chapter 1: PROBLEM STATEMENT
1.1 Overview
In response to the burgeoning demand for efficient assessment tools, the
endeavor to construct a comprehensive quiz system emerges as a pivotal initiative.Amidst the landscape technology revolution 4.0, the necessity for robust evaluation
methods has gained prominence, particularly in educational settings where
traditional assessment methods face limitations The development of a quiz systemoffers a solution to this challenge, providing educators with a versatile platform to
create, disseminate, and evaluate quizzes effectively
Within the context of today's technologically driven society, mobile devices have
become indispensable tools for information exchange and learning The
proliferation of smartphones and the ubiquity of internet connectivity have created
an opportune environment for the development of quiz systems tailored for mobileplatforms
As the market for mobile applications continues to expand, the development of quizsystems represents a promising avenue for innovation and growth By offering
features such as diverse question types, adaptive learning algorithms, and real-timefeedback mechanisms, the quiz system caters to the evolving needs of educators and
educators to personalize learning experiences and track student progress effectively
In essence, the development of a quiz system on the Android platform embodies theintersection of educational innovation and technological advancement It represents
a proactive response to the evolving needs of educators and learners in a rapidly
changing digital landscape So, I chose the topic "Building a cloud based quiz
Trang 19system for student studying" This application provides smooth and efficient
learning, memorizing, and test-taking experience for everyone, especially students
1.2 Purpose
Building a cloud based quiz system for student studying satisfied:
e Simple, easy to use intuitive interface, easy to manipulate
e Suitable for widely deployed applications, the expansion is less expensive
e The system is easy to maintain and develop
e Make sure to meet the user’s needs
e Building safe and reliable applications
1.3 Subject and scope of the study
1.3.1 Subject:
This study focuses on developing a cloud-based quiz system tailored for
students Utilizing technologies such as React, Firebase, and Flutter, the system isdesigned to enhance the learning experience by providing a smooth and efficient
platform for creating, managing, and taking quizzes The application aims to
improve assessment methods, streamline quiz administration, and support real-timecollaborative learning Future optimizations and updates will focus on performanceenhancements, user feedback integration, and expanding system capabilities to
ensure scalability and robustness
1.3.2 Scope of the study:
In The project focuses on using Flutter Framework and Firebase Platform to
build the mobile application
Trang 20o Users:
= Register and create individual profiles
= Take quizzes
= View immediate detailed results
e Exam Quiz Features:
o Test your knowledge with Exam Quiz Answer questions within a set
time limit
e User Authentication and Security:
o User Registration: Allow users to sign up or log in quickly with
o Data Privacy: Implement security measures to protect user data
1.4 Report Structure
Chapter 1: Problem Statement: State the reason for choosing the topic,
purpose, object, and scope of the research
Chapter 2: Literature Review: which talks about existing quiz systems,
technology analysis, functions
Chapter 3: Background Knowledge: List the technologies and programming
languages used to build the system
Chapter 4: Analysis and Design: Briefly describe the scientific research work
carried out, the results of the scientific research, or the experimental results For
application topics that result in software products, there must be design, and
installation, according to learned models (UML, )
Chapter 5: Summary and Future work: Present the results achieved, new
contributions, and new proposals The conclusion should be brief, without furtherdiscussion and commentary
References: Include materials cited, used, and mentioned for discussion in the
thesis
Trang 21Chapter 2: LITERATURE REVIEW
2.1 Introduction to Cloud-Based Learning Systems
Cloud-based learning systems have significantly transformed the educational
landscape by providing scalable, flexible, and cost-effective solutions These
systems leverage cloud computing technologies to offer educational resources and
tools accessible from anywhere, at any time, thereby supporting diverse learning
environments and enhancing the overall educational experience In this context,
building a cloud-based quiz system for student studying represents an innovative
approach to modern education, addressing the need for interactive and efficient
learning tools
2.2 Solutions Available on the Market
With the rapid development of technology, several cloud-based quiz systems
have emerged, offering unique features tailored to various educational needs
Popular platforms include Kahoot!, Quizizz, and Google Forms, which provide
interactive and engaging quiz experiences These systems allow for real-time
feedback, easy integration with Learning Management Systems (LMS), and
scalability to accommodate large user bases
- Kahoot! is known for its game-like environment, where quizzes are presented in afun and competitive manner, motivating students to participate actively
Trang 22Figure 2 1: Kahoot!
- Quizizz offers a self-paced quiz experience, allowing students to complete quizzes
at their own pace while receiving instant feedback
3 Sage Caspian
2m |) Papaya Dolittle
- Google Forms provides a versatile platform for creating customized quizzes, with
Figure 2 2: Quizizz
various question types and automated grading features
These platforms have been widely adopted in educational settings due to their ease
of use, accessibility, and ability to engage students effectively
Trang 232.3 Student Engagement and Performance
Interactive and engaging quiz systems can significantly enhance student
engagement and performance By providing instant feedback, these systems help
students identify their strengths and weaknesses, promote active learning, and foster
a competitive yet collaborative learning environment The gamification elements inplatforms like Kahoot! and Quizizz have been particularly effective in increasing
motivation and participation among students
Research has shown that students who use interactive quiz systems are more likely
to retain information and perform better in assessments The immediate feedback
provided by these systems allows students to understand their mistakes and correct
them in real-time, leading to improved learning outcomes
2.4 Technologies for Cloud-Based Quiz Systems
Android is currently the most popular mobile operating system today, with an
average market share of more than 50% worldwide It is an open-source
Linux-based operating system designed for touch screen mobile devices such as
smartphones and tablets The open-source nature of Android, coupled with the
unfettered license, allows device developers, mobile networks, and programmers toadapt and distribute Android freely These factors have helped make Android the
most popular smartphone platform in the world, accounting for 75% of the
worldwide smartphone market share as of Quarter 3, 2012, with a total of 500
million devices activated and 1.3 million activations per day
Developing an Android app that runs well on a particular Android phone or tablet issimple However, developing an app that runs well on all Android devices can be
extremely challenging because of the huge differences in operating system versions,
screen sizes, and device capabilities
Advantages of Android:
e As an open-source operating system, it is highly customizable and can be
freely edited without interference or prohibition from Google
Trang 24Diverse products, with many phone companies and technology devices
favoring Android for their devices, offer reasonable prices from popular tohigh-end
The massive Google Play Store app store
Friendly and easy to use
Ability to multitask, run multiple applications at the same time
it, you often have to buy a new device
Android devices are increasingly upgraded and support more hardware sensors Theadvancement of technology and user experience is driving the growth of the mobileapp design market Each new update of new operating systems will create new
improvements in mobile app design and features to better meet user needs
JavaScript is a popular, flexible, high-level programming language used to create
interactive websites and modern web applications It is executed by web browsers,allowing web developers to add dynamic and responsive features to their websites.JavaScript can also be used outside of the web browser, such as in server-side
application development and mobile application development
React is commonly used for front-end development due to its component-based
architecture and ease of integration with other libraries and frameworks
Trang 25Firebase and Firestore are popular choices for real-time database and scalable datastorage, offering robust and responsive platforms capable of handling dynamic data
and real-time interactions
These technologies enable the development of responsive and interactive quiz
systems that can handle large volumes of data and provide real-time updates to
users.
2.5 Case Studies and Applications
Several case studies illustrate the successful implementation of cloud-based quizsystems in educational settings For instance, the use of Google Forms and Firebase
to create customizable and interactive quizzes has been widely adopted These
systems allow educators to design quizzes that meet specific learning objectives andprovide valuable insights into student performance
The effectiveness of gamified quiz systems, such as those offered by Kahoot! and
Quizizz, in engaging students and enhancing learning outcomes has been
well-documented These case studies highlight the versatility and impact of cloud-basedquiz systems in various educational contexts
2.6 Challenges and Future Directions
Despite their advantages, cloud-based quiz systems face challenges such as data
privacy concerns, internet dependency, and the need for continuous updates and
maintenance Addressing these challenges requires ongoing research and
development Future directions may include the use of artificial intelligence to
personalize learning experiences, advanced analytics to provide deeper insights intostudent performance, and enhanced security measures to protect user data
Artificial intelligence can be used to create adaptive learning environments that
tailor quizzes to individual student needs, improving learning efficiency and
outcomes Enhanced security measures are crucial to protect sensitive student data
and ensure compliance with privacy regulations
Trang 26Chapter 3: BACKGROUND KNOWLEDGE
The development of a cloud-based quiz system tailored for student studying
represents a significant advancement in educational technology This initiative aims
to leverage cloud infrastructure to provide students with a versatile and accessible
platform for learning By harnessing the scalability, flexibility, and collaborative
capabilities of cloud computing, the quiz system offers a dynamic and engaging
learning experience for students across diverse educational settings
Key features of the cloud-based quiz system include user-friendly interfaces, time feedback mechanisms, daily quizzes, math quizzes, exam quizzes, manage
real-exam quizzes, and manage daily quizzes Through these features, administrators cancreate questions and students can access, and participate in quizzes anytime,
anywhere, using any internet-enabled device Additionally, the cloud-based
architecture ensures seamless scalability, allowing the platform to accommodate
varying levels of user activity and data volume
The implementation of security measures, such as data encryption and access
control, ensures the protection of sensitive student information stored in the cloud
Moreover, the system's analytics capabilities enable educators to track student
progress, identify learning trends, and personalize instruction based on individual
needs
Overall, the development of a cloud-based quiz system for student studying
represents a transformative step towards enhancing the effectiveness and
accessibility of educational assessment By harnessing the power of cloud
computing, this initiative empowers students to engage actively in their learning
journey, while providing educators with valuable insights to support student
SUCCESS.
10
Trang 273.1 Android OS Overview
3.1.1 Introduction
Android Inc was founded in Palo Alto, California, in October 2003 by Andy
Rubin, Rich Miner, Nick Sears, and Chris White Rubin described the Android
project as having "tremendous potential in developing smarter mobile devices that
are more aware of its owner's location and preferences" Android is a mobile
operating system based on a modified version of the Linux kernel and other
open-source software, designed primarily for touchscreen mobile devices such as
smartphones and tablets Android is developed by a consortium of developers
known as the Open Handset Alliance, though its most widely used version is
primarily developed by Google It was unveiled in November 2007, with the first
commercial Android device, the HTC Dream, being launched in September
2008.[1]
At its core, the operating system is known as the Android Open Source Project
(AOSP) and is free and open-source software (FOSS) primarily licensed under the
Apache License The source code has been used to develop variants of Android on arange of other electronics, such as game consoles, digital cameras, portable media
players, and PCs, each with a specialized user interface Some well-known
derivatives include Android TV for televisions and Wear OS for wearables, both
developed by Google Software packages on Android, which use the APK format,
are generally distributed through proprietary application stores like Google Play
Store, Amazon Appstore, Samsung Galaxy Store, Huawei AppGallery, Cafe
Bazaar, GetJar, and Aptoide, or open source platforms like F-Droid.[1]
Android has been the best-selling OS worldwide on smartphones since 2011 and on
tablets since 2013 As of May 2021, it had over three billion monthly active users,
the largest installed base of any operating system in the world, and as of January
2021, the Google Play Store featured over 3 million apps Android 14, released on
October 4, 2023, is the latest version, and the recently released Android 12.1/12L
II
Trang 28includes improvements specific to foldable phones, tablets, desktop-sized screens
and Chromebooks.[1]
The android platform integrates many outstanding features:
e Beautiful UI: Android OS basic screen provides a beautiful and intuitive user
interface
® Connectivity: GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth,
Wi-Fi, LTE, NFC, and WiMAX
e Storage: SQLite, a lightweight relational database, is used for data storage purposes.
® Media support: H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC,
HE-AAC, AAC 5.1, MP3, MIDI, Ogg Vorbis, WAV, JPEG, PNG, GIF, and BMP
e Messaging: SMS and MMS
e Web browser: Based on the open-source WebKit layout engine, coupled with
Chrome's V8 JavaScript engine supporting HTMLS and CSS3
e@ Multi-touch: Android has native support for multi-touch which was initially
made available in handsets such as HTC Hero
e Multi-tasking: The user can jump from one task to another, and at the same
time various applications can run simultaneously
e Resizable widgets: Widgets are resizable, so users can expand them to show
more content or shrink them to save space
e Multi-Language: Supports single-direction and bi-directional text.
e GCM: Google Cloud Messaging (GCM) is a service that lets developers send
short message data to their users on Android devices, without needing a
proprietary sync solution
e Wi-Fi Direct: A technology that lets apps discover and pair directly, over a
high-bandwidth peer-to-peer connection
e Android Beam: A popular NFC-based technology that lets users instantly
share, just by touching two NFC-enabled phones together
12
Trang 293.1.2 Characteristics
- Open source:
Android is built from the ground up allowing developers to create compelling
mobile apps that take full advantage of the strengths of existing handsets Android
is completely open, an application can call any of the core phone functions such asmaking calls, sending messages, or using the camera, allowing developers to createricher, more connected features capabilities for users Android is built on the open
Linux kernel In addition, it uses a virtual machine that has been optimized for
memory and hardware for mobile environments Android, which is open source, it
can be extended to freely combine emerging technologies This platform will
continue to be developed by the development community to create perfect mobile
applications
- Inter-app integration:
With Android, there is no difference between basic phone apps and third-party
apps They are built for equal access to a wide range of phone applications and
services With devices built on the Android platform, users can fully satisfy the
needs they like We can change the background screen, phone call pattern, or any
application We can even instruct the phone to only view the photos we like
- Higher Success Ratio:
Android provides a large library of application programming interfaces and toolsfor writing complex applications For example, Android can allow developers to
know the device's location and allow devices to communicate with each other to
create a widespread peer-to-peer social network In addition, Android includes a full
set of tools that make development easy
3.1.3 Architecture Android
Android is an open-source and Linux- grounded Operating System for mobile
bias like smartphones and tablet computers Android was developed by the Open
Handset Alliance, led by Google, and other companies Android offers a unified
approach to operation development for mobile bias which means inventors need
13
Trang 30only develop for Android, and their operations should be suitable to run on differentbiases powered by Android The first beta interpretation of the Android Software
Development Kit (SDK) was released by Google in 2007 whereas the first
marketable interpretation, Android1.0, was released in September 2008 On June
27, 2012, at the Google I/ O conference, Google blazoned the coming Android
interpretation,4.1 Jellybean Jellybean is an incremental update, with the primary
end of perfecting the stoner interface, both in terms of functionality and
performance The source law for Android is available under free and open-source
software licenses Google publishes the utmost of the law under the Apache License
interpretation2.0 and the rest, Linux kernel changes, under the GNU General PublicLicense interpretation 2 The android platform integrates numerous outstanding
An illustration of the architecture of an android, showing its several key
components and their supporting elements
14
Trang 31Activity Manager
LINUX KERNEL
Camera Bluetooth Flash Memory Binder (IPC)
Driver Driver Driver Driver
(phone), management of contacts (contacts), browsing the web (Browser),
messaging (SMS), working calendar (Calendar), reading e-mail (email-client), map(map), filming (camera) The applications are added as more like Securities
software (stock), games (games), dictionaries
- Application Framework:
This layer builds the toolkit - the elements are at a high level so that programmers
can quickly build the application It is written in Java, which has general usability to
save resources.
This is an open platform that has 2 advantages:
15
Trang 32For phone manufacturers: Can be customized to suit the phone configurationthey produce as well as to have a variety of models and styles suitable to usertastes Therefore, despite sharing the same android platform, Google's phonescan be different from Motorola, HTC, T-Mobile, and Samsung
For programmers: Allows programmers to use the APIs on the upper tier
without having to understand the underlying structure, giving programmers the
freedom to be creative because they only need to care about the content thatthe application they work on A very useful set of pre-built APIs such as
navigation systems, background services, communication betweenapplications, and high-level interface components
Introduce some of the components of this section:
Activity Manager: Manage the life cycles of an application as well as providetools to control activities
Telephony Manage: Provides tools to perform communications such asphone calls
XMPP Service: Provides tools for real-time communication
Location Manager: Allows to determine the location of the phone based on
the global positioning system GPS and Google Maps
Window Manager: Manage the construction and display of user interfaces aswell as organize the management of interfaces between applications
Notification Manager: Manage the display of notifications (such as alertswith messages, new e-mails, etc.)
Resource Manager: Manage static resources of applications including image,sound, layout, and string files (Components that are not written in
programming languages)
Libraries and Android runtime
> Android Runtime
16
Trang 33Android has a core library set to provide most of the functions available in
the core library of Java programming language
e Android Runtime: including Dalvik virtual machines and Android
libraries
Basic libraries: Android apps are developed on a Java environment, but
Dalvik is not a Java VM Android's basic libraries provide oysters with
all the functions in Java's basic library as well as Android's library
Dalvik Virtual Machine: Dalvik is a virtual machine for running Androidapplications, optimized to ensure that one device can efficiently run
multiple instances It relies on the Linux kernel for multithreading and
low-level memory management
This section has many libraries written in C/C++ so that software can be
used, those libraries are gathered into several groups such as:
System library (System c library): a library based on the c standard, usedonly by the operating system
Media Libraries: There are many codecs to support the playback andrecording of common audio, image, and video formats
Web Library (LibWebCore): This is a component for viewing content on
the web, used to build web browsing software (Android Browse) as well
as for other applications to embed It is extremely powerful, supportingmany powerful technologies such as HTMLS, JavaScript, CSS, DOM,and AJAX
SQLite Library: The database system that applications can use
> Libraries
Android provides several APIs for application development The following
list of basic APIs is provided by all Android-based devices:
17
Trang 34android.util: The basic utility package includes many low-level classes
such as management classes (List, Stack ) string processing classes, andXML processing classes
android.os: An operating system package that provides access to basic
services such as message passing, cross-communication, clocking, and
debugging
android.graphics: Provides low-level graphics classes that perform basicgraphics, color, and drawing functions
android.text: Text processing and rendering engine
android.database: Provides the required low-level classes for cursor
control when working with databases
android.content: Content programming interfaces used to manage data
access and publishing by providing resource manipulation services,
Content Providers, and packages
android.view: View is the most basic user interface layer All user
interfaces are created using a set of Views to provide components for
user interaction
android.widget: Built on top of the View package Widget classes are
pre-built interface components used to create user interfaces Widgets
include lists, buttons, input boxes, and layouts
com.google.android.maps: A set of high-level APIs that provide access
to built-in Android map controls from the built application Includes boththe MapView class as well as the Overlay and MapController for
interacting with the map inside the application
android.app: A package of high-level libraries that provide access to
application data The App Bundle also includes the Activity and Serviceclasses which are the basic components of every Android application
18
Trang 35android.provider: To facilitate developer access to standard ContentProviders (such as directory data), the Provider package includes classesthat allow access to the standard database in all Android distributions.
android.telephony: Telephony APIs that provide direct interaction withthe telephony layer in devices, allowing to creation, receiving, and track
calls, the status of calls, and SMS messages
android.webkit: The WebKit package that provides APIs for workingwith Web-based content includes a WebView class for creating webinterfaces, embedded in applications, and a cookie manager
Along with the Android APIs, there is also a set of C/C++ libraries such as:
OpenGL: A library for creating 3D graphics based on the OpenGLES 1.0API standard
FreeType: Supports bitmap and vector font processing
GGL: Basic library, used to provide 2D graphics engines
Libc: The standard c library, optimized for Linux-based devices SQLiteEngine: A lightweight relational database for storing application data
SSL: Supports the use of Secure Sockets Layer encryption protocol inInternet communication security
- Linux Kernel
The android operating system is based on the Linux kernel, specifically Linux
kernel version 2.6, which is shown in this bottom layer All the operations of the
phone that want to be executed are done at a low level at this layer including
memory management, communication with the hardware (driver model), and
security implementation security), and process management
This layer has the main components:
e Display Driver: Controls the display on the screen as well as receiving user
controls on the screen (moving, touch )
e Camera Driver: Controls the operation of the camera and receives the data
stream from the camera
19
Trang 36e Bluetooth Driver: Controls the Bluetooth transmitter and receiver.
e USB driver: Manage the operation of USB communication ports
e Keypad driver: Control the keyboard.
e Wi-Fi Driver: Responsible for Wi-Fi reception
e Audio Driver: controls audio transceivers, decoding audio signals into digital
signals and vice versa
e Binder IPC Driver: Responsible for connecting and communicating with radio
networks such as CDMA, GSM, 3G, 4G, and E to ensure communication
functions are performed
e M-System Driver: Manage read and write on memory devices such as SD
cards, flash
e@ Power Management: Monitor power consumption.
3.2 Visual Studio Code
3.2.1 Introduction
Visual Studio Code
Figure 3 2: Visual Studio Code logo
Visual Studio Code was first announced on April 29, 2015 by Microsoft at the
2015 Build conference A preview build was released shortly thereafter [2]
On November 18, 2015, the source code of Visual Studio Code was released underthe MIT License and made available on GitHub Extension support was also
announced On April 14, 2016, Visual Studio Code graduated from the public
20
Trang 37preview stage and was released to the web Microsoft has released most of Visual
Studio Code's source code on GitHub under the permissive MIT License, while theeditor itself[clarification needed] is distributed by Microsoft as proprietary
freeware [2]
Visual Studio Code, also commonly referred to as VS Code, is a source-code editor
developed by Microsoft for Windows, Linux, macOS and web browsers Features
include support for debugging, syntax highlighting, intelligent code completion,
snippets, code refactoring, and embedded version control with Git Users can
change the theme, keyboard shortcuts, preferences, and install extensions that add
- A versatile code editor:
Visual Studio Code is a powerful tool for developers, supporting a vast array of
programming languages like C, C#, Java, Python, and more It shares the
underlying editor component ("Monaco") with Azure DevOps
The downloadable version leverages the Electron framework, commonly used for
building Node.js web applications There's also a browser-based version, accessible
at https://code.visualstudio.com/blogs/2021/10/20/vscode-dev, that allows editing
local files and remote repositories without installation
For most languages, Visual Studio Code offers core functionalities like syntax
highlighting, code folding, and configurable snippets It comes pre-loaded with
IntelliSense for specific languages and debugging support for Node.js Additional
language support is readily available through free extensions on the VS Code
Marketplace
21
Trang 38- Flexible workspace and customization:
Unlike traditional project systems, Visual Studio Code allows opening individual
folders or groups (workspaces) for later use This fosters a language-agnostic
approach, making it suitable for various programming languages Unwanted files
and folders can be excluded through settings Notably, many features are accessiblethrough the command palette, enhancing keyboard accessibility
- Extensibility and built-in functionalities:
Visual Studio Code thrives on extensions, offering a central repository for editor
enhancements and language support These extensions can introduce new languagesupport, themes, debuggers, and even static code analysis capabilities
Version control is seamlessly integrated, with a dedicated tab for managing changes
and accessing version control settings Users can link to supported systems like Gitand directly perform actions like creating repositories and making push/pull
requests.
It's important to note that Visual Studio Code collects usage data for product
improvement While this telemetry can be disabled, the data itself is publicly
accessible due to the product's open-source nature
3.2.3 Advantage
- Free and Open Source: VSCode is free and open source software, allowing users
to freely download, use, and modify it as needed This makes VSCode more
accessible to everyone, especially students and beginner programmers
- Cross-platform support: VSCode works well on many popular operating systemssuch as Windows, macOS, and Linux As a result, users can use VSCode regardless
of which computer they are using
- Lightweight and intuitive interface: VSCode has a simple, intuitive, and
easy-to-use easy-to-user interface This interface can be customized according to the easy-to-user's personal
preferences, helping to enhance the user experience
22
Trang 39- Support for many programming languages: VSCode supports a large number of
popular programming languages such as C, C++, Java, Python, JavaScript, PHP,
Ruby, Go, Rust, Swift, etc This makes VSCode a versatile tool for many types of
software development projects
- Large and thriving community: VSCode has a large and active community of
users and developers This community regularly shares knowledge, experiences andcreates extensions that enhance the functionality of VSCode
- Lots of extensions: VSCode has a huge extension repository with thousands of
free and paid extensions These extensions provide more features and functions to
VSCode, helping to meet the diverse needs of users
- Git integration: VSCode integrates Git right into the interface, making it easy for
users to manage source code versions and collaborate with other programmers
- Debugging support: VSCode provides powerful debugging features, making it
easy for users to identify and fix errors in source code
- Fast speed and high performance: VSCode is optimized to run quickly and
smoothly, even on low-configuration computers
3.2.4 Disadvantage
- System resource consumption: Due to the use of Electron, VSCode can consumemore system resources than other source code editors This can affect the
performance of your computer, especially low-end computers
- Bugs: Like any other software, VSCode can also have bugs However, these are
usually quickly fixed by the developer community
- Some advanced features require extensions: Some advanced features of VSCode,such as support for certain programming languages or development frameworks,
require extensions This can make the interface cluttered and difficult to use
23
Trang 40- No built-in features for some programming languages: VSCode does not providebuilt-in features for all programming languages For these languages, users need toinstall third-party extensions.
3.3 Flutter - Cross platform for Mobile
3.3.1 Introduction
« Flutter
Figure 3 3: Flutter logo
Flutter is a cross-platform UI toolkit created by Google It allows developers tobuild native-looking applications for iOS, Android, web, and desktop from a singlecodebase Flutter uses the Dart programming language, which is compiled to nativecode for each platform This results in high-performance applications that feel
native to the platform they are running on [4],[6]
Flutter is a relatively new framework, but it has quickly gained popularity due to its
performance, ease of use, and rich feature set It is used by a wide range of
companies, including Google, Alibaba, and eBay
- Architecture:
24