Creating A Notepad Application For Android Computer Science Essay

Published: Last Edited:

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


Display notes

(Default: Current month)




Search by date


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



Data type

Size or range


User inputted text.


120 characters


Title of the note


40 characters


ID of the note for database sorting



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.


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.


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





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



Main Activity



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

Android Activity diagram


Load current month


draw GUIs

Activity in background


Activity running in background


Activity is running

Activity in foreground



Save notes

User decides to exit

User decides begin again


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.


1 Outline System Design

1.1 System Flow charts

New Note


List Notes

Modify existing note

Access Notes

.txt on phone storage


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


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




3 Hardware Specification

CPU Processing Speed

528 MHz


ROM: 512 MB

RAM: 384 MB

Expansion slot:

microSDâ„¢ memory card (SD 2.0 compatible)

Supports up to 32 GB


3.5 mm stereo audio jack

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



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


Photos application for viewing photos and videos


FM Radio

Audio supported formats:

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


Video supported formats:

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


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



HSPA/WCDMA: 900/2100 MHz

GSM: 850/900/1800/1900 MHz

Asia Pacific:

HSPA/WCDMA: 900/2100 MHz

GSM: 850/900/1800/1900 MHz


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


5 megapixel color camera

Auto focus and flash




Up to 7.2 Mbps download speed

Up to 384 kbps upload speed


Up to 114 kbps downloading


Up to 560 kbps downloading


IEEE 802.11 b/g


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:

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



Data type

Size or range


User inputted text.

Text / String

Max 60 characters


Title of the note

Text / String

Max 20 characters


Location of the note in the database



Used to move between different android activities


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:


noteLocation = 0


Create noteEntity

Read noteContent[noteLocation]

titleChecker ƒŸ noteContent

noteTitle ƒŸ titleChecker //puts return value into noteTitle

noteDate <- dateChecker

noteLocation ƒŸ noteLocation +1

until (noteLocation > amountofNotes)



Get noteContent

if (firstCharacter = "+")

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


Title = "untitled"

Return title



Get noteContent


Scan noteContent UNTIL char="-"

noteDate <- char UNTIL "-"

if (noteDate > 8char)

return error


return noteDate


Saving Notes:

Get noteContent

Get amountofNotes

If (noteLocation != null)

noteLocation[currentLocation] ƒŸ noteTitle

noteLocation[currentLocation] ƒŸ noteContent


noteLocation[currentLocation] ƒŸ noteTitle

noteLocation[amountofNotes+1] ƒŸ noteContent

amountofNotes ƒŸ +1


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.


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.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.