The emergence of Apple’s iOS platform in 2007 changed the technology landscape in a variety of ways. With smartphones becoming a viable computing platform, websites needed to be presented differently, opening the door to the responsive design initiative. Apple’s intuitive and clean interface standards impacted the software design aesthetic more broadly than had been the case when they were only the second-place desktop platform. Even the role of software in people’s lives shifted; efficient applications, serving narrow and specialized roles, and always available to the owner, became part of everyday life for many of us. Pearlsoft was one of the earliest developers on the iPhone, with multiple projects in active development in 2007, and hundreds of projects to-date that have involved iOS support. We’ve tailored our work to the unique needs of every generation of iPad and each member of the complex array of iPhone and iPod models, including the newer retina display devices. iOS applications run the gamut of intent and design philosophies, but some categories we’ve worked with include:
Marketing applications – These are applications whose primary function is to establish a company’s presence in the App Store. They can be challenging to develop because it’s necessary to provide sufficient value to the end-user to make the application compelling, and it’s critical to ensure the end-result isn’t simply something that could be done with a website; one of Apple’s criteria during the review process. Pearlsoft has extensive experience with the App Store submission process. While it’s not possible to guarantee approval, we can at least present the relevant challenges and help to design a sound product.
Device control software – The iPhone and iPad are convenient and portable interfaces to hardware devices or even other applications. We’ve built control applications for medical devices, beds, window shades, planetarium software, and a range of other items. Content presentation – From immersive interactive book experiences to displaying magazine subscriptions, newspaper articles, medical reference databases, video tutorials, and much more, Pearlsoft has taken advantage of iOS’s ability to present a convenient and comfortable viewing experience with many intriguing options that go beyond what’s possible in print.
Games – We’ve done extensive iOS game development, including strategy, word games, educational tools, live-action play, and more. There are countless other types of applications we’ve created: utility applications of all sorts, music creation and streaming programs, image manipulation, and more. One architecture we’re seeing with increasing frequency is a web backend and web interface, combined with an iPad or iPhone app. These are often used internally by businesses to support convenient data entry or information access for field reps. These systems combine the processing and storage power of an enterprise-class web application with the convenience and usability of an iOS app, and we believe it’s a very compelling design to consider in many cases. It’s also quite common for iOS to be just one component of a more extensive mobile strategy, and we often undertake the simultaneous development of iOS, Android, and BlackBerry applications for a single client.
Android is a Linux-based operating system distributed by Google, designed primarily for touchscreen and mobile devices. The majority of smartphones and tablets (approximately 70%) run Android.
Android is open source software distributed under the Apache license. The terms allow Android to be modified by developers to meet their particular needs, also making Android an attractive choice for embedded systems and other highly customized environments.
Applications written for Android smartphones are typically developed using Google’s freely available Android SDK, which employs a modified version of the Java programming language. Eclipse is a common development environment for Android apps; Google’s ADT plugin provides access to its debugging, testing, and device emulation capabilities.
Unlike iOS, Android is conceived as an “open” system. Developers can write applications that provide services to other applications or processes. One could, for example, write a third-party email client that would expose a “Send Email” service to the OS and would appear in the list of email applications when a user sends email from within another application. It’s also possible to write a service that runs in the background; again, not an option in iOS.
While supporting Android is generally an important part of a company’s mobile strategy, there are some caveats to keep in mind:
Android emulators are limited and quite resource intensive. Whereas iOS development can depend heavily on emulation, Android applications really need to be developed with access to the Android device, which can slow development slightly. To add to the challenge, the proliferation of devices, screen sizes, vendor-specific tweaks, and supported Android versions makes thorough testing quite difficult and sometimes costly. The use of Java as the programming language for the SDK, and Android XML-based approach to loading UI elements is perhaps controversial and less efficient than other common approaches.
Pearlsoft has successfully deployed numerous Android applications, again often creating mobile applications on iOS, Android, and sometimes BlackBerry; either simultaneously, or serially. We can effectively estimate ports of existing applications to Android, and also the creation of new ones