We are excited to announce that Clutch, a Washington, DC-based research firm, has named WillowTree Apps a leader in the mobile app development space. We’ve been recognized as a top service provider in the overall mobile app development category, as well as in specialized reports on iPhone, Android, and Enterprise app development.

Clutch reached out to companies with strong design and development experience as candidates for their research. Analysts evaluated client feedback, portfolio items, case studies, domain expertise, and market presence to determine each firm’s focus areas and proven ability to deliver high-quality work. Clutch then published several Leaders Matrices highlighting the top companies, including WillowTree Apps.

Some of our past clients provided in-depth feedback to Clutch about their experience working with us. You can read their comments and the full reports here:

Top Mobile App Developers

Top iPhone App Developers

Top Android App Developers

Top Enterprise App Developers

Willowtree Apps Profile and Reviews

Continue Reading Article

Today we’re following up on our earlier post about mixins, and discussing another mixin we’ve found useful. Before we dive in, here is a simple demo with all the relevant code under the javascript tab.

In many apps you will need to pop up a modal and block all user interaction until the user responds to the prompt. This is very similar to the native  confirm   command.

Here we present the user with a Yes / No dialog box and proceed depending on…

Continue Reading Article

On larger software projects, one of the biggest challenges to a successful and timely delivery is aligning the efforts of multiple teams. Understanding the web of interdependencies and planning the development schedule of related subsystems is a full-time job on many projects. Even with careful milestone planning and employment of agile techniques complex projects inevitably run into situations where the efforts of one team are blocked by a late deliverable from another team.

As enlightened software developers, we understand that no amount of planning ahead of time can force a creative endeavor like software engineering to fit neatly on a calendar. But we also recognize that no amount of flexibility and agile pivoting can completely mitigate the fact that sometimes teams will be blocked waiting on other deliverables. So how can we minimize the risk to the overall product timeline?

In mobile development, especially large scale Enterprise integration projects, we most frequently run into situations where a backend API is not complete enough to proceed with client application development. In those situations, what we really wanted was a way to allow development of each to proceed unimpeded by the other. Just as our software architecture aimed to be a set of loosely coupled components, our development process needed to minimize interdependencies, allowing teams to work on different parts in parallel while communicating through common interfaces.

Decoupling API Development

In order to decouple API and client development, effectively allowing concurrent development on each, we found we needed two key things:

  • A common description format for an API to serve as the primary reference for any team interacting with the API. This description should be the canonical point of validation for the API itself as well as any systems that interact with it. It should provide human readable documentation to aid development and be a machine-readable specification that tooling can build on.
  • A way to simulate…
Continue Reading Article

One of the major impediments to the rapid adoption of mobile by large enterprises and institutions has been that Application Programming Interfaces (APIs) must first be created to connect legacy systems to mobile or other devices. Without mobile-optimized APIs, the apps consumers and employees want simply cannot get access to the underlying data to be useful.

To enable development teams to more quickly create and test APIs with less wasted time and resources, we are proud to announce that WillowTree has beta launched a cloud-based rapid API design and virtualization tool called Monkeypod™.

Many mobile projects continue to be delayed by either waiting on APIs to be completed or building mobile applications and APIs concurrently. The latter approach often results in a mis-match, creating rework and further delays — much like a tunnel being built from both ends and failing to meet in the middle. As Forrester Inc.’s February 2014 report A Benchmark to Drive Mobile Test Quality states, “Service virtualization is the key to enabling back-end and front-end development teams to deliver on an independent cadence.”

“Until now, developers have faced two bad choices for beginning mobile projects where APIs either don’t exist or are in flux: wait until the APIs are ready, which often delays a project by months, or build the apps and APIs concurrently based on existing documentation. This invariably requires weeks of rework because the final APIs have differences from the client-side implementation,” commented Michael Prichard, Founder & Chief Technology Officer of WillowTree. “Monkeypod eliminates this problem by enabling developers and architects to design, immediately expose, and test a working API or web service and automatically create related documentation. This enables various back-end and client-side teams to work concurrently, with almost no risk of rework, to more quickly create robust mobile apps.”

Based on standards including HTTP and JSON,…

Continue Reading Article

It’s been a few months now since Apple unveiled their first foray into the multi-trillion dollar health sector with HealthKit, but it’s still difficult to say what they have in mind in the long run. For those who weren’t tracking the WWDC announcements this year, HealthKit is the toolset provided to developers to capture health information (breath and heart rates, nutrition, etc.) and store it in a shared user profile across the device. This profile is visible in the Health app included in iOS 8, providing a central dashboard for all of the information that’s being piped in from any number of applications.

