The changes to the PracticeLog application and the associated android app are completed. They both access the database on my website through the php interface.
I have created a simple user system:
- When you create a new user, I store the username and email along with an encrypted password and generated GUID in my user table.
- When a user logs in, the given password is encrypted and compared to the stored password. If correct, the GUID is returned.
- The other tables are accessed by the users GUID.
The C# changes were fairly simple. I created a login/new-user dialog and left the local database code so that someone could use the program in a offline mode if they didn’t like the idea of logging into my website.
The Android app was a much bigger job. I was able to use all built-in GUI elements, but the life-cycle issues were much more serious than they were in my first Android application. I didn’t want the user to have to log in every time, so I store the users GUID in the application’s configuration data. I also needed to preserve both the timer’s start time and the entered but unsaved practice time when the application is killed. I learned how to prevent the screen rotation from happening and learned how to store the downloaded data from the web during a screen rotation.
Testing the app was a hassle because my phone loses its connection to eclipse after a few seconds. This is probably a problem with the virtual machine that I am using to do the development with. If I had it to do over, I would go ahead and install java and eclipse on my main machine.
I am still considering releasing this application and app, but would like to figure out the ad model for the android app.
Here is what the app looks like: