Project profile: Using Flex to build financial management apps

by Lauren Gibbons Paul

Budgeting one's money used to be pretty straightforward. Many people simply put cash in different envelopes for things like groceries, clothing, and entertainment and spent until the money was gone. That was before debit cards and the explosion of credit card use made everything so much more complicated. Nowadays, it's rare for people to know exactly where all their money goes.

When he founded In2M Corp. in 1999, President and CEO Steven B. Smith wanted to restore that relative simplicity by creating an electronic version of the envelopes method of budgeting. He called it Mvelopes, combining the words mobile and envelopes. The application would aggregate transactions from all the user's financial institutions (such as banks, credit card companies, and investment firms) in a single view to show all of that person's outlays by category as well as his or her net worth.

In2M, of Draper, Utah, launched its Mvelopes Personal online spending management and budgeting application in 2001 as a PC edition. The management team became convinced it would be better as a web application; the company's first online version appeared in 2003. That edition was built using a JavaScript library on a pure Java platform.

But the application soon ran into performance problems.

In search of a new development platform

In 2004, In2M head developer Brett McCleary realized that the company needed to find a new development tool and framework for Mvelopes. The Java-based application had run out of gas. "It was very slow to render, and there were compatibility problems with Macintosh browsers," said McCleary, vice president of product research and development. "We had pushed the JavaScript library to its limit," he said.

McCleary was quickly convinced that the HTML page metaphor was not a good fit for a personal financial management tool. After all, Mvelopes competes with premier desktop packages such as Quicken and Microsoft Money; those users are accustomed to an extremely robust interface they can manipulate intuitively without waiting for the screen to redraw. Given that all in-house developers had extensive Java programming experience, the team briefly looked into moving to a J2EE-based platform. "We were very familiar with that technology, but the use case did not fit the bill," said Dave Neddo, vice president of marketing.

The answer was to build a rich Internet application (RIA). "Basically, we wanted a web-based application that performed like a desktop application," said McCleary. He admits he was wary of using new technology. "I'm pretty conservative when it comes to making technology changes, but the RIA seemed to fit our criteria."

McCleary spent weeks and then months evaluating products, reading reviews and techno-blogs, combing through developer forums, and chatting with colleagues at other companies.

He narrowed his focus on OpenLaszlo and Adobe Flex. Ultimately, McCleary chose Flex. "This application is our company. It's a big deal for us. We needed a mature solution, and one that has support," he explained. "OpenLaszlo didn't feel mature enough for our needs."

Moving forward with Flex

As a pilot project, McCleary's team proceeded to integrate its J2EE-based business logic (on the back end) with the Adobe Flex server-side modules. McCleary was surprised to find that it took less than five days to get the link working. "That was a turning point for me," he said. At that point, McCleary felt certain that Adobe Flex was the right choice for creating and delivering the Mvelopes application.

Immediately, half the team began developing the client side of the application. McCleary was initially concerned they would have to spend a lot of time learning Flex, but that became a non-issue. "The MXML tools were great. We could do a lot of layouts via Flex layout managers without a lot of coding," he recalled.

"Usually the developers spend all their time moving widgets around the screen, making the layout more usable, and analyzing everything," said McCleary. "That takes a lot of time unless you have a tool like Flex. The VBox and HBox containers were excellent tools to lay out the screen and do the alignment. They worked exactly as expected."

The developers leveraged all the standard components that are provided in the Flex library — including grids, buttons, and containers. They also built a custom tree component. The grids were especially helpful. "Our application is very grid-heavy. I was pleased by how quickly the grids sorted both financial data and interface elements. The grid components were easy to work with, and their properties were simple to use. The Flex components behaved the way we expected them to," said McCleary.

Flex also has a familiar programming model. "If you understand basic object-oriented programming principles and event-driven UIs, this solution will fit nicely with your skill set," he said.

Developers create a slick app

With help from the marketing team, the developers delivered a slick application. The marketing team would mock up a design and the engineering team could quickly build a working model for them to look at and test. "It was an iterative process," said McCleary. "In JavaScript, we had to do a lot of coding to achieve an effect. With Flex, we could get the same effect with just a little coding. We didn't have to know the internal workings of the browser to get it to work. Flex abstracted the work for the developers."

While the programmers embraced Flex to varying degrees, most enjoyed learning the tool. In fact, the development manager insisted on doing a lot of the coding himself because he liked using Flex. "It was pretty unusual to see a manager do that. He got a kick out of it," said McCleary.

An all-around success

In2M released Mvelopes Personal in February 2006. Users happily embraced it, according to Neddo, the marketing VP. "Many users said that it was smoother, the interface was better, and it was more seamless to work with," he said. "We just have more polish than we used to."

This early feedback has proven true. PC World named Mvelopes Personal one of the 100 best products of 2006, and the application also generated buzz in Barron's and The Wall Street Journal. "We are seeing significant growth in user subscriptions since the release," said Neddo.

Learn more about In2M Mvelopes

Based in Massachusetts, Lauren Gibbons Paul writes frequently about rich media applications and mobile computing.