Articles by Xyroh

Articles by Xyroh – an Indie mobile app and software developer based in the North East UK

Industrial Programming Case Study – Glasgow Watersports

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 for an industrial programming project

Industrial Programming

Industrial Programming is a term reserved for the programming of industrial equipment, pumps, valves, etc to control and monitor any number of simplex or complex scenarios. In many small business scenarios the distinction is being blurred with the advent of ‘Internet of Things’ products such as Hue Lights, Ring doorbells, Tado home heating automation etc – the concept however is the same, you turn things on and off.

In this case we are using a combination of a web and mobile based dashboard to turn on and off the paddle sports course pumps as required, the dashboards being the visible, more traditional development side, but the industrial programming being what happens behind the scenes to interface with the pump infrastructure.

Project Summary

The Glasgow Watersports project is a multi phased industrial programming project that will ultimately empower the user to control and administer the canoe course pumps and lighting from mobile devices, and place site bookings over the web.

The core control system part of the project allows for programmatic control of the sites pump, lighting, and klaxon systems using the industry standard Modbus protocol. This is being offered in conjunction with Retroflo, a North East based Electrical Contractors and bringing on board their expertise in industrial process control.

Glasgow Watersports Industrial Programming Dashboard

The full flow of the development will commence with a web based booking system provided by dotUK, end user bookings are then pushed privately to the Glasgow Watersports site where the onsite infrastructure will allow users to access their booking and the control systems via any wifi enabled device.

Local users can then control the pump output (strength of water flow) on demand in accordance with the abilities and expectations of their group.

A full remit of expected industrial safety, and health and safety best practices are of course in place but this investment allows the end user, through dotUK’s software development expertise, to bring control and a more beneficial user experience to the end user.

Release 1.0 of XyrohLib,

Release 1.0 of XyrohLib, our multi platform C# interface to a number of common crash reporting and logging services;

– Log file recycles at 1MB or at a customisable int (bytes) value, eg

– Can get full log file path back from Lib

https://github.com/Xyroh/…

The case for ‘App Watcher’

App Watcher is a new service (actually that’s a fib, it’s been around more than 3 years, so that’s not a good start!), it’s a new ‘public’ service I offer that anyone can sign up to. So who is it for, what does it do, and what do you get for your £25.00 a month.

So who is it for? Anyone who has a website, eCommerce store, cloud app, mobile app backend or any other publicly available web based endpoint – so that’s all of us then! More importantly this should be something you depend upon, a revenue stream or application without which your business will struggle to operate. Within that it’s geared more towards the SME sector who don’t have dedicated, fully skilled IT and developer support on hand 24/7 – that combination is where App Watcher is of value.

Image

What does it do? Well on it’s own it merely monitors, it checks periodically to make sure that the monitored web service is up and responding – and then let’s you know if anything looks amiss – normally by email and / or SMS. Additionally we also keep an eye on the related domain name and any attached SSL Certificate to warn you when they are likely to expire so you can mitigate downtime before it happens – however none of that is particularly new, if all you want is monitors and alerts then there are great services already out there such as Pingdom for one that will look after.

So our justification, is the worst case scenario, we offer peace of mind that there will be real, dedicated, independent human support available – and already investigating – should your monitored web site, app or presence go down unexpectedly. As soon as is practical we will manually investigate, diagnose, and provide a report back letting you know exactly where the problem lies, and give you and indication as to who to speak to to get it resolved – and remain accessible until it’s back.

Consider the scenario, you’ve commissioned an e-commerce store a few years back, they person on staff familiar with the details is has since left, but the store is up and running, earning you money, and all is good – until the day it stops. What’s wrong, and how do you fix it?

  • Has the domain name expired? Ex employee registered a few domains – always good to keep control of your domains and not leave it to the hosting company, but who did he register them with? Have we paid the bill.
  • Who is it hosted with, possibly the developer you originally contracted, but you don’t have much to deal with her now as the site is all done, and chances are she set that up with a third party anyway, or even a reseller – will they act on out instructions, or was the hosting with the domain name company?
  • Or could it be the SSL Cert, vague memory of our IT firm setting something up, or was that for the mail server – I forget.
  • Where to start, and who do you trust, no one likes admitting an error so are the answers you’re getting back ones you can trust?

