Creating A Notepad Application For Android Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

The concept is a notepad application for the Android OS. It will accept input from the android's keyboard. My objective is to keep the app simple for the user; due to having to jot down various pieces of information rapidly it would be a real setback having to navigate through endless menus to get what you want. My real user is Chris. He has the job of repairing bike parts and thus jotting down times and dates, or even a simple "to do" list will help him stay organised. I took this idea because it will allow me to explore development on a mobile system; the technology advances so quickly I want to get into it before I get left behind.

I came to know Chris through my part time job in America working in a bike shop. The filing system and way of obtaining notes was impossibly unorganised, too often would a customer turn up unexpected or people would lose their notes. This is where I got the idea for my project. I aim to create a notepad application that is based heavily around the time and date, mirroring their current system but in a far more efficient manner.

Problem Definition

The current system is paper based or with sticky notes; this can be a pain to organise, you may lose the notes or they may be damaged. This was perfectly fine in the slower periods of the year but now that the bike shop is getting a lot busier taking paper notes is extremely unsuitable for this. For the staff it was becoming far too time consuming to organise and maintain these notes. Due to this it is required that a faster, more efficient method be created.

There is no real filing system, just piles of papers with an area left for the most important, however generally the most important things are written on the whiteboard for everyone to see.

Part 2 Investigation.

2.1 Current System

In order to obtain the best knowledge as to their current system I decided to perform an interview with the candidates. Due to geographical differences this interview was conducted over the phone:

Q: Please describe the current system you have in place.

A: Well it's quite simple really; we have a white board and endless amounts of paper. People just jot down whatever they please in a really unorganised manner, sometimes we don't even have the date on them.

Q: How many notes do you take on average in a day?

A: It varies with the time of year, at the moment we use about 3 pages of notes per day and the whiteboard is in constant use. This may not initially sound like much but over the course of a week it adds up quickly.

Q: Do you update these notes often?

A: Yes, for example if a customer cannot pick up a bike on date X we have to move it to date Y, however we tend to use the whiteboard for this

Q: How do you archive these notes?

A: We organise them by date so that we always have the freshest notes up front. The most urgent ones are posted on the whiteboard aswell.

From this interview we can ascertain that the current system is chaotic and not suitable for their work environment. The notes are updated frequently but are very disorganised

Data Flow diagram of new system

1.0

Display notes

(Default: Current month)

USER

Notes

3.0

Search by date

2.0

Search by content

Problem areas in the current system

The current system is incredibly disorganised with no clear structure. Notes are only organised by month and year, rather than day. This means that when accessing the month folder it is incredibly difficult to locate specific days

Description of processes, data flows and data stores

When the program is loaded up the first thing it will always do is load the notes from the current month, organised by date. It does this by accessing the data store of the notes and searching through them for notes that have the same month as the current system clock. From this list the user can access search utilities through the built in android pop-up menu. This can be done either by specific dates or by month/year. The list is always organised whereby the newest notes are first.

Data dictionary

Name

Content

Data type

Size or range

Text_Note

User inputted text.

String

120 characters

Note_Title

Title of the note

String

40 characters

Note_ID

ID of the note for database sorting

Int

3

Input forms, output forms, report formats from existing system

(Need to get a picture for here)

Algorithms used by current system that must be applied to the new system

Create new note

Search by content

Part 3 Objectives of the new system

General objectives.

Fast and efficient

Must be able to navigate to any part of the program in a maximum of three clicks.

A fast notepad application, all features must load in under a second

3.2 Specific objectives.

Interface

Three GUIs

Main GUI that lists every note available in the database by order of creation, from here you may add another note, edit existing notes or delete notes.

Note editing GUI that allows the user to enter their title and body content of the note. From here the user will be able to confirm taking them back to the original GUI.

Search GUI searches the database by title and content and lists results found underneath the search box.

Storage

The notes will be stored in a SQL database

Each note will have an ID, title and content

The database will be local to the android

Lifespan of app

onCreate loads up the main list of notes

onResume returns to the most recent activity

onPause halts the current activity but saves the state

onExit destroys current state, saves the program and destroys the activity.

Part 4 Entity-relationship diagram and entity descriptions

4.1 E-R diagram

Years

Months

Day

Notes

4.2 Entity descriptions

Each day of the month can have many notes attached to it.

Part 5 Object Analysis diagrams

5.1 Inheritance diagrams

Android startup

DBLink

Edit

Main Activity

Search

Save

