Thursday, July 17, 2014

The Select Window Component: Addressing the Difference Between Desktop and Mobile Contexts

As is often the case with new technology, we mimic old ways of doing things until we figure out that the new technology is best suited to new ways of working. Case in point, I am writing a blog to communicate with you now when a video would be more effective.

Experienced developers sometimes suffer a disadvantage because these old ways of doing things creep up in new paradigms as old and freshly irrelevant patterns. Such is the case in the numerous differences in best practice between mobile user interfaces and the traditional GUI interaction in desktop software.

With the announcement of Magic xpa Application Platform 2.5, a new Mobile Application Framework was introduced by Magic Software. Let’s take a look at the Select Window Component to see how different mobile GUIs ought to be from traditional applications.
Our example app is a Time Sheet application. In a traditional application where I want to find a particular timesheet, criteria would normally be entered in a multi-field search form, a “Search” button would be pressed and the match or matches would be displayed in a list. In a large screen format this allows me to use human memory to search very specifically. When my memory is faulty, I can search more broadly and then gradually filter the results to get down the actual time sheet I want to see.

A mobile approach will be quite different. My main screen will call out the two categories that I am most likely to use to find a specific project – wither the “Customer” name or the “Project” name. So I might design an interface with just these two menu options. Each will raise an event that gives me more choices.

If I select Customers, I get a list of my Local Customers.

If I select Projects, I get a list of Local Projects.

But if I select customer, and then click on the customer name in the list. I automatically get a list of that Local Customer’s Local projects.

In this example, the projects are simply named by month. Selecting a specific project will then show me the Customer Name, Project Name and my Time Sheets for that project.

To edit a given time sheet, once again I simply select it (by sliding or touching). Setting the time in the report uses features that are “native” or normal for my type of device (Android, Apple, Windows Mobile, etc.) 

The result of setting the new time is a corrected or updated Time Sheet as seen below.

So the flow of the app is something like this:

That is not to say that the old approach wouldn’t work. But good mobile apps strive to leverage the users time and limit typing and button pressing as much as possible. What the user sacrifices in flexibility, they gain ten times in efficiency and overall ease-of-use. 

Wednesday, July 16, 2014

A New Release for the Magic Application Platform

Ready for a Shiny New Magic App?

Magic Software has released Magic xpa 2.5, the new version of the application platform that readers of this blog have known and loved for a long, long time. In addition to the new version, a new Mobile Accelerator Framework has been unveiled.

The mobile accelerator framework includes capabilities for improved user experience design, an application panel for tile-based menus, a log-in screen generator, enhanced charting for mobile, Google maps integration for location based services, and an application audit trail utility.

As announced in today's press release: "The proven, code-free, metadata-based Magic xpa Application Platform provides an easy-to-use, highly-productive and cost-effective development and deployment environment that lets organizations and ISVs quickly create multi-channel mobile and desktop business apps. Mobile enhancements in the Magic xpa 2.5 release include:

Enriched User Experience: New form animation and color options, enhanced navigation features including native tab bars and navigation drawers, support for customized keyboards and additional native controls.

Greater Platform Extensibility: Streamlined integration between the Magic platform and native code lets developers add more native capabilities.

Improved Developer Productivity: Improved native integration environment makes developers more productive.
Push Notifications: Developers can add push notifications across iOS and Android devices.

Support of Additional Databases and Technologies: Compatible with latest database versions (e.g. Oracle 12) and technologies (e.g. message queuing services).

Magic is also introducing its Mobile Accelerator Framework that includes pre-built component-based development modules and best practices. The reusable components speed development and reduce resources required to create multi-platform mobile applications.

Magic Mobile Accelerator Framework contains standard components for a wide variety of important features, including: User Interface and Display, Navigation, Graphs and Charting, Location Services, Synchronization, Device and Application Auditing, and more. More information about Magic’s new Mobile Accelerator Framework can be found on the Magic website."

Wednesday, June 25, 2014

Magic Software Named to the SD Times 100 Five Years Running

Magic Software has been named to the SD Times 100 for the fifth year in a row. As stated on the awards page: “Each year the SD Times 100 recognizes companies, non-commercial organizations, open source projects and other initiatives for their innovation and leadership. It is not a product award. Judged by the editors of SD Times, the SD Times 100 recognizes the top innovators and leaders in multiple software development industry areas.”

“When choosing the SD Times 100, we carefully considered each company’s offerings and reputation. We also listened for the “buzz”—how much attention and conversation we’ve heard around the company and its products and technologies—as a sign of leadership within the industry,” wrote David Rubinstein when the awards debuted in 2003.

“The SD Times 100 looked for companies that have determined a direction that developers followed,” Rubinstein added as he expanded on the criteria. “Did the company set the industry agenda? Did its products and services advance the software development art? Were its competitors nervously tracking its moves? Were programmers anxiously awaiting its developments? Those qualities mark a leader.”

We will never know for certain what qualities and characteristics of the Magic Software offering entered into the judges decision these last five years. Nevertheless, I have identified here what I believe to be some of the key developments that the judges could have looked at in making their decision.

