The software development packages needed to develop, deploy, and manage
mobile apps are made from many components and tools which allow a developer to write, test, and deploy applications for one or more target platforms.
Front-end development tools Front-end development tools are focused on the user interface and user experience (UI-UX) and provide the following abilities: • UI design tools • SDKs to access device features • Cross-platform accommodations/support Notable tools are listed below.
First party First party tools include official
SDKs published by, or on behalf of, the company responsible for the design of a given hardware platform (e.g., Apple, Google, etc.), and any third-party software that is officially supported for the purpose of developing mobile apps for that hardware.
Second party Third party Back-end servers Back-end tools pick up where the front-end tools leave off, and provide a set of reusable services that are centrally managed and controlled and provide the following abilities: • Integration with back-end systems • User authentication-authorization • Data services • Reusable business logic Available tools include:
Security add-on layers With
bring your own device (BYOD) becoming the norm within more enterprises, IT departments often need stop-gap, tactical solutions that layer atop existing apps, phones, and platform component. Features include • App wrapping for security • Data encryption • Client actions • Reporting and statistics
System software Many system-level components are needed to have a functioning platform for developing mobile apps. Criteria for selecting a development platform usually include the target mobile platforms, existing infrastructure, and development skills. When targeting more than one platform with cross-platform development, it is also important to consider the impact of the tool on the
user experience. Performance is another important criterion, as research on mobile apps indicates a strong correlation between application performance and user satisfaction. Along with performance and other criteria, the availability of the technology and the project's requirements may drive the development between native and cross-platform environments. To aid the choice between native and cross-platform environments, some guidelines and benchmarks have been published. Typically, cross-platform environments are reusable across multiple platforms, leveraging a native container while using HTML, CSS, and JavaScript for the user interface. In contrast, native environments are targeted at one platform for each of those environments. For example, Android development occurs in the Eclipse IDE using Android Developer Tools (ADT) plugins, Apple iOS development occurs using the Xcode IDE with Objective-C and/or Swift, Windows and BlackBerry each have their own development environments.
Mobile app testing Mobile applications are first tested within the development environment using emulators and later subjected to
field testing.
Emulators provide an inexpensive way to test applications on mobile phones to which developers may not have physical access. The following are examples of tools used for testing applications across the most popular
mobile operating systems. •
Google Android Emulator – an
Android emulator that is patched to run on a Windows PC as a standalone app, without having to download and install the complete and complex
Android SDK. It can be installed and Android compatible apps can be tested on it. •
The official Android SDK Emulator – a mobile device emulator which mimics all of the hardware and
software features of a typical mobile device (without the calls). •
TestiPhone – a
web browser-based
simulator for quickly testing
iPhone web applications. This tool has been tested and works using
Internet Explorer 7,
Firefox 2 and
Safari 3. •
iPhoney – gives a
pixel-accurate web browsing environment and it is powered by
Safari. It can be used while developing
web sites for the
iPhone. It is not an iPhone simulator but instead is designed for web developers who want to create 320 by 480 (or 480 by 320) websites for use with iPhones. iPhoney will only run on
OS X 10.4.7 or later. •
BlackBerry Simulator – There are a variety of official BlackBerry simulators available to emulate the functionality of actual BlackBerry products and test how the device software, screen, keyboard and
trackwheel will work with the application. •
Windows UI Automation – To test applications that use the Microsoft UI Automation technology, it requires Windows Automation API 3.0. It is pre-installed on Windows 7, Windows Server 2008 R2 and later versions of Windows. On other operating systems, you can install it using Windows Update or download it from the
Microsoft Web site. •
MobiOne Developer – a
mobile Web integrated development environment (IDE) for
Windows that helps developers to code, test, debug, package and deploy mobile
Web applications to devices such as
iPhone,
BlackBerry,
Android, and the
Palm Pre. MobiOne Developer was officially declared End of Life by the end of 2014. Tools include •
Eggplant Functional – GUI-based automated test tool for mobile apps across all operating systems and devices •
Ranorex – Test automation tools for mobile, web and desktop apps •
Testdroid – Real mobile devices and test automation tools for testing mobile and web apps == Design principles ==