Part 6 other models of abstraction e.g. graphs`

Android Activity diagram

onStart

Load current month

onCreate

draw GUIs

Activity in background

onPause

Activity running in background

onResume

Activity is running

Activity in foreground

onStop

Closing.

Save notes

User decides to exit

User decides begin again

onDestroy

Destroy GUI

Save note.

Lifespan of the notes activity

Part 7 Constraints

Hardware constraints

528 MHz Processor

512mb ROM

374mb RAM

Android 2.1

Software constraints

My plan for the project is for it to be open source. However if a purchase were to be made the user would have the right to personally use the program, not to distribute it or copy it in any manner. Must be using android 2.1 firmware or higher, the project may be updated for new firmware's over time. If I was to sell this to my user it would be cheap as it has to be comparable to their current purchases which are simply paper and pens.

User's knowledge of computers

My user has a competent knowledge of computers and mobile phones. He has owned an android phone for roughly a year now so he will not need to be instructed on the basics of android.

Who will be allowed to use the various parts of the system

The notes will belong to that phone; they can also be accessed from a computer. A password will be optional when accessing them on a phone. For this the standard android touch password system could be used. This is the method of using a touch screen to draw a pattern in order to unlock the phone, a grid of 9 circles is usually used.

Part 8 Limitations

8.1 Areas which will not be included in your program

Picture notes and touch screen notes.

8.2 Future development plans

I may add support for picture that utilise the camera and touch screen notes in the future, however not all android phones have a camera so this may not be worth it.

Synchronisation of multiple phones' notes may be useful.

Part 9 Consideration of alternative solutions

Alternatively a proper filing system could be used, however this would require hiring somebody to organise it all which can be costly. It also uses up a large amount of space (filing cabinets).

Other note taking applications on the market are fairly costly / buggy. They also can be clumsy and not allow you to take down a quick note, a key part of my application.

Part 10 Justification of chosen solution

I believe that my solution to this problem is the best for the situation. All of the members of the shop have a decent knowledge of how to use technology and thus will adapt to the program easily. The alternatives are all clumsy and require far too much effort / space. By using my method they have a cheap, efficient program that will make their lives a lot easier.

DESIGN

1 Outline System Design

1.1 System Flow charts

New Note

Keyboard

List Notes

Modify existing note

Access Notes

.txt on phone storage

Keyboard

Error log

.txt on phone storage

2 User Interface Designs

Note List

Add note

Refresh notes

Pop up menu accessed by pressing the menu key on the phone

Title of note / first 15 characters if no title

Title of note / first 15 characters if no title

Scrollable

Title of note / first 15 characters if no title

Title of note / first 15 characters if no title

Title of note / first 15 characters if no title

Refresh Note

Add Note

Title

Body

Confirm

3 Hardware Specification

CPU Processing Speed

528 MHz

Storage

ROM: 512 MB

RAM: 384 MB

Expansion slot:

microSDâ„¢ memory card (SD 2.0 compatible)

Supports up to 32 GB

Connectors

3.5 mm stereo audio jack

Standard micro-USB (5-pin micro-USB 2.0)

Sensors

G-Sensor

Digital compass

Proximity sensor

Ambient light sensor

HTC Widgets

Bookmarks, Calculator, Calendar, Clock, FM Radio, Friend Stream, Mail, Messages, Music, News, People, Stocks, Weather, Settings (such as Profile, Ringtone, Wi-Fi™, Bluetooth®), and more

Downloadable widgets

Multimedia

Photos application for viewing photos and videos

Music

FM Radio

Audio supported formats:

Playback:.aac, .amr, .ogg, .m4a, .mid, mp3, .wav, .wma

Recording:.amr

Video supported formats:

Playback:.3gp, .3g2, .mp4, .wmv

Recording:.3gp

Power & Battery1

Battery type: Rechargeable Lithium-ion battery

Capacity: 1300 mAh

Talk time:

WCDMA: Up to 440 mins

GSM: Up to 490 mins

Standby time2:

WCDMA: Up to 690 hours

GSM: Up to 480 hours

Network3

Europe:

HSPA/WCDMA: 900/2100 MHz

GSM: 850/900/1800/1900 MHz

Asia Pacific:

HSPA/WCDMA: 900/2100 MHz

GSM: 850/900/1800/1900 MHz

Platform

Androidâ„¢ 2.1 (Éclair) with HTC Senseâ„¢

Camera

5 megapixel color camera

Auto focus and flash

Geotagging

Internet4

3G:

Up to 7.2 Mbps download speed

Up to 384 kbps upload speed

GPRS:

Up to 114 kbps downloading

EDGE:

Up to 560 kbps downloading

Wi-Fiâ„¢:

IEEE 802.11 b/g

Bluetooth®

Bluetooth® 2.1 with Enhanced Data Rate

A2DP for wireless stereo headsets

FTP and OPP (object push) for file transfer

Other supported profiles: AVRCP, GAP, GOEP, HFP, HSP, PBAP, SPP, Service Discovery Application Profile

Recommended Windows System Requirements

Windows® 7, Windows Vista®, or Windows XP

HTC Sync Suite

*HTC Wildfire specifications from: http://www.htc.com/www/product/wildfire/specification.html

4 Program structure

Main note list

Search notes

Display Notes

Read from saved notes

Edit existing note

Create new note

Save note

5 Design Data Dictionary

Name

Content

Data type

Size or range

noteContent

User inputted text.

Text / String

Max 60 characters

noteTitle

Title of the note

Text / String

Max 20 characters

noteID

Location of the note in the database

Numerical

intents

Used to move between different android activities

intent

6 Object diagrams and class definitions

Please see section 6 of my analysis for an overview of how I will utilise the activity structure of android.

7 File organisation

The notes will be accessed via an SQL database that I will set up on the android phone. This database will have 4 columns; ID Title Body and Date in order to organise the data. The date of the note will be pulled from the android system clock on creation. ID is for database cursor utilisation. Title and Body can be edited whenever the edit activity is called.

8 Algorithms

Listing notes:

Get(amountofNotes)

noteLocation = 0

Loop

Create noteEntity

Read noteContent[noteLocation]

titleChecker  noteContent

noteTitle  titleChecker //puts return value into noteTitle

noteDate <- dateChecker

noteLocation  noteLocation +1

until (noteLocation > amountofNotes)

end

titleChecker:

Get noteContent

if (firstCharacter = "+")

title = // regex which includes all characters until another + is found

Else

Title = "untitled"

Return title

end

dateChecker:

Get noteContent

MAXCHAR = 8

Scan noteContent UNTIL char="-"

noteDate <- char UNTIL "-"

if (noteDate > 8char)

return error

else

return noteDate

end

Saving Notes:

Get noteContent

Get amountofNotes

If (noteLocation != null)

noteLocation[currentLocation]  noteTitle

noteLocation[currentLocation]  noteContent

else

noteLocation[currentLocation]  noteTitle

noteLocation[amountofNotes+1]  noteContent

amountofNotes  +1

end

9 Detailed design of printed output

(Note sure how I would do this on android)

10 Preliminary test plan

Stage 1:

Test the navigation. Are the menu choices transitioning to the correct location, do the options on the pop up menu work? Does the calculator open on its own layer? Are the debugging options disabled?

Stage 2:

Does the data flow correctly? Can the required data be accessed at each stage without any errors?

Stage 3:

Can it transition through different activities correctly?

Stage 4:

When saving the data is it saved into the correct locations? Can the saved data be read by the system?

Stage 5:

Do the sorting operations work? Can the data be searched successfully?

Stage 6:

Does the application fit the user's needs? Has it solved the initial problem?

11 Detailed test data

I will try every character available on the android default keyboard, specifically how it will respond to the characters "x - + :" due to those being the characters it uses to organise notes. "::" may give errors if they are placed inside the note content, it may end up with any portions of the note beyond it not being displayed. In order to test this I will manually create .txt files on the computer and place them on the android to check if the program can read the files correctly. I will also input the same data on the android itself, later checking the PC .txt file for any errors.

SYSTEM SPEC

1. GUI -

1.1 Must be a sleek and easy to use system. The priority is efficient simplicity.

1.1.1 Must be able to navigate to any part of the program in 3 touches.

1.1.2 Must be easy on the eyes

1.1.3 Must use a sliding motion to navigate the notes

1.2 Compatible with the default android keyboard

1.2.1 Must allow for compatibility of physical as well as touch keyboards

1.3 Loading the GUI pages must be quick

1.3.1 Aimed for under 2 seconds

1.4 Upon reloading the GUI it must continue exactly where it left off (background -> foreground)

1.5 The main GUI will be a list using the built in android listview.

2 Processing -

2.1 Must be able to scan the notes for specific words or phrases

2.1.1

2.2 Processing and reading the notes must be as efficient as reasonably possible

2.2.1 Under 5 seconds to load the notes, under 4 to sort them.

2.2.2 Two methods of searching, by date or by content.

2.3 Processing notes will not be available when the program is in the background

2.3.1 This would be far too intensive for the system to multi-task, must be disabled manually.

2.4 Aim to keep the program under 4 activities

2.4.1 mainNotes, editNotes, databaseConnect, searchNotes

3 Storage -

3.1 The files will be stored in an SQL database local to the android phone.

3.1.1 For security purposes the database will only be available on that phone.

4 External -

4.1 The notes must be accessible and modifiable on the PC through text editing software.

4.1.1 A program to specifically synchronize with the android may be produced

4.2 The notes must be in an easily accessible location on the android, specified in the user manual.

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.