Managing Expenses with Non-Networked Mobile Applications
The user is here prompted to add a photo of the expense. From this interface, he or she can either select an existing image in the gallery of upload a new image from the camera. The checkboxes display the claim option for an expense and the VAT values imposed on the same expense. If a user checks the claim option, then the final list will be printed with the date it was claimed same like the date of addition.
The checkbox displayed on the right corner of every record is displayed once the expense has not been claimed before (Chaudhuri, 2009). This also means that the date of claiming is still null until the checkbox is checked. Upon checking this, the record is updated with the date in which the record is claimed and the visibility is set to invisible meaning the user can claim it twice. Any record added to the system without the image is marked with an image displaying no image, whereas the one saved with an image is set to display.
This screen prompts the user to first confirm the deletion before removing the record from the database. The later on the right provides an interface where the user can filter the records based on whether the expense has been paid or not. The paid option displays only the records which have been paid (Lee and Lee, 2011).
This displays the algorithm in which the system operates best. The new expense can be added into the system with an image or without. The following pseudocode displays a scenario of adding a new expense
If a user has captured an image;
The system converts into a byte and is stored into the database as a blob
Else;
The system saves the expense with an icon showing no image captured.
xmlns:tools=”https://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:background=”@color/Background”>
xmlns:app=”https://schemas.android.com/apk/res-auto“
xmlns:tools=”https://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:background=”@color/Background”
android:orientation=”vertical”
android:paddingLeft=”25dp”
android:paddingRight=”25dp”
tools:context=”.NewExpense.NewExpense”>
<android.support.design.widget.TextInputLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:textColorHint=”@color/text”>
<EditText
android:id=”@+id/aa”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:hint=”@string/Name”
android:inputType=”text”
android:paddingBottom=”10dp”
android:textColor=”@color/text”
android:textSize=”13sp” />
<android.support.design.widget.TextInputLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:textColorHint=”@color/text”>
<EditText
android:id=”@+id/bb”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:hint=”@string/Cash”
android:inputType=”number”
android:paddingBottom=”10dp”
android:textColor=”@color/text”
android:textSize=”13sp” />
<android.support.design.widget.TextInputLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:textColorHint=”@color/text”>
<EditText
android:id=”@+id/cc”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:autoSizeMaxTextSize=”120dp”
android:ems=”10″
android:hint=”@string/Summary”
android:inputType=”textMultiLine”
android:lines=”4″
android:paddingBottom=”10dp”
android:scrollbars=”vertical”
android:textColor=”@color/text”
android:textSize=”13sp” />
<CheckBox
android:id=”@+id/claim”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:text=”Expense Claimed?”
android:textColor=”@color/text” />
<CheckBox
android:id=”@+id/vat”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:text=”Add VAT”
android:textColor=”@color/text” />
<TextView
android:id=”@+id/vat_view”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:text=”No VAT Charged”
android:textAlignment=”center”
android:visibility=”gone” />
<TextView
android:id=”@+id/date”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:padding=”10dp”
android:text=”Date”
android:textColor=”@color/text”
android:textStyle=”bold” />
<LinearLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:orientation=”horizontal”>
<Button
android:id=”@+id/photo”
android:layout_width=”0dp”
android:layout_height=”wrap_content”
android:layout_weight=”2″
android:background=”@drawable/upload”
android:onClick=”capturePhoto”
android:text=”Upload” />
<View
android:layout_width=”0dp”
android:layout_height=”wrap_content”
android:layout_weight=”1″ />
<Button
android:layout_width=”0dp”
android:layout_height=”wrap_content”
android:layout_weight=”2″
android:background=”@drawable/wow”
android:onClick=”saveExpense”
android:text=”Save” />
<ImageView
android:id=”@+id/image”
android:layout_width=”match_parent”
android:layout_height=”150dp”
android:visibility=”invisible”
android:layout_marginTop=”30dp”
android:data-src=”@drawable/no” />
This is the process that involves the evaluation of the software application’s functionality with the intention of checking if the software developed met all the requirements as specified from the objectives and if found out that it never, then identification of the failures in order to ensure the final product is free from defects so as to ensure a product of high quality is produced.
This is the test that involves a section of the whole program being tested individually. For the employee’s expense app this test was done to ensure every component is working well as designed. For instance, the new expense activity, checks if the user has entered all the fields that are compulsory. Example the expense name or the summary information about the expense.
This is the test that was carried on to ensure the software in question was capable to operate on different hardware components, mobile devices and on different software operating systems. The employee’s expense app was tested on different platform including.
- Samsung Galaxy 9: Samsung
- Samsung Galaxy 8: Samsung
- Samsung Galaxy 7: Samsung
- Samsung Galaxy 6: Samsung
- Samsung Galaxy 5: Samsung
- Samsung Galaxy 4: Samsung
- Samsung Galaxy 3: Samsung
The rundown appearing above demonstrates the latest Samsung lead telephone and one of the most seasoned leader telephones all which can run the application serenely with no issue. The genuine testing and troubleshooting of the application were done utilizing Samsung Galaxy 7.
A system normally consists of all components that make up a total system to function. This was required to ensure the smooth running of the system as a whole, and to perform as expected and as required. If a user fails to enter the details required the system displays
References
Chaudhuri, A., 2009, June. Language-based security on Android. In Proceedings of the ACM SIGPLAN fourth workshop on programming languages and analysis for security (pp. 1-7). ACM.
Lee, J.K. and Lee, J.Y., 2011, September. Android programming techniques for improving performance. In Awareness Science and Technology (iCAST), 2011 3rd International Conference on (pp. 386-389). IEEE.