UNIVERSITY OF SUNDERLAND
ASSIGNMENT COVERSHEET
Student Name: Anisha Baskota
Student no: 229859371
Academic year: 2022/3
Programme: BSC (Hons) Computer System Engineering
Assessment Title: Baby Buy
Module Code and Name: CET: 343 Android Mobile Development
Part: A
Introduction
A busy several years have passed for app developers. The universe has been swept away
by mobile development, and designers and developers are using their creativity to stay up
with the rapidly evolving market. This assignment is all about several methods for creating
mobile applications.
I will produce a technical report in this section, including with documentation, a front cover, a
design with a wireframe, and information about the navigation layout. In addition, I'll examine
and compare the various methods for designing and developing mobile apps, as well as their
operating systems and programming languages. I will also go into great detail regarding the
functionality of the program, and then test results and an evaluation will be added.
Analysis
We are living in the 21st century. As having a portable device can make people feel more
secure and keep everyone connected. Having a cell phone can be lifesaving in an
emergency since it allows for a speedy response. Distinct operating systems can be used for
a variety of tasks and are designed for specific types of hardware. While iOS is targeted for
iPhone and iPad, MacOS is made for Mac PCs.
The following describes a few mobile operating systems:
1. Android OS:
Based on the Linux kernel, Android is a mobile operating system created by Google that is
primarily intended for touch screen mobile devices like Smartphone and tablets. Given that it
is an open source platform; anyone may use, change, and distribute its source code.
Numerous smartphones, such as the Samsung Galaxy, HTC One, Sony Xperia, Motorola
Droid, and LG G series, run Android.
2. iOS
The iPhone, iPad, and iPod Touch are the only mobile devices that run iOS, Apple's
proprietary mobile operating system. It has a Mac OS X operating system foundation and
offers customers a dynamic, user-friendly interface for interacting with their products.
Numerous built-in apps are available on iOS, including Messages, Mail, Safari, Calendar,
and Maps. It also supports a huge selection of apps from third parties.
Various methodological approaches to native mobile design
Following are the various methodological approaches to native mobile design:
Native Application
Native application development is the development of software applications for a specific
platform or device. Unlike hybrid or web apps, native apps are not web-based. One app can
only be produced for one platform at a time since native apps are created in the machine
language of the hardware platform for which they are intended. Because of this, native apps
perform better overall. Native apps also provide the most powerful and easy-to-use device
access support, including access to the smart phone’s camera and GPS.
Hybrid Applications
In general, hybrid apps are online apps that have been encapsulated in native code. These
apps offer the advantage of being developed with a single codebase for several platforms,
including iOS and Android, and function nearly like native apps. In the case of React Native,
this is made possible via native code that is rendered but is actually implemented in
JavaScript. Along with having a user interface similar to a native app, hybrid apps also have
good device access thanks to packages or libraries that enable support for all of the smart
phone’s built-in functionality, such as the camera and GPS.
Web Application
Last but not least, web apps are applications that operate as websites through a browser
and are preferably browsed on a Smartphone. This kind of programme typically has less
device access, struggles to imitate the native user interface, and performs worse overall.
Progressive web apps (PWA), which have more in common with native or hybrid solutions,
are one recent example of how web apps are becoming a more popular option for app
development (Budiu, 2013.)
Cross-platform development takes a different approach.
Cross-platform development is focused on building the same programme that can run on
numerous systems as opposed to just one application for one platform. It is a type of
software engineering that entails developing software that works with various operating
systems, including Windows, Mac, Linux, iOS, and Android. Due to its capacity to enable
developers to construct apps with a single code base that can function on various platforms,
cross-platform development is gaining popularity. This is especially helpful for companies
who wish to connect with a diverse audience across many channels.
Operating System
Android
Android is an open source mobile operating system that was created specifically for
touchscreen mobile devices like smart phones and tablets. It is based on a modified version
of the Linux kernel. The Open Handset Alliance, a group of developers, creates the Android
operating system. With the help of a modified version of the Java programming language, a
sizable community of developers creates "apps" for Android that increases the capabilities of
devices. In October 2020, Google Play, the company's app store, offered more than 2.7
million Android-compatible applications. Android OS, Apple OS, and Windows OS are the
three most widely used mobile operating systems. There are numerous mobile operating
systems that are used and have unique purposes. The Google corporation makes the
Software Development Kit (SDK), a tool that helps programmers in the design and
development of applications, available for Android users.
IOS
Apple Inc. developed the mobile operating system IOS (formerly known as iPhone OS) for
the iPhone, iPad, and iPod Touch. After Android is a mobile operating system where many of
the features shared between Mac OS X and IOS, including the capacity to sync with iTunes
and use the App Store to download software, are present in both operating systems the IOS.
The user interface on iOS is built around the idea of direct manipulation and uses multi-touch
gestures including pinching, swiping, and reverse pinching. Additionally, iOS has a number
of accessibility tools like Voiceover, which enables users who are blind to utilize a screen
reader to communicate with the [Link] with a number of essential apps including Mail,
Calendar, Photos, Music, and Safari, iOS also offers third-party apps that can be
downloaded through the App Store. The use of iCloud and AirPlay is also supported by iOS,
enabling users to access material on other Apple [Link] is a closed-source system,
which means that other developers cannot alter it. This guarantees that consumers always
have access to the most recent operating system version and a consistent user experience
across all devices.
A comparison of the above mobile operating systems is provided in the tables below.
Andriod iOS
User Interface Due to its open source core, Android enables more individualized and
customizable mobile experiences. iOS has a more uniform user experience, with all users
having the same look and feel
App store Android’s Google Play Store offers more apps, but the quality of the apps can
be questionable due to the lack of a review process OS offers a more accurate selection of
apps, with a more rigorous review process that ensures a higher quality of apps
Security Android has been known to be less secure than iOS, as its open source
nature makes it more vulnerable to malicious software iOS has a more secure system
due to its closed source nature and rigorous review process for apps
Updates Android updates may take longer to reach users, as they must be approved
by device manufacturers and carriers first iOS updates are released directly to users,
meaning they are available as soon as they are released |
Integrated Development Environment Android studio,Intellij xCode,App Code
ProgarmmingLanguage Java ,Kotlin Swift
Battery Use Very High Very Low
Different kind of Programming Languages
Java vs. Swift
Two of the most widely used programming languages for creating applications are Swift and
Java. Sun Microsystems created Java, in the 1990s. Applications for the web, mobile
devices, and organizations are made using it. Swift is a programming language created by
Apple that is used to make software for their operating systems, including macOS, iOS, and
watchOS.
While Swift and Java both have their own benefits and drawbacks, a study indicated that
Swift slightly outperformed Java in terms of readability, maintainability, and development
speed. Swift was discovered to be more understandable and faster to write, making it
simpler for developers to use and maintain. Furthermore, it was discovered that Swift had
less security flaws than Java, making it safer.
The study by (Ahmadi, 2016)concludes that while both Java and Swift have their own
benefits and disadvantages, Swift may be the superior choice for developing apps due to its
quicker development pace, readability, and maintainability.
Comparison table of java vs. Swift are as follow:
Java Swift
Java is a general-purpose, object-oriented programming language developed by Sun
Microsystems in 1995 Swift is a general-purpose, multi-paradigm, compiled programming
language developed by Apple Inc. in 2014
Java is statically typed and strongly typed language Swift is a statically typed and strongly
typed language.
Java is platform [Link] is platform dependent.
Java uses the Java Virtual Machine (JVM) to compile the code Swift uses LLVM compiler
to compile the code
Kotlin vs Java
In respect to Java, Kotlin is a current language with a better syntax and increased
readability. Compared to Java, it has more robust features, better compile-time safety, and
fewer boilerplate code. Kotlin is the preferred language for many developers and companies
since it is more effective and offers greater Java compatibility.
Comparison table of java vs Kotlin are as follow:
Kotlin Java
Kotlin is platform independent Java is platform dependent
Kotlin is interoperable with Java and other JVM languages Java is not interoperable with
other JVM languages
Kotlin supports both object-oriented and functional programming Java does not support
functional programming
It partially support android 3.4verson It fully support Android 3.4 version
Code quality is not optimized Code Quality is has excellent optimization
Storage Designs
S3 (Amazon Simple Storage Service)
Large, scalable, and reasonably priced cloud storage provider Amazon S3 can store a lot of
data. The service can handle large uploads, transfers, and questions with no issues.
Cloud storage APIs
With the offering of the services, developers can store data on the cloud and control access
to it by utilizing authentication and other access options.
Google Cloud Storage API
By collaborating with Google, developers can benefit from the company's scalability and
security know-how. This company is adept at working with others in a team environment.
Google offers both a JSON API and an XML API.
Using box and drop box
Users of cloud storage services like box and Dropbox may safely save and share files
including Word documents, PDFs, and photos from any location. For examples, a user may
publish a presentation on Drop box and invite their coworkers to collaborate using the link.
Tool for Development
Android Studio
All Android applications may be created using Android Studio (Andriod Developers, n.d.) To
design, create, maintain, test, debug, and publish our application, it includes all Android SDK
tools.
SDK manager
It is one of the most important tools for keeping all the installed project-related components
updated. Additionally, it alerts us to any concerns with compatibility or project incompatibility
and prompts us to download any necessary components.
AVD manager
To support higher level SDKs in the case that our device is incompatible, it is utilised to build
virtual devices with any desired API level. It is challenging to test applications using
emulators since they may run slightly more slowly than genuine devices.
SQLLite
To create any simple applications and carry out any CRUD (Create, Update, and Delete)
actions, Android also supports an internal database called Android SQLite. We use other
external databases for complicated applications because it can't support a large volume of
data.
Gradle build
The most recent addition to Android Studio is Gradle Scripts. Essentially, it is an automated
build system that is used to automate the various stages of creating an application, including
design, programming, testing, debugging, and publishing. By listing all supported jar files,
SDKs, version names, levels, compiled SDK versions, and build tools versions; we must
configure the project and modules. the produced app is compatible with the testing
device/emulator, in order to confirm.
Appropriate native mobile standards:
Following are the appropriate native mobile standards
1. Create designs for particular platforms and form factors of devices.
2. Pay close attention to the user experience, making use of responsive design, intuitive
navigation, and platform-specific features
3. Enhance performance and quickness.
4. Make use of platform-specific recommendations for design, user experience, and
interactivity.
5. Make use of hardware features unique to the device, such as the camera,
accelerometer, and GPS.
6. Ensure that the system is compatible with the most recent release.
7. Integrate with authentication and payment mechanisms that are particular to devices.
8. Implement native analytics and testing software.
9. Adhere to security and data privacy best practices.
Design
This project is built using the functional design approach, which makes it easier to
understanding the design by outlining the project's architecture, application cases, and
implementations more in the manner of a prototype model. For examples, this project has
various modules, each with its own functionality and additional supporting functionalities. A
completely functioning application is created by designing, implementing, and integrating
every feature.
This section will demonstrate the prototype's design of my project
Screen architecture
1. Firstly we open our application, when you first begin the app, a launch screen with a
logo and a picture appears. The individual cannot communicate with this; it is only for
demonstration purposes.
2. We must enter our registered login information on the login page in order to get into
the app.
3. As soon as you click the link to register a new account, the signup screen opens.
Register yourself here by completing the necessary fields.
4. After successfully logging in, we will be transferred to the home screen where we can
browse category and manage product.
5. By clicking into Add category we can add anything and also we can update it.
6. Also by clicking into manage product we can edit delete and also mark purchased
simultaneously
Wireframe:
Layout of the Application
The Babybuy application looks like this:
1. Login Page:
When a user opens the app, the first page they view is the login page of Baby buy.
[Link] Successful Login
Adding and Updating Category name
Adding, updating and deleting product
Material Design Principle
Based on the following factors, Babybuy design was bound and follows to material design :
1. In concerns to how the apps display content, a card view is used because cards have
Card views have an elevation attribute for regulating shadow, the ability to change the
background easily.
2. Since the layout and category content of navigation drawers clearly identify them as
navigation, they have been used to help users navigate through the app. Navigation drawers
also order destinations according to user importance, with frequent attractions appearing first
and related ones grouped together. Finally, navigation drawers can be shown or hidden to
accommodate different app layouts.
3. Users have been given the option to add information and make options for the app's
delegations via text fields and selections.
4. Toast has been used in communication to notify consumers of important messages
and information.
Functionality
We can see that I created single android application. The application has a wide range of
features, including login and registration, category, Updating category, Managing Product,
editing product ,deleting product, sending sms ,user profile and logging out. The Android
app's entire functionality is described below:
Needs To login and Registration:
After providing their email address and password, users can log in using this application
page. The registration page can be used by the user to create a new account if they don't
already have one.
Adding /Updating Category
After login into we need to add category like I have added lipbalm, brush toothpaste and so
on my category field also we having successfully updated category.
Managing Product by adding and deleting product
After successfully adding and updating product we move forward managing product by
adding and deleting the product.
User profile
It also contains a purchase and to-buy function that lets customers build user profiles so they
can keep organized and on top of their purchasing demands. All the information required to
make purchases, including shipping addresses, payment options, and order history, is
contained in a user's profile. Additionally, this function enables users to save goods they are
interested in, making it simple for them to locate them again in the future.
Logging out
Users of the Babybuy application can safely end their current session by using the Logout
option. The programme will erase all session data upon a user's logout and cease to be able
to monitor user behaviour. User data is kept secure and no other user can access the user's
account thanks to the logout feature. The user can use the logout button from the top menu
to log out. The user will then be taken back to the login page, ending the current session.
Storage
SQLite is a relational database management system contained in a C programming library.
In contrast to many other database management systems, SQLite is not a client–server
database engine. Rather, it is embedded into the end program. SQLite is ACID-compliant
and implements most of the SQL standard, using a dynamically and weakly typed SQL
syntax that does not guarantee the domain integrity.
The advantages of using SQLite include: Structured query databases
• It is small.
• No internet connection is necessary.
• Access many databases simultaneously.
SQLite Database Methods for Android Mobile Applications:
• Insert,
• Update,
• Delete
• Query (view data)
Why
1. Even in the wake of system failures and power outages, SQLITe remains
simultaneous, continuous, independent, and lasting
2. There is no setup or management required.
3. The database is kept in its entire. Excellent for use as a file format for application
4. Supports gigabyte-sized strings and blob as well as databases that are terabytes in
size.
5. It needs to be written in very small code—less than 500 KiB with all optional features
disabled—or in considerably smaller code.
6. Application Program Interface (API) that is straightforward and simple to use, with the
amazing advantage of binding different languages.
7. It is accessible as an ANSI-C code and simple to incorporate into a bigger project.
8. SQLite has no external dependencies because it is self-contained.
Testing
I would examine my app's usability on android mobile platforms.
So how are testing of mobile usability important?
Conducting mobile usability tests is essential in order to make sure app is optimized for use
on mobile devices. These tests can identify any potential usability issues that are specific to
mobile devices, as well as help to ensure users have an enjoyable experience when
accessing the website or app on a mobile device. Additionally, mobile usability tests can
detect any unexpected behaviors that could occur when using the app on a mobile device.
Test Documentation –
Action Inputs Expected Output ActualOutput Test result
Runing Application Succesfuly
Run appliction Succesfuly
Run appliction Passed
Click the login button after entering an empty email and password. Emailand password
Required fields are all Required fields are all Passed
Enter a invalid email address and a wrong password, then click
login Email
sss@gmailcom
Password
******* Invalid email Invalid email passed
Click the Register button. must enter the login page Entered in login page
Passed
Visit the login page right away Click the button on
Already have
account? Login Must go to the login page Accessed the login page Passed
Adding a new category name Click on +button Adding new category name
Successfully added category name Pass
Updating a new category name Click on pencil edit button Updating old name with
new one Updated successfully category namepass
Adding
New product Click on + Adding new Product name Added successfully Pass
Deleting exi
Sting Produc
t Deleting existing product Sucessfully deleted
Pass
Click onsend
sms
Fill of 7 fileds available in the sms screen Sms sended sucessfully pass
Tap on size click
chart
Data of wight and height Displayed in the screen Pass
Taping on lo click
Gout field Looged out Sucessfully logged out pass
Evaluation
Positives
The app was finally a success. My login and register sites' forms are easy to fill out, and
when anything isn't filled in or isn't filled in correctly, the appropriate error alerts [Link]
may log in after registration, indicating that the database is functioning [Link]
safeguarding their data. These pages can be accessed, edited, and viewed in the proper
[Link] updating category was function well also adding and deleting product was
also [Link] used purchase and to buy features also we had the facility if user profile
and atlast the looging out was successfully executed.
Negative
As my UI design doesnot really seems good as professional I think it should be
[Link] we don’t delete and edit option in user [Link] should add more functions
like payment systemsand so on.
Conclusion
Since you can see from the image above, I developed the Babybuy application successfully
and it now has a number of functions including login and registration, category, edit and
remove category, and coming soon. Each feature operates in a unique manner. Users can
signup and log in. The user can change and delete the data that has already been entered in
the category after logging in and registering. Additionally, users have access to the user
profile's camera and specific images, which they may subsequently share with others.
The software has also been evaluated. Although I encountered several obstacles while
conducting the testing, it was ultimately successful, and none of the application's
functionalities would be impacted by the errors That discovered. All of the functions that
users require are present in the application. However, we can add a lot more essential
functionality in the future.
The babybuy app will use both local databases to store data (SQLite ). If there were more
developers, the application would run more effectively. The application will eventually be
enhanced even further as the user base expands. Many will [Link] features
Bibliography
Ahmadi, M. &. E. H., 2016. A comparison study between Java and Swift.
Andriod Developers, n.d. [Link]. [Online]
Available at: [Link]
[Accessed 31 December 2022].
Budiu, R., 2013.. Mobile: Native Apps, Web Apps, and Hybrid App. Nielsen Norman Group,
5(20).