For developers, this makes storing data much more appealing since Apple is taking the security of this data very seriously. Historically, the penalties for failing to secure health data properly have been draconian to the point that companies have avoided trying to store the data entirely for fear of being bankrupted by a minor oversight in their code. There is some risk for developers that making the information that they track accessible to all other apps could be sacrificing a competitive advantage, but the trade-off is likely worthwhile for anybody who doesn’t want to dedicate a huge chunk of resources to software security. In the case of some products, the availability of a shared profile also streamlines the onboarding experience, obviating the need for manual input of any of the metrics already being tracked.

There is a strong incentive for Apple to make this platform attractive to developers as HealthKit users will have a bank of data tied directly to their iOS device, and that data will not be transferrable to a competing product if HealthKit gains significant traction. Considering how much Apple has invested into the technology, though, we likely haven’t seen all they have up their sleeve. While they’ve been tightlipped about their long-term strategy in the health sector, the Apple Watch announcement made it clear that…

Continue Reading Article

Beyond the exciting news surrounding the Apple Watch and iPhone 6, Apple’s announcement of their new Apple Pay platform is arguably one of most revolutionary changes out of this year’s iOS 8 event. Apple’s push into the mobile payment space will not only be a huge benefit for iPhone users but will also help bring NFC and mobile payments into the mainstream.

Here are the top 3 things you need to know about this new and and very exciting platform from Apple:

1. NFC Payments

Apple Pay opens up the world of NFC contact-less payments to iPhone 6 and iPhone 6 Plus users. It’s going to be very easy for people to get started with Apple Pay. Here’s how it will work:

  • Users can simply opt to use the primary credit card Apple already has on file for them in iTunes. If a user wants to add a different card, all they have to do is take a photo of that card and add it to the Passbook app.
  • Once a credit card is added to the device, the information used to make a payment is stored in the iPhone 6’s secure element. This ensures the integrity of the card information as Apple does not store your card or payment history to keep your data private.
  • Once the cards are set up, the user can simply scan their finger using the TouchID sensor and tap the phone or Apple Watch to the payment terminal to pay for items in-store.

Apple is also supporting NFC payments for users with iPhone 5 and 5s that purchase the new Apple watch, allowing users with older devices to join the NFC payment world. If your device is ever lost or stolen, Apple has also provided a method to remotely disable purchasing power of a device to keep your payment information safe.

2. In-app Payments

As part of the Apple Pay release, Apple is providing developers the ability to roll out support in their…

Continue Reading Article

Tuesday’s iOS 8 event included some of the most substantial announcements in years from Apple. The changes to phone size, the payment platform and Apple’s smartwatch are all mobile game changers. This was the most significant launch event since the iPad — and if you remember, the iPad was met with similar criticism as the watch is being subjected to today. Four years later, it is clear the iPad changed mobile computing (and in fact computing overall) — we believe that four years from now we’ll all see the Apple watch in the same light. Let’s look at how Tuesday’s announcements impact mobile strategy and apps currently in the marketplace or under development: 1. The Big Screen x 2 (iPhone 6 & iPhone 6 Plus)  To the surprise of almost no one, yesterday Apple revealed two brand new iPhones, the iPhone 6 and the iPhone 6 Plus. As pre-event rumors suggested, the new iPhone models are sized at 4.7-inches and 5.5-inches respectively and greatly increase the amount of real estate that developers can utilize in apps. Interestingly, the iPhone 6 Plus allows for different and varied layouts compared to the iPhone 6 and iPhone 5. The iPhone 6 Plus allows more content to be visible and supports iPad-style layouts in landscape mode. These layouts are made available via “size classes” that allow developers to provide unique layouts for variations in screen size and orientation.  The iPhone 6 (like previous iPhones), will support the “compact” size in landscape mode, whereas the iPhone 6 Plus supports the “regular” size class which allows it to display more content. In order to support multiple screen sizes and size classes, Apple has made “auto layout” available in previous OS versions; however until now, the benefits of using “auto layout” have not been fully realized. To Do:

  • Immediately run all existing apps on the new screen sizes in iOS 8 using the simulator to test how your apps will appear and behave, given the new combination of OS and devices. Many older apps will not…
Continue Reading Article

Apple fans across the world were treated to a number of exciting announcements at today’s iOS 8 event. Our team is excited by all of Apple’s news too and we’ll be covering all things iOS 8 on the blog for the remainder of the week. Without further ado, here are our first iOS 8 impressions:

iPhone 6 

Apple is going big this year with two new iPhone sizes, the iPhone 6 and the iPhone 6 Plus.  These new sizes greatly increase the amount of real estate that developers can utilize in their apps.  Interestingly, the iPhone 6 Plus will allow for different and varied layouts as compared to the iPhone 6 and iPhone 5.  For our clients, this change means more opportunity to create compelling interfaces that match the form and factor of devices they use. Not only will apps be able to take advantage of the larger iPhone 6 Plus screen sizes, but they will also scale down elegantly to fit  iPhone 6 and iPhone 5 screens.

