flish

flish

Xamarin Cross Platform Application Development – Book Review

This is a review of the recently published book “Xamarin Cross Platform Application Development” by Jonathan Peppers.

This book is openly marketed at existing, experienced C# developers so it’s certainly not for beginners, and whilst I don’t fall into this category the nature of projects I work in require mostly ‘linear’ development (Web, PHP, Perl, Python, VB etc over the years) so concepts like MVC, MVVM and in particular IOC (Inversion of Control) are newer and less clear. Thankfully this book has resolved that through it’s excellent practical examples.

One area this book doesn’t touch on hugely is the level of planning required for MVC applications, you can’t just ‘jump in and code’, but that’s potentially a book in itself, but what the book does very well for me, is explain the View, ViewModel, Model and Controller concepts in terms of the classes and data layers required. The book also introduces Interfaces (something I always saw as an unnecessary layer of complexity) which I now ‘get’ in terms of flexibility, and in particular to give the developer options in a cross platform environment.

The icing on the cake is ‘Inversion of Control’, whilst the book doesn’t particularly explain this convention in huge detail, I think it is actually to it’s credit, any more and the reader will be bogged down in unnecessary detail and complexity. It basically gives us the service layer that ‘glues’ the application together, allowing use to create and register our ViewModels as Services and thus make them available to use throughout the app with a single line of code. I’m sure that my description is not hugely more constructive than the words in the book themselves, but the working example of the XamChat application completes it.

Which is my main point, am sure many people work differently, but for me working examples of code are what makes it stick in my mind, it helps it all make sense. Throughout this book you will be building bit buy bit a working chat application, firstly in Xamarin.iOS (but using the all important cross platform and code sharing concepts learnt at the beginning of the book), and then re-implementing the same application logic in Xamarin.Android. The nice touch, which some may see as lazy, was that with the Android example you are taken to a certain point and then left to finish off using the examples you already have. A real, and practical exercise which I think will do the reader good. It wouldn’t be a huge leap further to recreate in Windows Phone, for the ultimate practical extension.

The Xamchat application is then extended through the Windows Azure platform to use their backend for data storage (a good example of how the same Interface can be re-used to store on different platforms), and to implement cross platform push notifications.

Lastly there are chapters on using Xamarin Components (including Xamarin.Mobile for Contacts, Camera and Location functionality), and actual App Store submission and their different processes, processes that even the most experienced developer can struggle with (Apple Certificates and Profile expiry anyone!).

In summary, this is an excellent book for any would be cross platform mobile application developer, yes you need a good understanding of C#, MVC and similar concepts, and the individual mobile platforms and general development processes themselves, and those things don’t come over night, but this book binds it all together with real world examples, working code (a novelty for some books) and actual code and methods you can take away and use in the real world.

Buy it, read it, and take as much as you can from it – “Xamarin Cross Platform Application Development” by Jonathan Peppers

Jacksons Law Livetrack – Case Management

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

Jacksons Law is a major North East law firm that advises both commercial and private clients and practices across all core areas of law. Their need was for a central information management portal that they could use to update and share information securely with clients with regards the progress of cases

Technical

Client Jacksons Law LLP – Major North East based Law Firm

Platforms Web

Technologies PHP, CSS, JQuery, Javascript, MySQL, Document Management

Development Web Development

Case Study

Jacksons Law practice law in a wide variety of practice areas and as such the individual needs, or specialisations of case management in one practice area can differ widely from those of another. In addition Jacksons have a wide variety of clients all of whom have a range of individual case and account reporting expectations, the challenge for dotUK was to present a solution that could encompass all needs, yet remain simple and manageable.

With Jacksons operating out of multiple sites, and to alleviate information security issues of allowing external users into their infrastructure it was decided that a web based system would be the most cost effective and simplistic to deploy and mange. In addition it would allow us to operate a mobile optimised interface for end client users that operate on site and on the road.

The system was built with a concept of case ‘Systems’ where a System mapped generally to a specific area of legal practise, eg Personal Injury, Conveyancing, Employment Law etc, in this way we could apply system specific modules to the cases within and

hence extend the specific functionality. This also allowed us to extend Systems for use by key clients, offering an enhanced branding experience for key client end users, enhanced and client specific reports and metrics, and internally SLA highlighting to ensure contractual targets were met.

