We’re often asked about how we’re different from other agencies, what technologies we use and oour level of experience. Well, to answer some of that, below is an outline of some of technology that we have recently used and deployed for a client development:
“Viewpoint is a large-scale application designed to run on Web, Windows, Android and iOS. To make this happen, the application is divided into various modules. The core modules are developed as Portable Class Libraries (PCLs), pieces of .NET code running on numerous platforms without requiring any modifications. Using PCLs gives us 50% code re-use across platforms.
We use the latest async functionality of .NET 4.5 to run tasks in the background that have traditionally run on the UI thread. This results in a far more responsive UI than if operations were run synchronously. Tasks are further sub-divided where possible, depending on the number of CPU cores available on the platform, so that when performing a complex task all of the cores of the device are used instead of just one. With the latest Android devices offering 4 or more cores, the performance improvement is dramatic. Thread pooling is used to dramatically reduce the time penalty of using multiple threads.
By using Visual Studio for all platforms (thanks to the Xamarin technology) more developers can work on the project without requiring extensive training in the platform. Standard code quality tools, such as ReSharper, can be used to ensure code is efficient and doesn’t have unintended side effects. Development time is reduced not just via code re-use but also use of familiar tools.
As a company, we always focus on the end-user experience and in this case, this has meant working hard to ensure the application is responsive and quick for users.To this end, we have used the native UI system for each platform and the .NET code is JIT compiled, or pre-compiled (iOS) to native code. This has resulted in the application being far mroe responsive and quicker than if we were using a comparable ‘cross-platform’ toolkit. In essence, it’s impossible to tell the difference between a .NET cross-platform app and an app developed specifically for the platform.
On the web platform, AngularJS is used to provide a fully dynamic UI that in the future will be fully accelerated by the Chrome browser and possibly other browser. AngularJS allows for a much more interactive and data-rich web page – for example, it’s possible to filter data live in the browser, giving instant results for searches.
Also on the web platform we use LESS, which makes it possible to perform more complex styling. For example, each questionnaire has a theme that specifies a few base colours. Using LESS we turn a single colour into a 3D gradient that is used in the various controls. LESS is also used to make styling code more concise and readable by hiding the multiple duplicate lines of code for different web browsers.
On the iOS platform we use a technology called ‘Pixate Freestyle’ which allows for some styling to be specified with CSS commands. This means we can also use LESS to provide a lot of the styling functionality the web version has. It also meant we can share even more code between the different platforms.”
Hopefully, this will give you some insight into the way in which we work. Ultimately for us as an agency, our focus is on providing the best possible user experience and our choice of technology and how we best use this technology, is driven by how it will benefit the end user, in terms of usability, speed, reliability and maintenance.
For more information about our web development services, please call us on 01285 643 496.