In 2010, Magic Software was recognized in the SOA & Middleware category. Not surprisingly, in the prior year Gartner and Forrester had both recognized Magic Software as a Visionary and Top Performer in their respective quadrants and waves related to integration and Service-Oriented Architecture.  

Leading up to that time, Magic Software had innovated its application and integration platforms with features such as Web services wizards; SOAP, UDDI, and WSDL automation; RESTful Web Services; Service Oriented Architecture (SOA); and  Event Driven Architecture. While Magic’s support for these technologies had their roots all the way back to 2001, support for Web Services in 2001 and the release of the Magic integration platform in 2003 had clearly become mainstream by 2010.

Magic Software was recognized in the SD Times 100 2011 Database & Integration category. While the grouping of Database and Integration may have seemed like an odd pairing by the editors, it was appropriate enough in Magic Software’s case.  

Our platforms had long included high-speed Native Database Gateways which were particularly important in the pre-in-memory computing era. The diversity of our database, file and variable support also shined through in the Magic xpi Data Mapper, which has a connection to those databases. On the integration side, platform-level features for drag, drop and configure visual integration flows, process flow automation and business process orchestration were also well established and gaining in market adoption and awareness by that time.

In 2012, Magic Software was named to the SD Times 100 in the APIs & Integration category. One of the uniquenesses of the SD Times 100 program has been that the categories have changed over the years. The topic of API integration started to reach a peak that year and the Magic xpi Integration Platform clearly contained rich API handling capabilities that simplified integration for thousands of medium and large sized enterprises. The API library in the Magic xpi Integration Platform included an Application Adapter Library; Technical Component Library; Message Queue Adapters; Composite Object Mashups and Communication Protocol Adapters.  

By 2013, Magic Software’s Rich Internet Application (RIA) technology had come into widespread adoption. So it is no surprise that we were named to the 2013 SD Times 100 in the category of User Experience. Magic Software had introduced desktop Rich Internet Applications (RIA) within the Magic xpa Application Platform’s unitary development and deployment architecture. At the same time as the RIA introduction, Magic’s technology became fully .NET compliant, providing the end user a rich .NET user experience while affording the developer a simplified environment for development of .NET applications.

For the first time in the history of the SD Times 100, Magic Software repeated in the same category in the 2014 SD Times 100. Once again, Magic Software was recognized in the User Experience category. If Magic Software’s desktop RIA was obvious to the market in 2013, it was likely not until 2014 that the editors would have noticed our Mobile RIA capabilities. Magic’s single development environment for both Mobile Client and Server coupled with its deploy anywhere support for iOS, Android, Windows, and RIM is further enhanced by providing users with a native look and feel in both online and offline mode.

Are these the precise reasons that Magic Software has been recognized as a leader in the industry year-after-year? Perhaps the editors would have cited other innovative factors. But one thing is clear, Magic Software is widely and consistently recognized for innovation and leadership in the software development industry.

Wednesday, April 23, 2014

The Time-to-Market Advantage in Mobile Application Development

As a visit to Damnoen Saduak Floating Market of Thailand will confirm, time-to-market and distance-to-customer are distinct advantages in business. 

It is difficult to know which came first: the customers with their curiosity and pocketbooks or the merchants with their bamboo and palm hats and colorful produce, but they are certainly mutually drawn to one another. People do not come here because the prices are cheaper but rather because the produce is fresh, accessible and sold in a convenient and interesting way. In bygone days, the vendors would paddle their boats on the waterways buying, selling and trading fruits, vegetables and other goods all across Bangkok’s canal system.  The canals were convenient, the boats efficient and the coverage of the canals was pervasive across all of the city. Where am I going with this?

Today’s mobile networks are pervasive, mobile apps are interesting and they can get to customers first, right where they are.

When it comes time to build mobile apps that can reach customers, time-to-market has more to do with the ability to develop mobile apps that run on multiple device operating systems and integrate to back-end business transaction systems in an efficient and agile manner. Distance-to-customer is the advantage that mobile apps have because they reduce the transaction distance between you and your customer to zero. Your ability to sell to customers is no further than the palm of your customers’ hand.

But quite frankly time-to-market is often a disadvantage of mobile apps because of the long lead times required to develop mobile apps using native platform development tools. That’s why when we see a platform that claims to marry the advantages of rapid development techniques, pre-built integration solutions and a capability for cross-platform mobile smartphone and tablet deployment, we have to pay close attention. Faster time-to-market for mobile apps requires a smarter application platform.

 Most development approaches fall prey to the time-quality-cost triangle and suggest that you can choose only two of the three beneficial qualities: less time and more quality or less time and less money or more quality and less money. The prevailing wisdom suggests that you cannot have all three. But frankly this popular dilemma is based on the preconceived notion that all approaches require a fixed effort.

What Magic Software initiated in the 1980s with the notion of a rapid prototyping platform for creating business applications carries forward today into some fairly slick and sophisticated technology that still gets overlooked far too often by the mainstream computer programming community. The benefits of an application platform can be found in the fact that it breaks through the problem of fixed effort. Platforms have built-in solutions. They allow for very rapid results by leveraging common application development requirements in an underlying solution set or platform.