The overall concept was however kept simple, allowing Jacksons staff to create cases within their permitted systems, allocating cases to end clients and updating cases with notes, attach documents, and report key milestones. In addition modules that allowed the client to keep track of running costs, and report on costs on a cost centre basis were created. External access is managed fully by Jacksons, with a hierarchy of client user permissions that allow data access to be restricted in a granular manner to department heads or end users as required.

The system is accessed over SSL as an industry standard, and is hosted on dotUK’s own Cloud hosting infrastructure here in the North East that allows use to offer high availability, fault tolerance, non interruptive snapshot backups and clustering options based on the clients requirements.

For more information, or to discuss case management or end user self service solutions tailored to your industry requirements please don’t hesitate to contact us for a consultation.

IPL – Quote Management and CRM System Case Study

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

International Procurement, a Stockton on Tees (North East) based supplier of severe service isolation solutions, needed a means to better automate and streamline their already complex request, quote, supply and invoicing workflow,

Technical

Client International Procurement – Critical & Severe Service Isolation Solutions

Platforms Web, Web Services, Kashflow

Technologies PHP, CSS, JQuery, Javascript, MySQL, REST API, JSON, Kashflow, SOAP

Development Web Development, Web Services Integration, Kashflow Integration

Case Study

The IPL sales process workflow is complicated by the very precise specification and requirements attached to each and every order, often a customer enquiry for a product will be met with a variety of options from a supplier, may have to meet complex supply requirements (including lengthy import, export and trade embargos), and even build to order solutions.

With that in mind, dotUK built, upon their in-house web services framework, a cloud based software solution that runs in the web browser, and is accessible both internally, to allowed users on the road or in home working environments, and to mobile and smartphone devices over the web, bespoke to IPL’s requirements.

The summary workflow required was in essence;

• Record Enquiry

• Manage Supplier requests (with quote and attached document management) to fulfil the enquiry

• Freeform Quote Generation (Multiple Quotes and Variations)

• Quote to Order process

• Supplier Purchase Order generation to fulfil the client order

• Invoice generation, and customer management to the web based Kashflow accounts software

Where document generation was required we standardised on PDF as a consistent, non-editable output format, and the system automatically maintains copies of the last generated version (eg for quotes), and also maintains an archived history of prior versions.  The system also allows for management of archived records, repeat ordering, and reporting on sales and overdue enquiries.

The Kashflow accounts software integration, also web based, through it’s own SOAP based API meant that simple requests such as pushing invoices into their accounts software moved from being a one line requirement, with traditionally a costly, time consuming and frustrating integration phase, became as simple as it should be.  A custom written Kashflow module was written as an extension to our web services framework that integrated seamlessly, and allowed us to continue using the same methods for data exchange and document generation.  Something that wouldn’t have been possible with traditional desktop based accountancy packages

Christmas Cards for Schools Clustered Print Generation

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

Christmas Cards for Schools based in Middlesbrough here in the North East, part of Fundraising Creations, offer Fundraising solutions for Schools, their primary product being the production of bespoke printed and customised Christmas Card packs personalised with the pupils name, class and of course their own drawing. Having been responsible for the production of in excess of 1.1 million cards in the Christmas 2013 season efficiency and scalability are high priorities

Technical

Client Christmas Cards for Schools Ltd – Middlesbrough based School Fundraising

Platforms Linux, Web, WebServices,

Technologies PHP, Perl, CSS, Jquery, MySQL, REST, ImageMagick, Apache, Clustering

Development Web Development, Web Services Integration, Synchronisation

Case Study

To understand the scale and requirements to create, print and distribute in excess of 1million Christmas Cards in a 3 month period each year it’s probably beneficial to understand the workflow required, and the stages at which dotUK have been able to build out and scale, thus adding capacity each year.

• Participating Schools are sent Artwork kits

• Kits are returned and the drawings are scanned, grouped, and filed into our Web Based storage system

• School batches are processed within our processing cluster leading to the creation of digital print ready personalised images (1 Per child)

• Print ready images are synchronised to the print partner who takes responsibility for print and distribution, feeding back status to the storage system dashboard.