As developers, these new screen sizes mean we need to take advantage the new iOS 8 APIs (e.g. size classes and auto-layout) in order to continue building our clients elegant apps. Fortunately, Apple also revealed that existing apps can be scaled automatically to fill the screens of the new iPhones. That said, taking full advantage of all the new functionality of these devices will require deliberate thought around how to best leverage the newly available screen space.

Apple Pay

Apple Pay is arguably one of the biggest announcements of iOS 8 and marks the arrival of seamless mobile payments for iPhone 6 and iPhone 6 Plus users. Those who purchase one of the new devices will now be able to easily scan their existing cards into the iOS and make mobile payments anywhere NFC transactions are accepted. Additionally, users with stored cards can now make seamless payments online, and possibly within apps too. Apple’s jump into the payment space means big things for…

Continue Reading Article

A never-ending and often emotional debate in mobile development circles remains whether to use a deep cross-platform tool such as Xamarin, or develop apps natively? It’s almost impossible to find impartial analysis as nearly every reviewer comes in with an underlying bias. At WillowTree, however, we use both approaches, and in the end it all depends on the project and your organization. Here are some things to think about when we tackle this all-important platform problem for a client:

Continue Reading Article

If you’re reading this post, it’s likely you’re in one of two camps of thought:

Camp 1: “I don’t know what Google Tag Manager is, but I want it.
Camp 2: “I love Google Tag Manager for web, and mobile will be just as easy.”

To each of these camps I reply: not so fast. Like all things tech, there are ins and outs that require careful consideration. In this post, I’ll explain to you what Google Tag Manager is, where it came from, and how it applies to mobile.

Beyond the marketing buzz words like “IT-friendly,” “quick and easy,” and “multi-platform,” deciphering what exactly Google Tag Manager is can be a challenge. Most people come around to the idea that Google Tag Manager is “souped-up Google Analytics.” But what does that really mean? What does Google Tag Manager actually give you? We’ve got to look at the web’s evolution to answer these questions.

Once-upon-a-time, there was only the Web (I like to refer to this time as, “before the mobile era,” or “BME” for short). During this time, web development teams implemented “tags” (snippets of JavaScript), which fed usage information to data-hungry marketers. Marketers would constantly request tagging tweaks in their quest to increase conversions and reach performance goals. The result was massive amounts of wasted time both coordinating teams to modify event tracking tags, and waiting on test-release cycles to complete. To stay ahead of the competition, marketers needed more agility and more flexibility.

Google Tag Manager is built on a promise that marketers won’t need to rely so heavily on development teams. It places power in their hands by letting them decide for themselves what tags should be defined. Rather than developers sprinkling snippets throughout their otherwise pristine code to explicitly tag events, a single Tag Manager snippet replaces them all.

The Nitty Gritty of How Google Tag Manger Works:

Tag Manager uses the concept of a “container.” It contains the following types of configuration:

  • Tags – what to see in your report (e.g. “User Logged In”)
  • Rules – when a tag should be “fired” (e.g. “href clicked containing /login”)
  • Macros – which name-value…
Continue Reading Article

We’re proud to announce that WillowTree has been recognized for the third-consecutive year as one of America’s fastest-growing private companies on the 2014 Inc. 5000 List. This year we jumped ahead 524 positions to grab the 454th position, placing us among the top 10 percent of all companies on Inc.’s exclusive annual list.

Our rapid growth over the previous 12 months is a testament to the fact that organizations across industries like healthcare, sports, media and entertainment, as well as enterprises with specific field sales and field services functions, recognize the huge efficiency gains and return on investment from mobile. These companies are truly engaging their customers and workforces in meaningful and value adding ways through apps and connected devices, and making peoples lives easier. 

We’d like to thank our partners and clients for the continued trust they place in WillowTree. We are proud of our team, and this third-time honor from Inc. Magazine. Check out the Inc. 5000 List to read more about this year’s honored companies, and learn more about WillowTree’s ranking here.

Continue Reading Article

A common problem you will face when developing Backbone applications is deciding where to put shared logic. At first blush, inheritance (via extend) can solve most of your problems. When you have a group of similar classes, simply make a common ancestor and have them all inherit from it. But what happens when you have a group of *unrelated* classes that need a similar feature? This is where the Mixin pattern becomes incredibly useful.

For the use of this article, we will be making a simple mixin that shows a pop-up alert message with some text when a method is called.

Continue Reading Article