Image
This is where we come in, we’re independent so no vested interest in anything other than being truthful and honest. We also have years of experience, we know where to look, what to test, and how to come to a quick, accurate conclusion – and more importantly communicate that to you in ways that are useful, relevant, and helpful to pointing you in the direction of the resolution to your woes.

We’ll also provide you with a written report to use for your records, or to forward on upstream to any interested parties to help you bypass their first line support and give hard facts to the engineers that can resolve it, after all we’ve done the detective work for them.

All that, an insurance if you will, from just £25.00 per month, and no risk to you as no minimum term, you can cancel when you wish. To signup our see the options just head over to our signup page to get started or if you have any questions just drop us a message via help@xyroh.com.

Look forward to having you onboard.

Oops – How to fix when you’ve upgraded Visual Studio for Mac / Xamarin iOS and now being forced to upgrade Xcode and to Catalina 😬

What went wrong?

So, here’s the scenario, fire up Visual Studio for the Mac, not enough caffeine in the system, an ‘updates’ box pop up,  a Xamarin iOS update amongst many, you click ok, then instant regret 😟. Why you may ask, an update is good? No? Well not here.  Like many developers I have a reluctance to go to Mac OS Catalina (a lot of changes, and too many issues) and am quite happy in the stable, stable land of Mojave. So what have I done?

In essence I’ve upgraded the version of Xamarin iOS from somewhere in the 12.x range to 13.16. I knew the second I’d upgraded it had gone wrong, but opening a Xamarin iOS / Forms project instantly told me.  My selected version of Xamarin iOS required an Xcode upgrade to 11.x.  Off to the App Store I go, just to confirm, and of course;

UntitledImage

Mojave of course is 10.14, Catalina 10.15, so I have to upgrade right, and lose a day of productivity (or more) with it? Wrong.

The fix

So, the solution, first off come out of Visual Studio for Mac, and then drop to Terminal app.  Execute these commands line by line (entering your admin password when required);

rm -rf ~/Library/MonoTouch
sudo rm -rf /Library/Frameworks/Xamarin.iOS.framework
sudo rm -rf /Developer/MonoTouch
sudo pkgutil --forget com.xamarin.monotouch.pkg
sudo pkgutil --forget com.xamarin.xamarin-ios-build-host.pkg
sudo pkgutil --forget com.xamarin.xamarin.ios.pkg

In the meantime I had downloaded the latest 12.16 release of Xamarin iOS.  For me this is https://dl.xamarin.com/Mo… however your requirements may vary.  Should be as simple as tweaking the download url to suit, you can find 12.x version numbers over here on the Xamarin iOS 12 release notes page.

Once downloaded simply double click and install the package.  Then fire up Visual Studio for Mac and fingers crossed, all worked fine for me.

About me

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.

What Is a PHP File?

What Is a PHP File? – Original article at Tutsplus

PHP is a server-side scripting language which is mostly used to build web-based applications. These may range from a very simple blog website to a full-fledged eCommerce website for selling products online. In fact, PHP is one of the most popular server-side scripting languages, with a very healthy market share.

For those that like to geek out, or just understand what’s going on under the scenes, the above link is a really good breakdown on how PHP (the server aside scripting language I use for a lot of my development projects) work.

Andy Flisher is a Web 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.

Arcus Platform version 3.0 updates

Busy start to 2020 for the Askaris Arcus platform, big version 3.0 release translating both the portal and offline tablet interfaces into the end users native language, which will be huge for our client’s Brazilian, Norwegian and other global Operations.

Up next will be a multi-year improvement to the Dropped Object inspection framework, and further translation improvements – including a self learning multi language translation process – this will allow reports to be carried out in a a native language and then proof read and translated into multiple additional languages – another huge time saver.

The Arcus platform is used predominantly in the OIl and Gas sector to facilitate audited regulatory inspections, but as a full Asset Management suite it has uses in many other sectors.

#assetmanagement #inspectionsoftware #askaris #arcus