Daniel Coyle, author of The Talent Code says: “Baby steps are the royal road to skill.” As I have said before: “Regardless of whether you use agile or scrum project management methodologies, early and frequent results are essential. Too many projects are cancelled midstream simply because their progress is shrouded in mystery.” An application platform gets you to those early victories and propels you to frequent wins that will keep executive sponsors engaged to completion and asking for more.

Native development suffers in comparison to Magic xpa application platform development for a number of reasons. First. More tools are needed. This is not opinion, this is fact. With native development you need a server-side language and deployment methodology and a client-side language. Furthermore, the client-side languages are different: Objective-C, J2ME, J2SE, etc. Because of the extra effort required by these tools, more programmers are assigned to a mobile app development project. While  environmental complexity increases with native mobile development, the Magic paradigm of platform based metadata development remains constant: one tool for all requirements – server-side and multiple OS clients.

To understand the absolute significance of this, one needs to consider the COCOMO II Model of software estimation perfected at the USC Center for Software Engineering. (Go Trojans!) The COCOMO II model can be simplified as follows:

                      Effort = (Team) x (Tools) × (Complexity)(Process)

As you increase the number of programming languages needed (tools), effort increases. The concept is fairly simple. As you increase the number of developers (team), effort increases. And as you increase the functional requirements of the application to be delivered (Complexity), effort increases. The relationship between these three components of effort is factorial.

Those restaurants along the canals of the Damnoen Saduak Floating Market want their vegetables really fresh. For really fresh mobile apps, consider the Magic xpa Application Platform.

Tuesday, March 25, 2014

Magic Users Conference Agenda

The Magic Users Conference agenda and registration details are now available online at the conference website. You are invited to attend and participate in these sessions. If you see a topic where you would like to co-present or or do a show-and-tell of your solution, there is still time to add instructors. Please contact me at to add your expertise.

 Agenda and Education Sessions
Monday June 2, 2014
General Sessions
8:00 - 8:30
9:00 - 9:45
Welcome/Keynote Session – Eyal Karny, CEO Magic Software Enterprises Americas
9:45 - 10:40
Roadmap Session with Yuval Asheri, VP Product Management and Community Relations
10:40 - 10:50
AM Break
10:50 - 11:45
Magic and the CIO Guest Panelists
1:00 - 1:55 PM
Enterprise Mobility: Strategy and Tactics
1:55 - 2:50
Magic and Cloud Computing
2:50 - 3:00
PM Break
3:00 - 3:55
Automated Application and Integration Testing
3:55 - 4:50
Enhancing the Magic Customer Experience
5:00 - 5:45
Magic Town Hall and Roadmap Input
Evening on Your Own
(see Recommended Activities)
Tuesday June 3, 2014
Development Track
Mobility Track
Integration Track
7:00 - 8:00 AM
8:00 - 8:55
SQL Optimization and Migration
 Boston Medical Center Case Study
When Should I Upgrade to Magic xpi 4.0 and the In-Memory Data Grid?
8:55 - 9:50
HTML5: Merge Revisited
How-to Build Your First Mobile App without Really Trying
Conversion to Magic xpi 4.x
9:50 - 10:00
AM Break
10:00 - 10:55
Version Control and Team Foundation Server
 Is Multichannel the New Cross-Platform Development? -- Glenn Johnson
A Smorgasbord of Retail and B2B eCommerce Integration
10:55 - 11:50
Show and Tell
1:00 - 2:00 PM
IT’s Dilemma: Mobile Device Management
2:00 - 2:55
Converting the World's Worst eDeveloper app to Magic xpa
The Rules of the Game Have Changed: Mobile App UX and UI
Best Practices forCRMIntegration
2:55 - 3:50
3:50 - 4:00
PM Break
4:00 - 4:55
Grange Insurance Case Study (Migration)
Issues and Approaches to Mobile App Deployment
Is it Finally Time for SharePoint Integration?
7:00 p.m - ??
Surf City USA Gala Banquet
Wednesday June 4, 2014
Development Track
Mobility Track
Integration Track
7:00 - 8:00 AM
8:00 - 9:50
Deep Dive: .NET Controls Workshop
Programming for an App that is in Offline Mode
Extend and Enhance Your ERP: A Lesson in Mobility for JD Edwards Users
9:50 - 10:00
AM Break
10:00 - 11:45
Tools you CanUse
How-to Improve Your First Mobile App by Trying A Little Harder
API Workshop: REST, Web Services and More
1:00 - 2:45 PM
Deep Dive: UI Class Design and Usability
Back-End Integration for Mobile Apps
Debugging your Magic xpi Integration Project
2:45 - 3:00
PM Break
3:00 - 3:50
Debugging - Problems and Solutions
 Open Standards Workshop
Deep Dive: Advanced Data Mapping Techniques
4:00 PM

The agenda has been expanded this year to make room for more traditional magic application development training. This has been accomplished by putting mobile development and integration into seperate session rooms. Developers will have their choice between traditional topics (SQL, merge, .NET controls, etc.) and mobile development or integration topics. We're very excited because this allows us to have more trainers, more sessions and more participation than ever  before.  Please register now!