What Technologies Exist for Building Apps
by Tim Bornholdt · Published on May 3, 2021
One of the first development decisions you’ll make when building an app is determining which technology platform to use.
Oftentimes a developer may suggest a particular development approach simply because that’s where their expertise lies. If a developer is pushing a particular development approach, don’t be afraid to ask questions to understand why because, ultimately, choosing the wrong development platform for your goals and needs might end up with major headaches down the road.
Having high-level knowledge of the different technology options that exist for building mobile apps can save you costly technical debt accumulations.
So what are the different technology platforms for building apps?
Native apps are apps written using the tools and frameworks provided by the platform vendor.
Most developers work with an Integrated Development Environment (IDE) which is an app purpose-built for developers to create software for a given platform. On Android, that would be Android Studio. For iOS, that would be Xcode.
Each platform has a couple of choices for which language is used. Because the mobile app development landscape is maturing, there are a couple of language choices you could make depending on your circumstances.
If you have an existing app that has been around for a few years, it likely was written using Java (for Android) or Objective-C (for iOS). These languages have been around for decades and are well supported and tested.
However, both Apple and Google recognized the need for more modern and approachable languages to be used going forward, so each of them have released their own modern languages. On iOS, most new apps are built using Swift, and on Android, Kotlin is the tool of choice.
There are several good reasons to build apps natively, which is why we prefer to use this approach at the Jed Mahonis Group.
Native apps provide the best user experience, the highest level of security, the fastest performance, and the best support for integrating with on-device sensors like GPS, Bluetooth, and so forth.
Building apps natively requires more upfront cost than any of the following technologies. When building hybrid apps (which we’ll get into next), code is written one time and it works on multiple platforms. But with a native app, one developer is focused solely on iOS and another solely on Android. Having two different developers as opposed to one is obviously going to cost more, and as a result, can lead to longer build times.
Hybrid apps are written in one language, then compiled into native code that will run on multiple platforms. Common hybrid tools you might hear are Xamarin, React Native, Ionic, and Flutter.
Hybrid tools are a lot more comfortable for web developers to pick up and run with versus learning how to write native code. As a result, you can get to market faster with some of these tools if you already have a web developer on staff. Because code is written once and then compiled to run on each platform, there’s lower upfront costs to build them.
The bridge component of your hybrid app is key. If that bridge is not hyper-optimized, the performance of your app could suffer.
Modern hardware is so fast these days that the performance tradeoff might be worth it for the lower development cost. However, every piece of software you add to your app comes with more cruft that weighs down your app and contributes unnecessary digital waste to our environment.
For more on how our digital waste affects the environment, check out this podcast episode.
Hybrid apps also have restrictions around what device functionality they use, such as GPS location or getting at your contact list. Access to these built-in device features is done through plugins, which have their own set of security problems.
It’s important with hybrid apps to consider your company’s future goals. If you outgrow the limitations of a hybrid platform or want to implement a feature that isn’t supported on a hybrid app, long-term development costs will be higher as you'll have to start from scratch building an app natively.
On the other hand, if you need to reach a large audience quickly with a limited budget and are willing to sacrifice a little on performance and user experience, then hybrid apps could be the right approach.
If you want to dive deeper into hybrid apps versus native apps, check out this podcast episode that covers use cases and limitations of each.
Progressive Web Apps (PWAs)
Progressive web apps are a great way to build an app without needing to go through the App Store or Google Play. These “apps” are actually fully-encompassed websites which run through a web browser. Similar to an app downloaded from an app store, web app icons can be placed on a home screen or desktop.
Progressive web apps look and feel like regular mobile apps in how they’re designed and navigated. The big difference here is that the whole experience is driven through the user’s web browser. PWAs act like websites in many ways, but a PWA can be accessed by a user even if they’re not connected to the network.
Even better, PWAs have zero app store review process. Once you make an update to your PWA, it’s instantly available the next time your user accesses it.
There are two main downsides to PWAs. First of all, while support for PWAs is ever increasing (check out this cool demo which explains what PWAs can do today), PWAs are treated as second-class citizens compared to native/hybrid apps. You are limited to how much storage you can access, and the support that Apple and Google provide is extremely varied. iOS still doesn’t support all the same PWA features that Android does.
Second, remember how I said there is no app store review process? Well, that’s because they aren’t on the app store at all. You would need to market the PWA to your users and also educate them on how to get it installed on their device.
No code/low code apps
With a proliferation of low code/no code development tools on the market, these platforms can be an attractive option for businesses looking to build an app quickly without the use of a software developer.
No code/low code platforms are great for building prototypes quickly to test the market. However, since these solutions are HTML web pages wrapped in an app, they present challenges around user experience and accessibility.
While no code/low code solutions may be cost-effective on the outset, eventually, these tools can become more costly than if you're building natively. If you get to a point where you want to add a custom feature, more often than not, you’ll have to start from scratch building an actual native app.
We did a whole podcast episode on this topic, so give it a listen if you want to learn more about no code/low code apps.
So which tech platform is the best development approach?
There’s no right or wrong answer here. It all depends on your business goals. Native apps, hybrid apps, progressive web apps, and no code/low code tools each have their pros and cons.
Our best advice is to work with a development team that is transparent and believes in your company’s goals over selling you a service. If a company approaches us at The Jed Mahonis Group to build an app natively, yet we think it would be better off on a no-code platform or simply as a website, we tell them so, and happily refer them to someone in our network.
If you want to chat about your company’s development options, hit us up. We’re here to help.