Wednesday, September 28, 2011

Overcoming the top three mobile app design & development constraints

Mobile app developers have to be the ninjas of programming because they have to get in, get the job done, and get out without consuming a lot of resources.

There are two ways to overcome the common mobile app design and development constraints: the first is to design around them using brute force, not very ninja like, and the second is to design more efficiently based on a mobile enterprise application platform like uniPaaS. Let’s consider some of the common constraints and how you can do both: design around them and design more efficiently by using a true mobile app development paradigm for enterprise and (dare I say it?) even consumer apps. My comments here will be primarily based on developing for BlackBerry mobile devices, but he same uniPaaS application platform and the general efficient principles of design will also apply to Android, Apple iOS and Windows smartphone development.

Limited Memory. Creating an application that requires less memory will improve the user experience by improving response times and reducing the likelihood of errors. Unfortunately, memory management in Java and Objective-C is extremely time consuming for developers. So regardless of which mobile enterprise application platform (MEAP) you are using you will want to design efficiently. If a field isn’t vital, eliminate it from the app or relegate it to optional views and call for the data only when needed. By using the uniPaaS application platform, you can leverage server side resources to deliver just the data you need when you need it and the best thing is, you don’t have to write any of the code for the underlying architecture or the client. You simply leverage metadata to control your app and the Magic Engine does the rest. To be clear, you avoid the need to program directly in Java or Objective-C altogether. It isn't like Magic, it is Magic!

Limited Battery Life.Battery life has less to do with the efficiency of data usage (although that is clearly one factor) and has more to do with efficient use of the radio. Apps that constantly poll the server for new data, for example, will heighten battery use and frustrate users when the device is drained. In traditional enterprise apps, polling the server across a LAN is a cheap resource and so developers tend not to give it much thought. But in a mobile app it is an even more important issue. Fortunately, the uniPaaS BlackBerry client is very efficient in its use of the radio and you don’t have to manage memory manually at all. This greatly reduces development time and ensures application efficiency and performance.

Limited Screen Size.
The BlackBerry OS supports a simple stacked window model and as with all smartphones, the screen is quite limited in size compared to desktop applications. Developers need to focus on the users’ task at hand, literally.  Do this by displaying only the immediately relevant info and any directly related tasks. Keep it simple and yet functional.

 With a BlackBerry, each application can open multiple windows, but each new window is stacked on top of previous windows and is inherently modal. As there is no mouse pointer, windows cannot be manipulated (moved or resized) by the end user. When an application is run, its main window (and subsequent stacked windows) occupies the entire device screen. How does one navigate then? The context menu is often the best way. The BlackBerry context menu is an important and central user interaction tool. Since the screen size is relatively small, it is common to perform most tasks using the context menu, instead of “wasting” screen space on buttons and on-screen menus.

Unlike most other smartphones, most BlackBerry devices are optimized for keyboard navigation and input. Typically, the trackpad is used to navigate between fields on the form, while the Fire action is used to select values and perform actions. Unlike a desktop keyboard, there is no TAB key so there is no standard key to move to the Next Field or the Previous Field. All navigation between fields and inside a field (i.e an edit control), is done using the trackpad directional actions.

Other Considerations. These top three constraints aren’t the only ones you need to consider, but they are the most important. You should also consider the impact of the longer latency caused by slower mobile bandwidths (compared to LANs) and the fact that smartphones have less raw processor power than desktop clients. All of these issues are mitigated by use of Magic Software’s mobile application platform. Happy developing! For additional information, please contact the Magic Software Enterprises branch near you.

Wednesday, September 14, 2011

If Chuck Norris Were A Programmer

Top Ten “If Chuck Norris Were A Programmer” Jokes

10.          If Chuck Norris were a programmer, memory would be afraid to take a leak.

9.            If Chuck Norris were a programmer, President Obama would be doing his garbage collection.

8.            If Chuck Norris were a programmer, the food chain would collapse because he would kill every bug on the planet.

7.            If Chuck Norris were a programmer, unstructured data would become structured. With Chuck around, nobody ever gets out of line.

6.            If Chuck Norris were a programmer, application security wouldn’t even be an issue.

5.            If Chuck Norris were a programmer, all his programs would be strongly typed.

4.            If Chuck Norris were a programmer, none of his functions would have arguments.

3.            If Chuck Norris were a programmer, his first program wouldn’t be ‘Hello World’ it would be ‘Goodbye Underworld.’

2.            If Chuck Norris were a programmer, there would be no exception handling, because there would be no exceptions ever.

