Three tools for building applications at high speed

4 min reading
18 August 2016
Three tools for building applications at high speed
Three tools for building applications at high speed

BBVA API Market

Most development and operations teams use Agile and Scrum methodologies to launch digital projects or software. The idea is to create multi-disciplinary work groups that can reach small, fast milestones in consecutive sprints and, as a result, publish a Minimum Viable Product (MVP) as soon as possible. In the case of applications, there are some simple tools that can help you achieve this.

Many of these tools have a free version. Some of the features are unavailable but these versions are a pretty useful minimum viable product. And there is also a paid version with an annual licensing fee. Some of these solutions are intended for developments for the Apple Store, Google Play (Android) and Windows Phone. Here is a practical summary of the three most important solutions:

1.    Android Studio

Android Studio is a set of tools rather than just one tool. Specifically, Android Studio is an Integrated Development Environment (IDE) for quick creation of applications in Google’s mobile operating system. The interesting thing is that Android Studio automates some of the features so that developers are able to focus on the purest design of native apps, supported by a flexible system that offers them all available opportunities.

Here are some of its key features:

– Ability to run and debug the application’s code without having to restart it or tu rebuild the APK installation file. In this way, developers are able to see the result of their changes within seconds, hassle free.

– Smart code editor: Increase code quality and developer productivity with features such as refactoring and programming analysis. As the developer writes the code, Android Studio makes suggestions.

– Functionality emulator: With Android Studio, programmers can test their application without a real mobile device; the following options are available: smart phones, tablets, devices with Android Wear operating system (smart watches) and devices with Android TV.

– Integration with version control, i.e. GitHub and Subversion.

– Code templates for simple addition of standard patterns in application development or even importing functional application from open-source platforms (e.g. GitHub) into Android Studio.

– Integration with all kinds of development frameworks.

– Android Studio allows for the use of programming languages such as C++ and Java thanks to the Android NDK toolset.

– Integration with the cloud: Developers can implement a back-end for their application in Google Cloud Platform.

2.     Titanium Appcelerator SDK

With the Titanium Software Development Kit, developers can launch native, multiplatform mobile applications by using JavaScript and the SDK’s application development interface to abstract from native APIs for mobile platforms (iOS and Android).

“Multiplatform” means that the developer does not have to program the application in iOS and Android separately. They can launch a single product for one of the environments and then tweak it to adapt it to the other environment. This makes the development process light but it has disadvantages. It is not necessary to have to go through the app process from scratch for each platform.

Titanium SDK belongs to Appcelerator. Until recently, this kit was under Apache version 2.0 license and its personal and commercial use was completely free. Now there is a pricing policy. Whereas it is free for old users (subject to invitation), the new version of Titanium SDK is paid for new developers: Indie for 39 dollars a month; Pro for 99 dollars a month; and the custom enterprise version.

Naturally, the paid versions offer more than development. Appcelerator is a platform that provides all features that developers need in addition to a SDK: code debugging, test system, implementation processes, monitoring and data collection for analytics purposes.

3.     Xamarin

Xamarin is a tool for developing native applications that has recently seen significant success. You could say that it has become the natural replacement of Titanium SDK. Xamarin chooses C# as the best programming language albeit programmers can also use this solution with other syntaxes such as Java, Objective-C (normally used for Android) and Swift (iOS). It is also possible to develop native apps in Windows Phone. 

 

In the end, Xamarin follows the same approach as Titanium SDK – developing multiplatform applications. In the case of Xamarin, apps share almost all of their logic and user interface code in C# and XAML for the various environments (iOS, Android and Windows Phone). This is possible thanks to Xamarin.Forms, a tool that includes more than 40 controls and formats, e.g. support for advanced gestures, buttons, labels, designs, etc.

Example of programming in Xamarin.Forms, in this case C#:

                  using Xamarin.Forms;

var profilePage = new ContentPage {
Title = “Profile”,
Icon = “Profile.png”,
Content = new StackLayout {
Spacing = 20, Padding = 50,
VerticalOptions = LayoutOptions.Center,
Children = {
new Entry { Placeholder = “Username” },
new Entry { Placeholder = “Password”, IsPassword = true },
new Button {
Text = “Login”,
TextColor = Color.White,
BackgroundColor = Color.FromHex(“77D065”) }}}
};

var settingsPage = new ContentPage {
Title = “Settings”,
Icon = “Settings.png”,
(…)
};

var mainPage = new TabbedPage { Children = { profilePage, settingsPage } }

During execution, controls are assigned to the native user interface that is specific to each operating system. For example, a UITextView in iOS becomes an EditText in Android and a TextBox in Windows Phone. We’re talking about the same element, which has been programmed once but is placed in a native form on each platform.

It may interest you