Original article by Adam Sinicki for Android Authority; https://www.androidauthority.com/make-unity-apps-1073017/
Image Credit: Ian Hughes, used under Creative Commons 2.0 Licence. https://www.flickr.com/photos/epredator/5036240068
Unity is a game engine and integrated development environment used by millions of developers to bring games to Android, iOS, Windows, consoles, and many more platforms. It is currently the most popular game engine on the Android platform, thanks to its streamlined interface and workflow, as well as its rich array of features and excellent versatility.
While Unity is primarily aimed at game development, it is not limited to games only. In fact, there is no reason you can’t use Unity to build a host of other tools, utilities, business apps, and the like. And there are some compelling reasons to do so! In this post, I’ll explain why you might want to build a non-game app in Unity, and how you can set about doing so.
Reasons to build non-game apps in Unity
Why would you want to develop non-games with Unity, when you have a perfectly good IDE in Android Studio? There are a few compelling reasons.
Rapid development
The first use case is that Unity makes Android app development quicker and easier in many situations. For example, Unity lets you use C# rather than Java or Kotlin. While C# isn’t to everyone’s tastes, it is generally considered a little simpler to get to grips with versus Java. Not only that, but if you’re already familiar with C#, then you’ll find this is a much easier transition. The IDE also keeps the file structure of your Android app hidden, with no need to worry about things like the AndroidManifest or resource folder.
On top of this, Unity uses a particularly intuitive and rapid user interface. Much of this is a case of drag and drop, and building UIs doesn’t require a background in XML. You’ll need to do far less actual coding when building non-game apps in Unity, and many things, like adding an image to a button or using a custom font, are extremely simple. That’s as it should be, but if you try either of these things with Android Studio, you’ll find it’s headache-inducing!
Testing and deploying apps is extremely efficient, too. Adding “assets” built by other users couldn’t be simpler. Even the installation and set-up is made quick and easy!
Cross platform development
Unity is a cross-platform tool, meaning that you can easily create apps for Android, iOS, and Windows with very few alterations needed. If you’re a developer and you want to reach the widest audience possible, then this is a significant advantage (though it is fair to point out that other tools like Xamarin will also allow you to do this).
Powerful features
Although most of its features are designed with game development in mind, there are also a number of powerful features that might be useful for developing non-game apps in Unity. These are primarily graphical features, so if you want to include 3D elements in your app, Unity could be a very good choice.
Reasons not to build non-game apps in Unity
While you can build a host of powerful non-game apps with Unity, you will find that it has its limitations. As with anything, it’s a case of selecting the right tool for the job.
Here are a few reasons why Unity might not be the best choice for your app.
Larger app sizes
Unity is a game engine and it includes a lot of code to support the various different functions it provides to the developer. That means you’ll instantly increase the size of your app by relying on it.
This will put some developers off of using Unity unless absolutely necessary. But in reality, the difference in size is rather minor, and it is very unlikely to affect the subjective user experience in a meaningful way.
Lack of native support for some features
The cross platform nature of Unity means that it can’t possibly keep up with every single new development on every operating system or piece of hardware. Likewise, the game-centric nature of the tool means that supporting things like fingerprint sensors is not a priority.
Want to create an app using the Material Design language, that includes a standard-looking set of buttons and text fields, and allows users to do things like turn off their WiFi or send text? You’ll have a much easier time using Android Studio.
If that’s not important to you, then Unity should still be under consideration.