Projects

Simple StopWatch

StopWatch by Developer Austin.

Screen Shot 2018-01-17 at 3.35.50 PM.png

This was my first actual published application for the Android Play Store and I loved the process! My goal for this project was to create a simple application and to try to learn as much as possible.

I used Android O to create and release so it is not available to everyone.

Download Page: https://play.google.com/store/apps/details?id=com.amsuarez.stopwatch

Application Design

Layout

Screen Shot 2018-01-17 at 3.38.32 PM.png
For this application, I used the constraint layout, Chronometer, ListView, and two Buttons. I went with a listview since it is easy to set constraints regardless of the device size. The chronometer seemed like a logical choice over Date since it had methods for starting and stopping. The start and stop buttons I placed at the bottom and placed colors so that it is easy to discern the differences at a glance.

Code

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Chronometer;
import android.os.SystemClock;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
   private Chronometer stopwatch;
   private List<String> timeList;
   private ListView timeElapsedList;
   private boolean timerStart = false;
   private ArrayAdapter<String> listAdapter;
   private int lapCount = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        //sets up layout
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // setting stopwatch to chronometer
        stopwatch = findViewById(R.id.timeElapsed);

        //setting up listview
        timeList = new ArrayList<String>();
        timeElapsedList = (ListView) findViewById(R.id.timeListView);
        listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, timeList);
        // DataBind ListView with items from ArrayAdapter
        timeElapsedList.setAdapter(listAdapter);
    }

    public void startButton(View view) {
        // resets the start time
        stopwatch.setBase(SystemClock.elapsedRealtime());
        // starts the chronometer
        stopwatch.start();
        timerStart = true;
    }

    public void stopButton(View view) {
        stopwatch.stop();
        // if the start was pressed prior then stop process begins
        if (timerStart) {
            lapCount++;
            timeList.add("Lap " + lapCount + ": " +stopwatch.getText().toString());
            listAdapter.notifyDataSetChanged();
            stopwatch.setBase(SystemClock.elapsedRealtime());
            timerStart = false;
        }
    }

This was the first time I used the chronometer, I was originally going to use a Date variable but soon ran into some trouble. Using a Date variable I could measure the exact time elapsed; however, creating a visual transition of the time elapsed on the UI was difficult. I then picked the chronometer and my code was able to slim down since the methods the widget had been just what I needed.

Porting to the Store:

This was fairly easy to launch to the market since it did not use location or any other information from the user. In the future, I would like dive deeper into the Beta and Alpha testing processes in the Play Console.

Conclusion:

It was a fun simple project and I am definitely excited to do more projects like this!

If you are reading this and have any suggestions please message or comment. 😀

Habit Hamster

Habit Hamster is a application that will keep track of habits like a reminder list. Current habit tracking apps do not provide a means for users to visually see progress. I am currently working on this in my Software Engineering class and am loving how awesome it is to make UWP applications.

It is currently on my GitHub: GitHub.com/amsuarez01 under Habit hamster.

Here are some Screen shots of the UWP side of development that I have been in charge of.

 

This slideshow requires JavaScript.

Mental Note was a note taking application (also the first UWP)  I built. I wanted to try and understand MSA login and async file storage. It was a fun little side project, there are definitely some bugs and design choices I would do differently now. In the end I walked away understanding the ideas of login and file storage for UWP applications.

The project is in my GitHub: GitHub.com/amsuarez01

Here are some screen shots.

 

This slideshow requires JavaScript.