We’ve discussed the various characteristics of websites, mobile apps and web apps. What they were for and their advantages, how they worked and why they might be best placed for particular applications. In this post, we want to go a little deeper – and consider what development implications the three different platforms might pose.
These are key questions for developers, but they’re also important considerations for any business exploring new projects: development requirements will impact on project lead times and budgets, and have of course place requirements on personnel. Which staff a business hires – or more likely which agency it chooses – will depend a great deal on what platform they’re seeking to build, and therefore what skills are required.
From a developer’s point of view, understanding not just the appropriate platform in general but the precise reasons that a particular platform has been selected for an immediate purpose are key. No development project is the same as another, even when the underlying technologies are similar. Every mobile app will pose its own particular challenges and each website, too.
Given all that, what are the rules of thumb when developing websites, mobile apps and web apps – and in particular how should businesses incorporate them into their decision-making? Read on.
We’ve covered this before, but web apps are designed to be interactive. A website’s primary purpose is to present information. A mobile app is the term we’ll use to describe a piece of software that is downloaded onto a mobile device.
These distinctions really matter. A developer will approach building a website or web app or mobile app very differently – and they will utilise different technologies. For example, developing a mobile app immediately asks the question of native or hybrid – that is, build an app specifically for a particular device, or using some sort element of cross-platform technology. A native app will usually run more smoothly and elegantly – but hybrid approaches can be a lot cheaper. This is ultimately a business decision, then, but with serious development implications.
Likewise, a web app can often be built by a web developer – no app development needed! – but can only be run within a browser, such as Chrome or Firefox. They are not downloadable for offline use as mobile apps often are. This has advantages and disadvantages.
From a development perspective, choosing between these is a relatively neutral task – again, business logic dictates which platform to use, but development impacts will occur and need to be taken into account.
So if most mobile app developers and web developers are often different people, it follows that they have different skills and deploy different technologies. Consider the humble web app: your chosen webmail service, for example, or Twitter and Facebook. These are built using web technologies commonly found in browsers. That requires a web developer to implement.
Of course, if you also want a mobile app – perhaps to deliver a different service to a different audience – this will require an app developer, since these are built using not web technologies but very often the languages and programmes used to run software on the various mobile operating devices, for example, iOS or Android. And you may need to build more than one – since native apps need to be constructed specifically for the platform they run on.
This is why web developers are useful: their technologies can usually be launched on any device operating a web browser. Responsive web design means that web apps can usually display well on a number of different devices and screen types, too. There is only one codebase to work – and this makes development often more straightforward … and the final product much more widely usable.
Web apps cannot displace mobile apps entirely – because they are often rather slower to operate. App developers, in optimising their product for a particular device, can use a range of features not available to web developers to ensure that their app is expertly tooled to operate at lightning-fast speeds in a specific environment. Web developers need to ensure that one size fits all – and this can mean a more cumbersome experience for the user.
A good web developer needs to be honest, then: their work is often more widely accessible than an app developer’s, but the latter’s work will very often work far better with the specific device a user is packing. It’s simply a function of how the different types of developer operate, and the various tools and codebases at their disposal. Web developers and app developers are each constrained in various ways – but their strengths and weaknesses are not the same.
Web app designers have a choice between client-side and server-side approaches: put simply, a client-side web app loads a lot of the application first, requiring less exchange between a device and the server to run; a server-side approach involves far more queries between the two, which can be slower throughout, but requires little up-front load-time at first. Different uses will usually lead the decision here: front-end applications which emphasise the user interface often opt for a client-side approach; back-end uses which requires constant changes or updates to databases and the like (a website content management system, for instance) will usually opt for a server-side approach.
Mobile apps, on the other hand, are of course downloaded to a user’s device – meaning that most of these kinds of consideration are moot when building a native app. That said, so-called “hybrid” apps – where mobile apps utilise some element of web technology to increase cross-compatibility – might lead to some questions about offline versus online content which are not dissimilar to the client-side/server-side challenge. Again, much of this will be led by business decisions – who is the app for, what should it do, how should it behave. Developers exist to serve the product; but knowledge of the options helps inform the product design process.
Likewise, apps need to choose their language. These codebases are widely shared across the internet, but each achieve something different. On the front-end side of the ledger, Javascript is great for client-side uses, HTML for displaying content, CSS structures pages, and so on. Server-side codebases include Python, PHP, and Ruby. Native app developers, too, must adopt the appropriate codebase for the implementation – whether platform-specific or not will depend on the precise app type, but these decisions are essential to make at an early stage, and with a view to the advantages and disadvantages of each language or technology.
On the topic of development stages, it’s useful to understand and map out an app’s development journey: broadly, you’ll identify the solution, plan the workflow, produce a prototype, test and validate it, and the move to build, beta-testing and launch. This will be familiar to most project managers and software developers of all kinds – and adopting this well-known structure will help not only keep your app development on track, but help involve non-specialists in the process.
In other words, although developing websites, web apps and mobile apps each have their own challenges, there are some key and transferable approaches which can unlock the more granular decisions to be made on the most technical fronts: understand your purpose, assess the advantages of the solutions, proceed in a clear and staged manner.
Apps of either type are different from each other, and different again from websites; but although this can make development a tricky and even idiosyncratic process there is a straightforward route through the challenges: understanding your needs, hire a great developer and talk a lot. That’s how to overcome the challenges of developing websites, mobile apps and web apps.
Are you considering a new mobile app, web app or website for your business? Our UK based developers and designers create digital solutions that can transform your business. With offices in the Midlands and Manchester we help clients nationwide. Please get in touch to find out more.