Mobile App Development: the Underlying TechnologiesReading Time: 5 minutes
Recently, we discussed trends in mobile development, and a little bit about the underlying tech. This time, let’s dive a bit deeper into the tools, languages, and frameworks behind our mobile applications. When the words “Mobile App” are used, we automatically think of our smartphones. Of course, tablet users also hope for an ideal app experience. Broadly speaking, mobile app development refers to applications for phones, tablets, and wearables (smart watches).
When it comes to smartwatches, Apple’s WatchKit, and Android’s Wear OS are the primary developing tools. Wearables are ideal for passive status updates, and minimalistic features. If you’re short on ideas, think of how James Bond might use his SmartWatch. On the other end of the spectrum, Tablets are most often used in the enterprise space. All the same, it’s not a bad idea to consider tablet users when designing your mobile app. Flexible layouts for Android, and Adaptivity for Apple devices. There is truly an art to responsive app design, a topic we’ll have to explore more thoroughly in the future.
Tools and Strategies
Many people begin their journey for a mobile application looking into app building sites. These are user-friendly, don’t require human contact, and are quick to deploy. The downside to using these tools is that your users get a rudimentary experience. They are a good tool for market research, or when you only need a temporary app, perhaps for an event. For a high-quality user experience that makes complete use of device features, you’ll want to swipe left on app building sites.
5 mobile developing languages
Swift is a general programming language created by Apple for developing on iOS, macOS, watchOS, tvOS, Linux and z/OS (on IBM mainframes). If you want to develop anything for Apple products, Swift is where it’s at; with advanced features that require minimal coding.
Java is the official language for Android development, and is the most secure way to develop for Android. Its code is run through a virtual machine, rather than directly interacting with the system. Java is open source and has many accompanying libraries and frameworks.
C++ the most widely used general purpose language for application development. It is a robust language, and capable of doing nearly anything you want on any platform. C++ proponents praise its speed, and its cross-platform capabilities. Prominent and robust apps have been built cross-platform with C++ such as Facebook, Skype, and Dropbox.
When developing cross-platform web front-end apps, HTML5 is the way to go. These apps are remotely updated on the server, so you know all users are running the most current version. HTML5 supports modern features such as GPS and camera, and natively support of audio and video (no codec downloads :).
Considered to be an easy language to learn, its primary use for apps requiring database integration. This enables your applications to leverage a powerful server-side database.
There are many developing frameworks designed to make developing easier, with common functions pre-built. These frameworks allow you to focus on the features you’d like, rather than re-inventing the wheel. We use the following frameworks, here at the CSB Tech Emporium.
Titanium is an open source framework that supports developing on Android, iOS, and Windows devices. It enables the use of hardware specific features, and OS specific controls. Apps such as eBay, PayPal, Khan Academy, and many others are built with Titanium.
iOS vs. Android
When considering whether to focus on iOS or Android, it might help to keep the following in mind. There are more different devices running Android than iOS, and it’s much easier to get your app on Google play, than on the AppStore. With that in mind, your first instinct might be to prefer Android. On the other side, Apple’s users are more likely to make an in-app purchase.
Native vs Cross-platform
There are two basic types of cross-platform developing: hybrid and native.
Hybrid is a sub-type of cross-platform developing that is essentially building a web-app with a platform-specific browser, or wrapper, built around it. These apps are quickly deployable, easy for web developers, and inexpensive. On the down-side, with hybrid, you provide the same UI for each platform, without taking advantage of their full features. Popular hybrid apps include Instagram and Evernote.
Native cross-platform developing, or just “cross-platform developing” involves using Software Developing Kits(SDK) such as mentioned for C++, and frameworks such as titanium and react. These techniques allow for full access to the features of each platform and achieve high performance.
These technologies each have their strengths. Depending on the needs of the user, each has its ideal purpose. Fully native app development is required when performance and security are your #1 concern, regardless of the cost. In such cases, you may even choose to only release your app for one platform, designed specifically for its features. Facebook, Last Pass, and Pokemon Go are popular examples of fully native mobile apps.
Tracking and keeping up with bugs in two different platforms at once is not an easy time. For the majority of cases, there is a cross-platform solution that will suit your needs, and provide a superb user experience.