Summer project for eSmart Systems

The following post was written by our summer interns Sunniva Johansen and Kristin Tønnesen:

Sunniva Kristin

This summer, we have been working with mobile application development for nine weeks. As summer students at eSmart Systems we were given a very interesting project, which was both educational and relevant to our study programmes.

 By 2019, all private houses in Norway will have the new and smart electricity meters installed. AMS (Advanced metering systems) will give consumers the opportunity to manage their energy consumption. Consumers will be able to follow their energy consumption as the meter data are read more often than the regular meters are able to. If the smart meters are fully utilized, one could look at his or her energy consumption close to or in real time. This provides new opportunities for consumers to monitor their own energy consumption and makes it easier to implement austerity measures to reduce this. The summer project consisted in participating in the development of a mobile app for this purpose.
As a civil engineering student in computer science, Kristin had the primary responsibility for the programming part and the technical aspect. Sunniva, who studies energy and environmental engineering, worked mostly with the energy and environment-related content in the app.


Mobile development raises a lot of important questions. Should one develop for one or several platforms? Should one choose so-called “native” development, that is, program in Java for Android, in Objective-C for iOS and other programming languages for other platforms? Or should one select a web solution with HTML and Javascript that can run in any browser on any mobile device? Maybe something in between? The choices obviously depend on the type and desired content of the application. The two biggest actors on the market of mobile phones and tablets are Google (Android) and Apple (iOS). The experts do not agree on their respective market shares, but one thing seems to be true: To target the majority of the mobile and tablet users, one needs two version of the application: One for Android and one for iOS.


For the summer project we chose something in between: the framework Xamarin, that creates an additional “layer” on top of the native code and gives the opportunity to program for both platforms in the programming language C#. The reason behind choosing this solution was to use a language and technology that both we and eSmart had experience with, in addition to hopefully saving some time by creating a shared code base. Code that was independent of the user interface was written to function on both type of operating systems. We then had to create separate user interfaces that were in accordance with the companies’ own design guidelines.


We have developed the Android application in Visual Studio, that has a built-in graphical designer for Android. One could also program for iOS in Visual Studio, but then without the graphical designer. To create screens for the iPhone one needs a Mac and the Apple software Xcode, with the tool Interface Builder. To develop the iOS version we used Xamarin’s own development environment, Xamarin Studio, which is synchronized with Xcode. We have used physical smart phones to test the applications, but both platforms offer their own simulator with support for different screens sizes and rotation.
There are a number of functions to include in such an app, and it will always be new opportunities for further development. The plan for this fall is to work on this app beside our studies in Trondheim. We are excited about the future for this project, and look forward to continue with the task!

Leave a Reply

Your email address will not be published. Required fields are marked *