Find out more at – https://askaris.com/

Chrome OS has stalled out – is there a tablet shaped future for Android?

Chrome OS has stalled out:

But Android apps, so far as I can tell, are basically the plan for Chrome. Certainly, Linux environment support is great for enthusiasts and developers, but there are very few commonly-used commercial applications available on Linux, with no sign that will change in the near future.

A comment not so much about Chrome OS, but it’s lack of good tablet optimised applications mirrors that of Android as a whole. The Arcus project I lead for Askaris runs primarily on Android powered tablets, but outside of the Atex rated specialised devices sourcing consistent hardware is a struggle, less and less good Android tablets available, and Chrome OS has probably hindered that, not helped it.

A chicken and an egg, no devices, so no users, so no demand, so no apps. Apple at least has the cash and incentive to have jumped into that cycle and invested / motivated. Outside of Samsung and Google (who keep making poor decisions!) who can do that for Android / Chrome OS?

Updating Apps that Use Web Views – Are you affected?

Updating Apps that Use Web Views – News – Apple Developer:

If your app still embeds web content using the deprecated UIWebView API, we strongly encourage you to update to WKWebView as soon as possible for improved security and reliability. WKWebView ensures that compromised web content doesn’t affect the rest of an app by limiting web processing to the app’s web view. And it’s supported in iOS and macOS, and by Mac Catalyst.
The App Store will no longer accept new apps using UIWebView as of April 2020 and app updates using UIWebView as of December 2020.

In layman terms if your app loads content from the web, eg a webpage or a web application then this could affect you. For Xyroh clients, especially those based on Xamarin forms this should’t be a problem as they already use WkWebView.

Worst affected will be those who have stale apps, or aren’t being regularly supported by the original developers – in those cases please get in touch, we can do an analysis of the original source code, let you know if affected, cost to fix and support going forward, and the side effects of doing nothing – basically let you make an informed decision.

Andy Flisher is a Software 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.

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

You get what you pay for – Mobile App Security

You get what you pay for – App Security

In the course of work this week I had a cause to audit an iOS App that a prospect had had developed by a local competitor here in the North East, the reasoning for this was that the prospective client was looking at moving the hosted back end (ASP .Net, SQL Server – standard stuff) and wanted a price.

The purpose of the audit was to check what network connections the app was making, and correlating with what I knew about the backend hosting, just to make sure there were no surprises, we didn’t have the source code for either end yet, it was just a pricing exercise at this point (As it happens the App is written using PhoneGap so we did have the source code, but my route was quicker).

So, I installed the app, redirected my iPhone through a proxy server, and fired up the app – and proceeded to stare in horror. The app instantly, on first run fired up an un-encrypted, un-authenticated connection to the backend host and promptly downloaded the usernames, password, emails, and more for every user in the system. It then keeps a copy of these locally, and uses those details to authenticate later.

Why is this bad, in laymans terms, because anyone, on the internet, who knew the url the app uses could download the same list. Would people be interested in logging in to this system? Probably not, do people use the same username and password for Amazon, Tesco, Online Banking – absolutely, and there’s the problem.

Solutions, well it’s about paranoia, but key areas;

  • Authentication – Implement simple basic authentication so that the app logs in to the webservice it pulls the data from.
  • Https – Implement and SSL connection, then at least all traffic too and fro is encrypted (important as Basic Authentication is over plain text, so without https it’s still sniffable)
  • Change the login mechanism to completely remove the need to download all user info at all.

What’s really frustrating though, and actually makes the ‘You get what you pay for’ title of this post a misnomer, is this wasn’t a cheap solution.  The client paid a very reasonable amount for this app and solution.  This is the sort of thing we see, and sadly expect, when a ‘cheap’ solution is offered as a counter to ours.  We’re not expensive, but not cheap, we do do things correctly though.  It’s a classic case of the customer not knowing what they’re not getting, they trust, and assume that a professional job is being done, without really asking too many questions about why it’s cheap.

In this case no excuses though, I’ll not name anyone, and we’ve raised the issue with the client – We certainly won’t be taking on the hosting until it’s resolved!

Andy Flisher is a Software 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.