Category Archives: Windows Phone

Team Spotlight – Stewart Fullerton

Next up for our Team Spotlight is another of our software engineers –  Stewart Fullerton.

Who are you?

I am Stewart Fullerton

1596677_10152716674728272_494951341_o

What is your role at Linknode and how long have you been working here?

I’ve been working as a Mobile Development Engineer at Linknode for nearly 4 years. I specialise in building Android and Windows Phone apps as well as developing commercial websites. I work in a team of 5 developers on Linknode’s products like VentusAR, Album Flow, HistoryLens, MyStory and 3DTry.it. I am also responsible in building and maintaining the company’s websites, a few examples are ventusar.com, historylens.co.uk and urbanplanar.com.

What are the technologies that you use?

At Linknode we make the most of cutting edge technology in software development, the piece of software that we use frequently is Xamarin, which allows you to create IOS and Android apps using C#, part of Microsofts .NET Framework. Other technologies that we use are SignalR, WCF, MonoGame, Google Cardboard, MVC, Azure , Jquery and many others.

What is your proudest moment in Linknode?

I think my proudest moment came in 2013 where our main product VentusAR was at its prototype stage and we focused more on consumer apps. I was responsible for the development of Album Flow, an app that allows you to browse your music using a flow of album art. The Windows 8 version was submitted to a contest it was placed in the top 10 apps and we won prizes as a result.

How has Linknode helped you in your career development?

Before I joined Linknode I came from a web background, already fluent in web development, database design etc so I was looking for a job within that industry. I was however very intrigued by developing mobile apps as I felt that smartphones and tablets were the way of the future. 4 years later I have new commercial experience in developing apps and I also get the opportunity to use my old skills in web development.

What do you do when you are not working?

I am a keen music photographer which I have been doing for almost a decade now, I work for many music publications covering concerts from all over Scotland. If I’m not doing that I’m either chilling in the flat or out with friends.

Any random facts you could share with us?

Cows drink milk……… oh wait….

What’s the last joke you recall?

Two fish are in a tank, and one says to the other “How on earth do you drive this thing?

599041_10151172001479006_876693548_n

Xamarin acquired by Microsoft

Hi, it’s me again – Rufus. It is that time of the year again where I write a technical blog!

You may have read my previous post about the Apple technologies that were announced a few months ago. With the recent announcement that Xamarin has been acquired by Microsoft, I thought it was an appropriate time to share some of my thoughts with the world! This blog post will share a little bit our history with Xamarin technologies – and some of our thoughts on the recent news.

How we got into Xamarin

When Linknode first dipped into the world of mobile applications, it was only natural for us to begin investigating the Windows Phone platform, due to our developers having a rich history with Windows desktop and server based technologies. After creating a number of Windows Phone applications – to gain some experience with intricacies of mobile development we looked into expanding to the other platforms. Driven by our development history, our desire to build Augmented Reality applications and the small size of our development team the following requirements were important to us:

  • Share as much code as much as possible
  • Provide the user with a “Native” experience – Each application should follow the idioms of the device it is running on
  • The ability to write high performance – real time applications
  • Ideally we should be able to reuse our .net/C# skills and code.

The above list of requirements is quite steep – but the first three are easily possible using available tools. However back then, most people thought C# was a Microsoft technology and was not supported by other platforms… or was it? This is where Xamarin comes in!

xamagonXamarin

We started building some simple test applications to try out the Xamarin technologies and were highly impressed with the quality of the output, and also the lack of a steep learning curve.

Xamarin is based on the “Mono” runtime and allows you to write applications in C# for Android, iOS, Windows and Mac. Xamarin allowed us to share a large amount of code and make use of our experience with C# and the general richness of the large “.net” based API’s.

Some other options at the time were not sounding so promising. This is not to say switching to Xamarin was without issues. As an “early bird” user of Xamarin we had some issues such as the primitive nature and stability of the development tools. However we have seen the Xamarin toolchain go through various phrases of re-branding and improvements and it has now emerged as a stable and somewhat mature development platform. The Xamarin developer Ecosystem is full of libraries/components developers can make use of to accelerate development without sacrificing the experience for the end user. Another point of note is that if you are a native iOS/Android developer with a lack of sharp experience as I was – switching to Xamarin is extremely easy. All the API’s and built-in Frameworks you are familiar with are still there and easily accessed from C#.

code-sharing1

 

Acquisition + conclusion

We are happy with the decision to go down the route of building cross platform applications using Xamarin and are pleased with the somewhat expected acquisition. We hope the recent news will enrich the Xamarin development community further, not only by generating more interest for the Xamarin toolchain and growing the size of the community – but also to aid in breathing some new life into the windows mobile space.

Either way I am sure having the great experience of a company such as Microsoft cannot be a bad thing. If any of you are deliberating whether to investigate Xamarin for your own projects I strongly recommend you try it out!

xamarin-joins-microsoft

 

 

Mobile Application Development

Our History
Linknode are an app development company. We have have a portfolio of apps available across different platforms and their stores. We focus on cross platform sensor driven applications that fit with in our Mobile Geography domain. This post is going to be a tour around our app portfolio and what we learnt along the way.

How it started: EmergencySMS

LinkemergencySMSnode’s early apps were all for the Windows Phone market. It all started with the launch of Emergency SMS in June 2011 (the company was 2 months old at the time). This application takes the devices location, looks up the address and creates an SMS message that can be sent to the UK’s National Emergency SMS.

