Cross Platform Pitfalls
Podcast: Play in new window | Download (41.6MB) | Embed
Subscribe: Apple Podcasts | Spotify | Email | RSS | More
Depending on your use cases, your application may need to work well on Apple, iPhone, Windows, Apple, Linux, and even various types of tablets. And that’s just if you are looking at the US market – international markets have loads of other options. This is part of the reason web applications are so popular – it’s a way of making cross-platform concerns into someone else’s problem. And frankly, that’s a pretty rational approach, as dealing with the quirks of dozens of desktop, mobile, various tablets and the like is often more than an application development team can handle.
However, a web application, even with all the fairly-recent advances in things like PWAs, may not be sufficient for your clients’ needs. In particular, if you are dealing with disconnected data, memory or processor intensive applications, or just applications that use the file system, you may need to run your application outside of a browser sandbox. And if you do need to support multiple platforms, building a cross-platform app is often the correct choice, both from a business and a development standpoint.
But, like most things in life, there are tradeoffs that you need to consider. By definition, any cross-platform framework that you use is going to mean yet another layer of abstraction between you and the system on which you want to run. And all abstractions, every last one of them, tend to leak. All abstractions are simplifications of a more complex problem. While that simplification may be beneficial, you’ll need to take special care to make sure they are not OVER-SIMPLIFICATIONS. If they are, then you are going to have to work around them. This is, essentially, the core problem in cross-platform development.
Cross-platform applications offer a lot of advantages both to developers and to the companies that employ them. That said, there are a number of pitfalls that you figure out after you’ve worked on a few of them. The added complexity of these applications can often be difficult to see up front – usually by the time you find something that is difficult or impossible to handle, you’re already well into sunk cost territory. However, many of the problems you’ll encounter with any cross platform application framework (whether mobile or otherwise) are actually fairly predictable. If you know what the likely issues are going in, you can more effectively evaluate the risks they pose before you’ve invested in learning and using a cross-platform tool.