… and the Number One “If Chuck Norris Were A Programmer” Joke:

1.            If Chuck Norris were a programmer, all his applications would be perfectly metadata-driven. After all, they would be developed on a Magic application platform

Tuesday, September 13, 2011

A Trip to the .NET Forms Library with uniPaaS 2.0

With the release of uniPaaS 2.0, the Magic Application Platform now supports the use of the Windows .NET forms library. These capabilities are delivered by .NET within “classes” that are a part of what is known as the System.Windows.Forms namespace.

Beginning with uniPaaS 2.0, the use of the .NET Forms library within a uniPaaS application is supported in both uniPaaS online (client server) and rich client tasks. After you begin a new task, you must define your .NET object in a new variable by creating a virtual variable in the Dataview Tab of the uniPaaS task. You select the .NET object type either by typing the name or using the uniPaaS selection lists to find the .NET object you want to use.

Developing with the Windows .NET forms library is much easier on the uniPaaS .NET application platform than it is in simple 3GL .NET coding languages such as C#, C++, JScript or VB.NET. uniPaaS 2.0 provides a metadata driven paradigm for application development that allows you to easily incorporate managed code from the .NET forms library along with so-called “unmanaged functionality.” This is true because the uniPaaS 2.x runtime engine is an extension of the uniPaaS 1.x runtime engine. A new .NET front-end wraps the existing C++ engine, thus enabling both .NET and unmanaged functionality in a single runtime engine. The ease-of-use comes into play in several ways:
  1. When you want to use .NET forms capabilities, you can. It is not mandatory.  Very rich applications can be designed using the core GUI capabilities within uniPaaS.
  2.      Adding .NET managed code is simplified because your overall application leverages the benefits of the uniPaaS metadata-driven platform. Low-level programming is never required.     
  3. uniPaaS’ tab and table driven interface allows you to avoid complex line-by-line scripting and coding. uniPaaS takes care of the typical programmer “housekeeping chores” so that there is less effort than normally expected to create a program.

Let’s review the seven main class categories in the Windows .NET form library:

Control, User Control and Form classes.  The Control class constitutes the majority of classes available in the System.Windows.Forms namespace. Controls are key to visibility. In other words, a control class is sued to provide the base functionality for all program controls that are displayed on a form in your application. You can think of a form as a window within your application such as a dialog box, modeless windows, Multiple Document Interface (MDI) client and parent windows.

Menu and Toolbar classes. The library also includes a category of classes for building custom toolbars and menus with your desired look and feel. ToolStrip is used for creating toolbars.  MenuStrip is used for creating menu bars.  ContextMenuStrip is used to create context menus. And StatusStrip can be used to create status bars.

Standard GUI Control classes. The Windows forms library included a number of mainstream controls for input (such as TextBox and ComboBox) display of data (such as Label and ListView) and firing of commands (such as Button).

Layout classes. The layout classes in Windows Forms help control the layout of controls on a display surface, such as a form or control. For example, the FlowLayoutPanel lays out all the controls it contains in a series, and the TableLayoutPanel provides a control for laying out data in a fixed grid. More sophisticated layouts can be managed through the SplitContainer class which is a control that divides your display area into adjustable parts.

Data and Data Binding classes.  You can also use Windows Forms to create the interfaces for binding to data sources such as databases, XML and flat files. The DataGridView is a sophisticated data control that allows for custom tables displaying information with specific  cell, row, column, and border properties. Also, the BindingNavigator and BindingSource controls allow you to develop interfaces  that navigate and work with data on a form in a standard way.

Helpful classes. It is possible to use a number of other helpful classes within the Windows Forms namespace that aid in the display of application related information in your application. Certain classes, provide Windows standard ways of displaying a ToolTip or an error (ErrorProvider).  And the Help and HelpProvider classes are useful for displaying relevant Help information to a user of your applications.

Traditional Dialog Boxes. The final category of Windows Forms classes that we’d like to discuss are common dialog boxes. Dialog boxes give your application a consistent look and feel for common and repetitive functionality such as opening or saving a file, manipulating text properties such as font, size or color, printing or any of a number of other common processes within your application. For example, the OpenFileDialog and SaveFileDialog classes display dialog boxes for opening and saving files by users. The FontDialog class provides a user dialog box set Font properties used in a particular aspect of your application. The PageSetupDialogPrintPreviewDialog, and PrintDialog classes display well-known and easily understood functionality in a standardized way as well. In addition to the common dialog boxes, a MessageBox class is also available to create a simple box to display and retrieve data from the user.