Due to the system being highly seasonal dotUK have built a bespoke hosting infrastructure that offers a cost effective, but highly scalable hosting solution. Services that are required year around are separated from the seasonal processing cluster, thus offering a base line cost for the majority of the year. The processing cluster is build in such a manner, that additional processing nodes can be added at 15minute deployment windows, and will automatically join in the pool of processing power, but can be removed when surplus thus reducing hosting and running costs that are unwarranted.

To maintain maximum data integrity, control, and compliance in excess of UK Data Protection requirements, the hosting cluster and processing engine is a bespoke, privately hosted solution provided, hosted, and monitored by dotUK

Depending on the solution offered to the school the workflow may include digital samples that are offered initially to the school prior to order, but ultimately school co-ordinators enter their school order quantities online through their own access portal, which triggers the print cluster and sync services to push final orders to the print partner.

In addition to the core card generation workflow, we also generate supplementary personalised products, and fully automate other ancillary services such as billing, marketing / kit requests and the ability for parents to view online samples prior to order

Dale Care – Call Log Comparison Case Study

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

Dale Care are a home care provider based in the North East of England, and operate in County Durham. They have an existing call confirmation system that confirms calls within the Staffplan system, however logged calls did not tally with actual calls, and it was time consuming to manually compare

Technical

Client Dale Care – North East and County Durham based home care provider

Platforms Windows Server, SQL Server, Staffplan, NEC Phone System

Technologies Python, Windows Exe

Development Software Development, Windows Server

Case Study

A key factor in how Dale Care manage, and bill their home care services is through quickly, and accurately confirming calls made by carers to clients at their homes, into the Staffplan management software specific to the home care industry. This is done primarily by the carer ‘phoning home’ from the client’s home, and the CLI is matched, recorded, and the visit logged into Staffplan.

This matching is currently done by a call logging box the runs in parallel to the existing NEC phone system and is monitored by a standalone windows server based application. However not all calls are being confirmed within Staffplan, yet the are identified in the NEC Phone System logs, which leads to discrepancies in payroll claims, and potentially under billing for clients as the system does not believe home visits have been made.

As a short term solution dotUK provided a daily analysis tool that runs as a scheduled task that picks up all call logs on the dedicated inbound phone system trunk and attempts to match them with confirmed calls in Staffplan, this matching is done with a time threshold to allow for subtle time logging differences, and highlights any calls the phone system has identified that are not properly confirmed. These calls are then output on a daily management report that allows Dale Care staff to batch update Staffplan, and correct the anomalies, and saving significant man-hours in chasing manually reported discrepancies.

Both the NEC Phone System, through the My Calls add on, and Staffplan utilise MS SQL Server s the back end database, and for simplicity dotUK chose to utilise a simple Python script compiled as a 64bit Windows Server executable running as a scheduled task, as the method to implement this call comparison.

Stockton’s Big Challenge Active Travel Portal – Case Study

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

Stockton’s Big Challenge is a web based community competition initially funded by Stockton on Tees Borough Council, NHS Stockton on Tees, the Big Lottery and Sustrans. The aim is to build awareness of Active travel and encourage a healthier lifestyle across Stockton by encouraging people to walk or cycle to work.

Technical

Client: Sustrans / Stockton Active Travel

Platforms: Web, Web Services,

Technologies: PHP, CSS, JQuery, Javascript, MySQL, Animation, Charting

Development: Web Development, Web Reporting, Jquery Animation

Case Study

Stockton’s Big Challenge was pitched as lottery funded concept aimed at encouraging local (Stockton on Tees Borough) Employees, and Employers alike to ditch the car and cycle or walk to work, in essence embrace ‘Active Travel’ and enjoy a fitter healthier lifestyle – all through the power of competitions

The competition premise was simple, each and every time you under took ‘Active Travel’ you logged in to the site, recorded the date, distance, time, and reason for travel. These journeys were then logged and your cumulative total displayed in terms of miles travelled, calories used, kg of fat burnt, kg of CO2 saved, and Parmo’s!

