My fourth week of UROP: Android (again) and finalising the details

The start of this week marked the half way point for my summer placement and so I decided that it would be a good time to finalise the details of what functionality I planned to achieve by the end of the six weeks.

Keeping things equal

I've been working on implementing new features in iOS before porting them to Android. This is mainly due to me being more familiar with the iOS development environment. However, this has caused issues. Some features I've implemented in iOS I do not seem to be able to implement in Android! For example the OpenGL ES 2.0 sine graphs I developed. In the iOS application I have two OpenGL ES views on the screen at the same time. In Android this may not be possible. Therefore the sine graphs may be present in the Android application until a work around has been found. All other features are expected to be included.

The difficulty of knowing when to stop

When I start to work on a project such as this, it becomes something I don't only take pride in, but almost obsess over. I find myself working on details and tinkering not only at work but also in my spare time. Be it actual coding or simply drawing out a sketch of something on some paper. This makes 'drawing a line' and saying "right, time to stop adding new things here" is very hard for me to do!

I've decided the final set of features for the App to be achieved by the end of my placement. This will be the processing of JSON files to build a model, displaying different models on screen and having the OpenGL ES sine graphs (for iOS only). However, this does not mean that this will be the final set of features that will be released. I will continue working on this project in my spare time after my placement ends until I feel I've reached a safe point to stop and move onto a new project.

So what have I been up to?

This week I have them working on the niceties, adding labels to show the input, output and when appropriate, disturbance values. I have added the description of the system being modelled back under the model itself and added the label to say whether the system has positive or negative feedback.

Now that there are two different types of graphs that the user can display, I've been working on how users will select between them. Currently I've put the setting into the settings app on iOS. However, I feel that there needs to be a way to switch the type of graphs generated within the app itself.

I have also implemented line graphs for the Android version of the application to ensure that some graph functionality is available, even if the more complex sine graphs are not available yet.

How it looks so far

On iOS the app currently looks like this:
iOS Feedback App version 3-beta

On Android the app currently looks like this:
Android Feedback App version 3-beta

Both apps are showing the system generated by the JSON that can be found in my blog post from week 2 of UROP. As can be seen they do not look identical, however, they are similar enough that you could easily switch between them and understand what is going on.

So what's next?

Next week I shall be working on creating block devices for the system to use. These will include limiting blocks as well as differential and integral blocks. This will allow more varieties of systems to be modelled.