Conclusion. In addition to all the standard classes within the System.Windows.Formsnamespace, there are of course a number of very interesting third party controls libraries that are worth exploring when you’re looking for that “something extra” or special pizzazz in your user interface. The trick is finding the right balance between uniPaaS, standard .NET and third-party controls within your application. That’s all for this trip to the library.  

Thursday, September 8, 2011

The Benefits of Metadata Driven Development

Eyal Pfeifel, Magic Software’s Chief Technology Officer, recently sat down to discuss metadata driven development. In the video, he provides a useful definition of metadata driven development: “Metadata driven development means developers build business applications using metadata and not using code. Metadata is a high level definition of business objects like forms, dialogs, validations and other things that are part of a business process that build a business application.”

Eyal Pfeifel contrasts metadata driven development with traditional coding or manual programming. “Unlike code which is tied to a specific platform or operating system, metadata is a high level definition and theoretically can run on any platform or operating system. Given that you have the appropriate runtime engine, you can build an application built using metadata on any kind of a device, server or client,” says Pfeifel.  
As Chief Technology Officer for Magic Software, Pfeifel certainly knows what he is talking about when it comes to traditional programming languages. Magic Software uses these more difficult third-generation languages (3GL’s) to create the metadata driven platform that is integral to Magic Software’s higher level and more intuitive application platforms. For this reason, he is keen to recognize the benefits of the metadata paradigm over traditional programming. “One of the main benefits of working with a metadata driven development paradigm is that since metadata objects are high level business objects it is possible to build a complete business application in a much shorter time than it would take when using code.  And the same business logic that you can construct one time very easily is relevant for multiple platform and operating systems like desktops, servers and even mobile devices.”
As Magic Software introduces its impressively expanding capabilities as a mobile enterprise application platform provider, Pfeifel has found himself commenting a lot recently on one of his favorite subjects: mobile application development.  “Using a metadata driven platform it is very easy to extend an enterprise application that originally started on a desktop or on a server into mobile devices because once you have the runtime engine running on a mobile device, it can theoretically run any type of application that you built on a desktop,” Says Pfeifel.  “And you can extend your business processes into a mobile device without needing to rewrite the application from scratch and with minimal adjustments just to cater for the smaller screen size or different form factor of the mobile device.”
Magic Software has a strong reputation for providing expertise that can future-proof your application development investments. As one can see by sitting down with Eyal Pfeifel, Magic Software's future-proof expertise is based on extensive customer feedback, strong R&D investment and the mindset to continually think ahead. To learn more about the Magic application platform, visit

Wednesday, September 7, 2011

Welcome to the Magic Application Platform Blog

Welcome to the New Magic Application Platform blog. 
Today, June 11, 2012, Magic launched a rebranding that reflects changes in the company and major developments in its product offering. Magic has experienced significant organic and inorganic growth in the size of its business. New customers and new business units are creating a new Magic that is becoming a formidable force in the IT industry. At the same time, Magic's core application and integration platforms are becoming smarter, more open and more future-proof than ever before. 
As trends like enterprise mobility, integrated IT services, Big Data and cloud computing become key to business strategy at all levels, the Magic application platform and the Magic integration platform have entered center stage as business solutions based on advanced technology. 
What was once called uniPaaS, is now the Magic xpa Application Platform. The emphasis is on the word "Magic." For years Magic's customers have referred to both the company and the application platform as "Magic." This makes sense. It fits the new identity of the company as it enters its fourth decade. The Magic of uniPaaS blog will remain available on the former site but all new Magic programming and IT articles will appear here. Followers of the Magic xpi Integration Platform can continue to find new articles and educational material on the Integrate My JDE blog which covers all aspects of the Magic integration platform.
It is refreshing to see Magic embrace a new identity that returns it to its roots. The company is offering this statement of its brand position: Magic accelerates business performance with smarter, future-proof technology and close customer collaboration. This echoes themes that you've seen in my blogs for several months now.  
As always, I welcome your input and comments on the Magic Application Platform.
Disclaimer: Magic (R) is a registered trademark of Magic Software Enterprises, Ltd. All references to Magic(R),  Magic(R) xpa Application Platform, Magic xpi Integration Platform, Magic University, and other marks both existing now and those that may exist in the future are hereby acknowledged and recognized by reference. All articles appearing on this site are the personal opinion of the author(s) and do not officially represent Magic Software Enterprises, Ltd. or any of its subsidiaries, affiliates or business partners.