This blog post documents the development of the iOS application Steam Mate developed by Simon H. Larsen and Anders Bundgaard for the Autumn 2018 class in iOS programming at SDU. The purpose of the application is to connect players of games on the Steam platform with each other based on distance and preferences. Steam Mate aims to aid players in finding new people to play their favourite games with and enable more cooperative play. The application draws inspiration from Tinder, a very popular dating app for Android and iOS, in which opportunities to communicate are granted based on mutual interest.
The solution for avoiding red lights. With the Bike Timer app you will be able to see when the light signal turn red and green. The app will calculate the speed you need to keep in order to pass the signal without stopping for a red light. The application was developed using Angular 4 in Typescript. It connects to an ITC traffic controller by Swarco Technology using a websocket.
The gif underneath shows the app in action.
The speedometer shows the current speed the cyclist is going. The green bar on top of the speedometer is the speed recommendation. The right-hand side of the speed recommendation is the maximum speed you can go to pass the signal and the left-hand side is the minimum speed you must go to pass the signal. When the signal is green, then the maximum speed recommendation is rather unimportant, however, the minimum speed is very important. This is because no matter what you will pass the signal if you’re simply going very fast, but you will not pass the signal if you’re moving too slow. This is where the speed recommendation gets handy. By following the speed recommendation somewhere around minimum, you will pass the green light without worrying about a red light when you get to the crossroads.
The bike timer was demoed at Intertraffic Amsterdam. The setup included a bike, an Android phone and a phone holder. The application was integrating with an actual traffic controller – Swarco Technology’s ITC mini – which enabled the application to give speed recommendation based on an actual traffic signal.
Hololens Anatomy is a 3d app made with Unity to support the learning of anatomy for students. The app lets the user step into an augmented reality that allows the user to see the real environment while watching and interacting with holograms. A hologram of a male body is presented to the user. The male body is modelled by Plasticboy and is modelled to be as realistic as possible. The model includes everything from the skin of a human, to his bones and internal organs. All of which helps the student explore and identify the body parts of a human. The students skills are put to the test by a quiz inside the app. The quiz includes CT-images of a certain point on a human and the student then has to identify the correct part inside the male.
The project was made in collaboration with a small team of developers and a set of stakeholders – some with professional input in the medical/anatomical world and some with professional input on project management and idea generation area. The project was developed for SDU and released for internal usage by students at SDU.
The UniTeX editor is a LaTeX editor featuring LaTeX compilation, highlighting and auto-completion. Alongside the text editor, UniTeX also features project and team management, with multiple documents. The documents can be edited collaboratively by multiple users, on a distributed network. Every document is contained in a project and is sharable with a team of other users. When finishing up a document it is possible to compile and export the LaTeX document as a pdf file.
The editor was made as a semester project in collaboration with a very great team of fellow students. The client and server was developed in Mono leveraging many features from C#. Thus allowing for cross-platform compatibility.
Sealife Scramble is a 2d sidescroller made in Unity3d for iOS and Android. Same as my previous project Stix this game was made alongside a small indie team called Big Red Planet. I was the game designer and programmer for this title.
In Sealife Scramble you take the role as a Seahorse swimming for his life as he’s chased by a big, evil, mechanical creature. If the creature catches you, then it’s game over. Along the swimming route is different obstacles, like mines, torpodoes, and squids. If you collide with an obstacle you’ll be placed in a panic mode which slows you down, and makes the creature slowly catch up to you. The goal is to beat your Facebook friends highscore by swimming the furthest.
Facebook has been integrated using the Unity Facebook SDK. Thus allowing users to log into their Facebook account and compete against their friends. And if the user doesn’t currently have any friends playing the game, then there’s the option of sending an app request to chosen friends.
When developing Sealife Scramble we found it necessary to implement our own database solution. In doing so we used the Parse for Unity SDK, which easily integrated into both Android and iOS. When logging into Facebook, users would automatically be logged into Parse using their Facebook autherization. This would make sure that a user’s Parse account would be correctly associated to their Facebook account. Which was important when querying for highscores which only included a certain user’s Facebook friends.
At the end of the first development iteration we wanted to experiment with rewarded video ads. So we downloaded Unity ads and integrated it into the project. Whenever a user was caught by the creature, the user would be presented with the option to view a video ad to escape the creature and keep on playing. Thus allowing a user to get a higher score by viewing an ad.
While You Wait is a cross-platform application developed in Xamarin Studio. It’s been released for Android and iOS.
The main focus was to make a “wait in line” or “queue” application aimed at restaurants, hairdressersor or similar. The main use-case would be as following; The waiter at the restaurant doesn’t have any free tables, so the waiter would enter a customers mobile number and name. This would place the customer in a queue and also notify the customer by SMS. Whenever a table would become available the waiter would send a notification by SMS to the customer.
The application is constructed using different APIs. It’s using an online database, Parse, which integrates seamlessly into Xamarin through the component store. And Twilio which is used for the SMS part of the application. Twilio offers a REST API that accepts the applications queries to send SMS to the customers.
The application is taking advantage of Xamarin’s new tool; Xamarin.forms. These tools makes it way easier to develop a cross-platform applications. Xamarin uses the Mono runtime and already let’s you share business logic on many platforms through a PCL or Shared project. However, what Xamarin.forms allows you to do is to share your UI code cross-platform as well. Forms is only compatible on Android, iOS, and Windows phone (as of August 2015) which is perfect if you’re a mobile developer 🙂
Quickit is a croos-platform app being developed in Xamarin Studio. Unfortunately I had to part ways with the development team before finishing the product as I had to start my bachelors degree at school. However, I would like to show off what I had made before leaving.
The essentials of the application is to ask your buddies a question and have them choose between a defined set of answers. Say I asked them “Want to grab a beer tonight?” they’d then have the option to answer yes or no. You could also ask them about something more specific like “Beer at 7 pm or 9 pm?” you’d then have the option to define your own answers to that question.
The app lets you choose from all the contacts in your phonebook, however, it’d also check if your contacts are registered users in the database – using Parse for Mono. By doing so it’d either send the question to the app installed on their mobile device or send a text message with a link to a website where you can answer the question.
The database back-end is provided by Parse in a noSQL cross-platform plugin, which meant that any platform would be support – as long as the Mono runtime would support the platform. Parse then allowed to view some statistics and trends based on your data and user activity, however, not as “in-depth” as plugins like Google Analytics. So GA was also integrated to get a better idea of the flow and user interaction.
Unfortunately a demo .apk is not available right now, but hopefully these screenshots will give you an idea about how it works.
This website takes advantage of the same template as my previously posted Glazier website. So it includes all the awesome design by Think Up Themes Ltd and includes mostly the same plugins as mentioned in my Glazier website post.
The website was made for Big Red Planet as a way to showcase their games. And because I’m a co-founder of Big Red Planet, this was a pleasure to make. You can read more about Big Red Planet on the following link.
The website can be viewed at simonhl.dk/big-red-planet
This website was made for a glazier company located in Denmark. It serves responsive design and anything else you’d expect from a high quality design – made easy by using a high quality template from Think Up Themes Ltd, big thanks to them.
Apart from a great design several other plugins were integrated. Plugins like a contact form, anti-spam filters, backups, performance optimization using cache and Piwik analytics. All very well polished plugins which integrated incredibly smoothly into the website.
The website can be viewed at glarmesterholst.dk.
While learning my way around Xamarin Studio and the Mono runtime I created a simple uninstaller application for Android. My goal was to make something that looked simple and didn’t need to provide tons of features. So I did just that, clean and plain colors while programming the app to do nothing more than just uninstall chosen applications.
You can find the application listed on the Play Store and on Amazon App Store.
The application takes advantage of the Android API which pretty much provides any necessary data and handles the uninstall requests sent from the app. Which is also the reason behind the dialog box appearing when trying to uninstall an application. – if you wanted to get around that dialog you’d have to root the mobile device.
Amongst a few plugins integrated into the application was Google Analytics. Thus allowing to trace user engagement and user behavior. Which in turn helped eliminate certain unpopular functionalities and focus on popular functionalities.