For those not local to Teesside the Parmo is a regional delicacy of note (http://en.wikipedia.org/w…) which through it’s ingredients of cheese, béchamel sauce, and being deep fried has a ridiculously high calorie count!

The Parmo Calculator was the welcomed challenge in the development as the concept was that we would allow site users to visualise their journey in terms of Parmo’s dropping to a plate, the shock factor being the tiny fraction of a Parmo that most journey’s equated to. We also made the calculator available as a stand alone tool that visitors could play with and drum up publicity. It worked, gaining the challenge and dotUK local coverage in local press, radio interviews, and even linked to and referenced by the Wikipedia article above.

The competition itself was broken down to allow businesses of different sizes to also compete by entering teams of employees (the cumulative score of their employees being totalled), as well as the individual completion. All user journeys, their ‘Parmo Counts’ and a dynamically generated report of miles walked / cycled over time was available in the individual users portfolios.

From an administration point of view, all aspect of the system were run form a secure web based control panel, this covers both user management, flagging ‘suspect’ journey logs, content management, and competition and winner management. The competitions were designed to be run time and time again between specific date ranges so we built tools that allow new competitions to be defined and journeys automatically entered between the relevant dates. Some winners prizes were also drawn at random so we created tools that allowed winners to be picker honestly.

When a competition is active the real-time statistics are published to both a widget on the home page and also to a dedicated live results page showing the scoreboard in terms of individuals and employers in the region. To further motivate year on year competition the historical archives of past competition results are permanently available and automatically generated.

Wrapped around the competition element of the site is the content management system. Near all content on the site it controlled through our own build web based content management system. Each page on the front end consists of one or more content blocks and the output content of those blocks is created by the administrator using the WYSIWG (What You See Is What You Get) editor.

This means that the administrator does not need to know, or have any real understanding of HTML or web scripting languages, they can simply type as if it were a regular word processor and format text style, colour, size and alignment with ease. In addition we created a web based media manager which allowed the simple upload of images to be embedded in the content thus allowing for the simple creation of visually rich, engaging content for their community.

Content wise these tools allowed them to manage 20+ pages of unique content instantly on demand, and engaging users beyond the competition. Content included local events, Bike maintenance tips, links to local resources and cycle path maps, the Sustrans Cycle network journey planner and much, much more.

Art Screen Prints – Cross Platform Mugs App Case Study

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

Art Screen Prints based in Guisborough here in the North East specialise in producing print based fund raising merchandise for schools, clubs and other associations. One such product is ceramic mugs printed with the pupils drawing. In order to best represent the potential end product the need to produce Parental Order Forms (POF’s) that are personalised with the pupil’s details, and as close as possible to a final representation of the Mug printed with the pupils drawing. We would also need, within the same workflow, to print the final print ready templates in PDF format for use in the printing process,

Technical

Client Art Screen Prints – Guisborough based School and Fundraising Print

Platforms Apple Mac, Windows

Technologies C#, Mono, GTK+, .Net, ImageMagick

Development Desktop Software, Mac Software, Windows Software, Cross Platform Software

Case Study

One of the unique requirements of this software development was the fact that the client used a mixture of both Apple Macs, and Windows based PC’s and as such this tool would potentially need to run, in the same manner, across both platforms.

The workflow is in essence two fold, presented with a folder of pre-scanned images (grouped by Class, or other equivalent organisational hierarchy), the desktop application we developed would need to take this feed of images, process them, and generate one, or both of;

  • Print Ready, PDF Formatted print template for the actual scaled image to appear on the Mug
  • A Parental Order Form to be distributed to the schools representing a final printed mug as closely as possible.

To do this we built the application utilising the Mono framework (a Cross platform representation of the C# language that allows applications to be built from a single codebase under Windows, Mac, and Linux).  However as this was a desktop application and we had to consider the User Interface (UI) it was also necessary to make a decision on the UI framework.  In the end we settled on GTK as the best performing, simplest, multi platform graphical interface framework, for what was as an interface quite simple.

The application itself was mostly a wrapper around pre-generated ImageMagick (A cross platform software suite for manipulating images programmatically) commands that we built to create both the print template, and the POF.  Particularly challenging was the need to take a flat two dimensional image, and create the effect of wrapping and warping the image ‘around’ the Mug so as to represent what the human eye would see in the flesh.

In addition, owing to the batch processing and time it would take, we had to ensure to user asynchronous event based programming within the apps interface to ensure that a consistent update on progress was fed back to the user, without the application timing out, or ceasing to respond as it would with lengthy synchronous waits.

Thanks to our success the project grew to encompass a sister project for the generation of Calendar templates, and associated order forms.

Efiling – Web Based Company Formation Software

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies 

Summary

Efiling is an award winning online company formations software product that was originally developed by dotUK and had undertaken a number or significant revisions and expansions in the lifetime of the product

Technical

Client Efiling Ltd – Online Company Formations Software

Platforms Web, Web Services, Kashflow, XML Gateway

Technologies PHP, CSS, JQuery, Javascript, MySQL, REST API, JSON, Kashflow, SOAP, XML, Python

Development Web Development, Web Services Integration, Kashflow Integration, Companies House Integration

Case Study

The Efiling Web Based Companies House Software product was initially conceived with the core functional requirements of offering a web based medium through which instruction to the Companies House Gateway could be sent, on receipt of which the gateway would act upon those instructions. Examples of commands which could be instructed include;

  • Formation of a UK Company (Eg Ltd, Plc etc)
  • Add / Modify / Resign a Director
  • Add / Modify / Resign a Company Secretary
  • Articles of Association & Memorandum
  • Change Registered Office

Version 1 of the software, developed exclusively by dotUK was utilising the Companies House Email Gateway, this protocol mean that instructions were issued by embedding commands in the email message subject and the payload (data fields, attachments etc) were embedded in properly formatted email message body. Responses from the Gateway were equally sent via email to a dedicated mailbox which was polled and monitored at the Efiling end.

Efiling is a multi tenanted system, which means the core platform is used by a near unlimited number of brand owners / companies withcompany formation needs. To function in this way data security and segregation is paramount as under no circumstances can data ‘leak’ between tenants on the system, and we built robust practices and data references into place to ensure this never happened. It also added significantly to the complexity of the system as we then had to manage website templates, company names, Companies House account details, email addresses and domains to manage, in essence near every variable in the system had to be configurable on a per tenant basis.

Billing for orders was another challenge to be managed, end user payments were taken by credit card on order, however brand owners were split between pre-pay (An account with a preloaded positive balance of funds) and credit accounts (Accounts with a preset maximum negative balance according to their credit limit), so we built a complex accounting structure that allowed for both charging models, and of course all associated reporting, statements, and invoicing required. Pricing levels (Both to Efiling, and charged by tenants to their clients) was also configurable and changeable on demand.

As the product matured additional features were added, which included expanding the standard statutory Companies House product offerings to allow tenants to offer bespoke, bundled packages, which included their own value add services (eg Company Secretarial, Mail Room services, offline products such as bound articles, hard copies of certificates etc). These were managed on a per tenant basis so significant upgrades to the tenant administration tools were made, and also to Efiling’s own system administration tools which sat above the tenants as an overview.

Soon Companies House began the process of decommissioning the email gateway service, which worked well, but was limited in terms of speed of service due to the delays faced in email delivery, and introduced a new XML based gateway. This gateway is in essence a secure web service that listens real time for commands sent direct over https (secure web traffic) and using documented (mostly!) XML documents as the payload. The benefits this service offered were that responses to instruction delivery were often available instantly, and it allowed us the option to ‘poll’ the gateway periodically for updates as opposed to wait for an email to arrive. It also increased reliability as we were communicating direct with the gateway as opposed to the round robin route email can on occasion take. dotUK were heavily involved in this transition, and the opportunity was taken to significantly improve other areas of the system such as document generation and storage.

Unfortunately it became apparent as the project progressed that some areas of the new gateway functionality were incomplete, undocumented, or not tested which meant we were frustrated in our ability to communicate progress to the client. However we took steps to optimise our time as efficiently as possible and made sure that we managed the project fully, this included taking responsibility for liaising with Companies House direct (who’s hands were tied by their own third party development team) and on occasion direct with the gateway developers themselves. Ultimately we were able to build and conclude testing of instructions in parallel with Companies House as we moved towards the deadline for switch off of the old email service. This was a regulatory deadline and was immovable.

Since then we have also been involved in other third party integrations, such as feeding bank account application into the Barclays Business accounts service (again an XML based gateway) and integration with the Kashflow web based accounts software using their SOAP based API. The advantages of using Kashflow were that it meant tenant accounting transactions were ultimately delivered direct into their accounts package, new customers automatically created, invoices and credits posted, thus automating tenant admin processes, actually reducing the amount of functionality required within the Efiling Back End, and actually adding significant value to the proposition.

For more information about Efiling, or to enquire about licensing their web based company formation software technologies please visit www.efiling.co.uk

H Jarvis Web Based Support Software and Customer Portal

Prior to Xyroh, Andy was the founder of dotUK (A software development firm based out of Yarm and Stockton on Tees here in the North East), again specialising as a developer in mobile apps, web applications and desktop software for a number of business clients – this is one of those portfolio case studies

Summary

H Jarvis, a North East and Marske based Quality Windows and Doors manufacturer head a need to improve upon existing quality control and customer support processes, increase efficiencies in service engineer response, and to allow end users to self service their own support cases

Technical

Client H Jarvis – North East based window fabricator

Platforms Web, Web Services, Outlook Calendar Sync

Technologies PHP, CSS, JQuery, Javascript, MySQL, REST API, iCal / Webcal, JSON

Development Web Development, Web Services Integration

Case Study

H Jarvis are a multi site company with bases of operation in Marske (North East England) and Blantyre (Scotland), and had an existing interconnected IT infrastructure linking the two sites. With that in mind it made sense to build a Web Based Software Solution, in this case utilising dotUK’s own bespoke web services framework.

This framework, built for purpose, is built upon a PHP, MySQL REST based API framework that allows seamless, consistent, and secure data exchange from the hosted API hub and the end client’s browser. Again utilising PHP and JQuery in the web client we were able to offer an improved experience to the end user, without the traditional stop, start, or click and wait frustrations of traditional web software. Functionality wise have built a central support system for all sites which registers and manages all currently active customer support cases, with SLA support and comprehensive management reporting. In addition to case reporting the system also offers manufacturing build orders for remedial work and iCal calendar synchronisation with Outlook.

Fitter appointments are booked by the agents on an informed intelligence basis to minimise unwanted travel time by allocating cases to geographic zones and forward looking appointments to ensure that fitters are booked in when next in the appropriate locale. This appointment picking process also includes real time estimates of travel time so the most informed appointment booking decision can be made.

End use wise the system also includes a web based portal for key clients to view and manage their support cases, including any updates, notes or case changes. This allows end users real time access to updates when they need it, yet at the same time freeing Agent staff from fielding update enquires directly .

The solution is built upon dotUK’s managed web services platform hosted in the North East which allows for scalable database clustering, high availability, and includes 24/7 monitoring and management, and full data backups to an offsite datacentre

Native App, Hybrid App, or somewhere in between?

I quite often get told “I want an app for my business”, not that they “need” one, they want one, which can often be the wrong place to start, as we’re justifying a want by creating the needs. Underneath it all there are many complex technical considerations and decisions to be made, often by us and trusted by the client, but these considerations come on the back of the business’s “needs” not it’s “wants”, and the app platform, is one of these.

So first off, what is a native app, or what app platforms are there? The lines are grey in the middle, so feel free to disagree with these definitions (happy to engage in the debate!) but broadly we have;

  • Native Apps – In it’s purest sense these are apps written in the native programming language of the mobile device you’re targeting, eg;
    • iOS (iPad and iPhone apps) – Uses Objective C (and now Swift)
    • Android – Uses Java (not Javascript! More on that below)
    • Windows Mobile – C# (pronounced C sharp)
    • Blackberry – Java, however not the same as Android (Pre Blackberry 10), however the latest Blackberry Priv handset is in essence an Android device.
  • Hybrid Apps (With Native UI) – These include platforms such as Xamarin, or Telerik AppBuilder, which is based on C# and F#, but the end result on each device is a ‘Native’ App using Native UI elements so the app feels at home to users on that platform. The end result is these are compiled down to ‘Native Apps’ on the device so often indistinguishable from true Native Apps.
  • Hybrid Apps (With Cross Platform UI) – This is the biggest ‘app’ space at the moment, filled by vendors such as Phonegap / Cordova, Appcelerator Titanium, normally pitched at Web Developers trying to get into the mobile space as it appeals to their existing HTML5 and Javascript skill sets.
  • Web Apps – Not really an app! Not in the mobile sense, but a traditional web site hosted and accessible to all and heavily optimised and responsive for mobile users.

So what are the pros and cons, and which do I need! Well there’s the conversation, but sit down with us for a cup of coffee, or engage with us and we’ll look at your “needs” and help you come to an informed decision, but some points to consider;

  • So you want a mobile friendly, easily accessible, cheap (relatively) way to engage with a mobile audience? On any device, wherever they are connected. – Then consider a mobile optimised website, no need for app stores, or worrying about platform related decisions, just out there.
  • Do you want to engage with the mobile audience? Eg send Push notifications, Know where they are physically located, use the camera, microphone etc? – Then for a good experience you need an App, that has access to the devices hardware, eg GPS, Camera, Microphone. Most Hybrid Apps will allow this, Native Apps without question.
  • Do you want the user to work offline? Ie when no internet connection? – If the app is to work disconnected, without a live internet connection then you are in Native, or Hybrid with Native UI territory. The app will need to read and write to a local database to store your work when disconnected, and then ‘phone home’ when back online, this needs more complex cross platform background services and databases.

Another consideration is user experience, end users engage with their mobile so much these days that functional apps should be second nature, they should pick up your app and start using it, it should be obvious, which is where Native Apps, or Native UI based apps win every day. The best example is deleting a record from a list. On an iOS device you swipe left, and tap delete. On Android it’s press and hold, then Delete. On a Native App, or a framework such as Xamarin which uses the Native App user interface (in fact it uses the same user interface tools as Native Apps so you don’t get any closer!) then that’s what you get, your end user feels at home. Yet on Cordova / Phonegap based apps, which pitch themselves as code once, run everywhere, you have exactly the same user interface and design on Android as you do on iPhone (sounds good, right?), except what you’ve achieved is an interface that all users find confusing, it’s not ‘natural’ on an iPhone, or Android, so your users have to learn to use your App.

tablet mobile app with phone mobile app

So what about the benefits to you, the customer? Well that comes down to price. Using a hypothetical example of an ‘app’ that needs to be on Android and iPhone, downloads user content from a web based Content Management System, that the user can interact and send content back including photos taken within the app, and the app owner can send push notifications based on GPS Location, your year 1 project prices differ as below;

  • If you go fully native, and certainly if you want your app available on more than one platform then you need to write the app twice, once in Objective C for the iPhone, and again in Java for Android apps, near enough double your cost – £9500.
  • A Hybrid, non native Cordova solution will be significantly cheaper, it gets written once, but your user experience suffers, based on the requirements above it’s possible though – £3000
  • Somewhere in the middle, a Hybrid App with a native UI, such as a Xamarin, the back end and core workings of the app only have to be written once, in C# for example, so a considerable development time saving, but the user interface is written individually for each platform using Native tools to get the perfect experience – £5500. The clever ones amongst you will notice that we’ve not mentioned Xamarin Forms, which is the Amber Nectar, negates the need to design the UI for each platform, but still gives the benefit of native UI on each device, if this is appropriate for you (and often is for line of business apps), then the price could drop further to near £4500 suddenly less than half the price but all the benefits

So what’s the conclusion? There isn’t one, the best answer is to engage with your chosen app developer (us we hope!), have a cup of coffee or two and talk through your requirements and come to a sensible conclusion based on your “needs”. What’s more concerning, is for those of you out there that have already had a mobile app commissioned did you have a conversation along the lines of the above? Have you got what you “needed” or what you were given?

I make no pretences that I love Xamarin, more so now they’re backed by Microsoft, be it Xamarin Classic, or Xamarin forms I can offer you and your business incredible value, especially across multiple platforms, but I’m by no means restricted to them (I actually spend the majority of my time working on a Java / Groovy based Android app for tablets). I’m just as happy dropping into true Native technologies, or a quick win with Cordova, but the choice is yours, not mine.

For more information on Mobile App Development please Contact Me

PS: For the avoidance of doubt, anything generated by someone with a ‘mobile apps for bizness’ account costing you about £500, they’re not apps, they are badly hosted websites pretending to be an app (turn airplane mode on your device and start the app, what happens!). The reality is that you won’t get any return on your ‘bargain’ £500 app, you’re just £500 poorer, sorry ????

Andy Flisher is a Mobile App Developer based in the North East of England with over 20 years software development experience. He is available for hire and specialises in cross platform mobile app development, web applications, desktop software, bespoke cloud architecture solutions and providing outsourced project management services.

Footnote: Originally written in June 2006 but edited to make more current in January 2019 when republished