EmergencySMS is still available in the Windows Phone marketplace, and is still used by customers: it gets 10-20 downloads a day. I don’t consider it a masterpiece of design or implementation but it is a good place to start.

  • Start small, your apps may last longer than you think.

MegaTile – free version and premium features

MegaTileAnother consumer app (and most successful in terms of revenue generated) is a called MegaTile and allows the user to customise their home screen on Windows Phone 7 and 7.5. The user can choose an image to make a MegaTile from and set an action (launch phone dialler  send SMS, open web page etc.) for each tile.

  • Have a free version, it make users download it and gets them to convert to the full version. 7% of our users purchased after running a trial.
  • Test the upgrade process of your app on each release. We didn’t and caused ourselves a lot of negative comments from users who were unable to upgrade between v1.2 and v1.3.

Album Flow – Use a Design Pattern

AlbumFlowWe had an idea to bring the iOS style coverflow to Window Phone, this resulted in the Album Flow application. The initial version of this app was ready in 3 days. We are just polishing our 9th release and have over 100,000 users. Album Flow was featured by Appvertise (Nokia and Microsoft) and won a CreativeBloq App Generator Top Ten App.

  • Use a design pattern to make your code consistent and understandable. We use the MVVM pattern and the MVVMLite library to support it.
  • Respond to user demand and comments to get better reviews and more satisfied users.

Starting out in Augmented Reality

Where On Earth, and its cut down version – Heads Up Compass, are two apps that started to define the GIality concept and are the first examples of the use of GIality on a mobile.

HeadsUpCompassHeads Up Compass takes the data from the devices motion sensor, uses it to work out which direction you are looking and superimposes that on the camera feed. Calibrating the compass and getting accuracy from the device sensors is hard. Use the Combined Motion API on Windows Phone or equivalent on Android or iOS for better results than just a single sensor.

Where On Earth goes a step further and looks up features around you to help identify features (hill tops and towns currently) that you can see in the camera view. Where On Earth was customised for a team entering the Oxfam Trail Trekker to provide them with a heads up display of check point locations and distances.

WhereOnEarth

  • Review your maths text book: Quaternions are good when working in Augmented Reality situations, but complicated to get your head round.
  • Mobile apps should work when out of mobile signal. Design to manage offline access and syncing data. These a whole other blog post in this topic.

Windows Phone Development Summary

All of the apps covered above are only for Windows Phone. I love the process of developing for Windows Phone.

  • The tools are excellent – I can use Visual Studio (which I have plenty of experience with and is set up exactly the way I want it).
  • I can switch to Expression Blend if I want to do some more complicated user interaction.
  • I can use C# a popular language that many developers who have worked in enterprise understand.
  • Having come from a web background, I would much rather do layouts in XAML than in HTML / CSS.

My biggest complaints so far have been to do with the store and submission process (not being able to cancel an app being certified) and understanding some of the SDK design decisions taken to do with the back stack and Navigation.

Evolving Beyond Windows Phone

In mid 2012 we decided that Windows Phone was not a big enough market for some of our mobile geography plans (Although it may be getting there according to the latest stats from Kantar). Specifically we wanted to expand into using running our GIality solutions on a tablet. Whilst Windows 8 was coming (it launched October 2012), we wanted to start running GIality apps on tablets right away. We chose Android as our first tablet platform: specifically the Nexus 7 and when it was released the Nexus 10 .

VentusAR: Support for Android

Ventus_logoOur first cross platform app was VentusAR. This is a Business to Business application (so it’s not available in the Play Store) to allow you to visualise what a wind farm would look like if it was built as planned. There are many different parts to VentusAR that all need to work together and need to work across multiple platforms. The main application logic needs to be complied by the Windows Phone and Mono for Android compilers (we’ve since added Mono-touch for iOS and Windows RT compilers too).

Coming from a Windows Phone background, Android development (even using Mono for Android and Xamarin tools) feels a bit of a disjointed mess. I guess it comes of saying anyone can customize the OS to run on any hardware (the Android approach) rather the OS will only run on our hardware (Apple) or the OS will only run on hardware that meets strict guidelines (Microsoft’s approach).

  • Think about making the app cross platform-able early on. Its easier to start that way than to try to change an existing app to be cross platform.
  • The android emulator is too slow to use for real development, buy a proper device to develop on – it’s much quicker.
  • Android Resource qualifiers (screen resolution, pixel density language etc.  make designing and testing Android UI’s very hard. The Xamarin Designer helps a lot.
  • Run an automated build server as changes in the android app can have unintented affects in the other builds.

3DTry.it: Available for Windows Phone, Android and iPad

3DTryit_logo_websiteOur first public cross platform GIality app to launch is 3DTry.it (available for Android, iPad and Windows Phone). This is an app that allows the user to view published 3D models on their tablets on top of the the camera view. The models rotate as though they are in the real world. Download it from the app store if you want to see it in action.

  • The motion sensor frame of reference is different on different devices (the nexus 10 is 90°different from the Nexus 7).
  • Xamarin tools allows iOS apps to be developed on a Windows PC which speeds up development for windows users.

Summary

Having tried developing apps for all three platforms, I enjoy developing for Windows Phone the most (maybe that’s because it was the first one I started developing for). Android is frustrating due to the number of different devices, screen resolutions and version available. iOS development in c# is made easy using Xamarin tools, which have done the job for us so far.