Future GUI and Its Application Research (1)-Basic Strategies

Source: Internet
Author: User

GUI development is never a simple task. It involves many complex relationships, especially when interacting with users.

A product often spends a lot of time on GUI development. For some enterprise-level applications, such as OA, there are a large number of GUI Design tools that provide enough

Standard controls, data binding, and data sources. The GUI is already very convenient for applications with low UI requirements and low user experience requirements.

In addition, with the strengthening of hardware and distributed development requirements, these should be preferred for the B/S architecture, and even the C/S architecture is very few.

However, in embedded and other application scenarios, considering the performance and speed requirements, WebOS is still mainly used for C/C ++ language development. Although WebOS devices are also used, most of them are high-end devices.

Even in the future, WebOS and its variants may become popular. However, after all, WebOS is not customized for local applications, and it is still difficult to design and develop the binding, design, and development of JS and local interfaces.

In addition, WebOS cannot solve the whole process of GUI product development.

From my experience in some custom GUI projects, developing a complete product is not only a GUI problem, but also involves many aspects.

Generally, we develop a GUI product in this way:

  1. Conduct requirement analysis and Product Design
  2. The architect designs the entire product. At the same time, the UI engineer designs the interface.
  3. The developer implements the interface based on the design of the UI engineer.
  4. Integrates the UI, data management, and other aspects to become a unified Product

This process looks simple and clear. But in reality, it is impossible to achieve it.

First, users' needs are often unclear. Especially in custom projects, many customers may be very good in other fields, but not in Ui and product development. At the beginning, they may not know what to do;

Secondly, the customer knows exactly what it looks like in a timely manner. during the development process, many other ideas will be generated based on the development results and progress;

Third, in many cases, in order to take down the list, UI engineers often leave the actual situation and design some interfaces that are difficult to implement or are very uncommon. As a result, developers will try their best to achieve them.

Fourth, due to the gap between design and implementation, when there is a gap between the Implementation Effect and the design effect, the customer will often make adjustments based on the actual display effect.

Fifth, the UI engineer's design is usually only applicable to one page scenario. Without some experience, it is often unable to predict various changes during the operation, and the results are often designed, when the running status changes, you need to make adjustments;

Sixth, a good UI should naturally be consistent in style, while UI engineers are often limited to partial UIS during design. The overall adjustment is only involved after the product is formed.

.....

There are many more. Some controls, especially in some industries, cannot meet the requirements and must be developed on site.

These problems have brought a lot of problems to the Development of GUI products. This results in a long development cycle and a low project success rate.

For a product, the UI is only part of it, not all. In particular, some outsourcing and custom projects, the UI is not the core technology of the customer. Many of the customer's core technologies often exist in the form of sdks, libraries, or services. To form a product and integrate with the UI, the framework structure must be defined at the UI level, then wrap the customer's core content.

However, if this framework is not very familiar with the customer's products, and has a good understanding of similar applications, and has rich experience and strong architecture capabilities, it is difficult to make a good product.

If a UI Library only provides some commonly used widgets, the cycle and risks of developing such a product can be imagined.

The popularity of iPhone and Android over the past few years shows that a large number of smooth and rich special effects have become essential functions of the UI. In addition, from time to time there will be some very dazzling results.

This requires a higher UI.

Looking at the current UI library, there are few libraries that can rival iPhone and Android in the embedded field and PC field.

Market demands have been triggered. In many fields, we all hope to have a good interface. These are almost standard configurations in consumer electronic devices.

If we analyze the success of Android and iPhone on the interface, we can easily find that,

First, the interface libraries for Android and iPhone are highly targeted. They all provide a set of frameworks for smartphones. This framework is very important. It solves the feasibility of the product, the basic appearance and user experience of the product, and the basic paradigm for developing an application. Developers can achieve this as long as they are more efficient than the hojuhuaxiao;

Second, they provide many basic functions, such as layout and special effects, which makes development easier.

Third, they provide good development tools to make development easier.

To achieve similar success in other fields and provide products that are easy to develop and maintain, I think we need to consider a new development model.

The new development mode should follow the actual development rules.

Generally, when developing a new product, if you can first see a prototype, you can define a lot of content.

1. First, quickly develop a prototype, which includes:

1) Build a basic framework of a product and use standard UI elements and Standard themes

2) use the prototype to discuss with the customer to clarify the interface process and product requirements.

The problem to be solved for this prototype is:

1) set the tone and determine the basic appearance and operation process of the product.

2) solve the architecture problem of the product and determine its basic skeleton to facilitate later addition.

3) serves as a platform for communication between the UI, customer, and development to balance the relationship between requirements, appearance, experience, feasibility, and performance and prevent disconnections.

These prototypes require that they can be run on the Development Board. At the beginning, we can estimate the actual performance of the product.

The ability to quickly run on the actual device, whether for customers or developers, is a great encouragement of confidence.

2. Secondly, based on the prototype, we will discuss and determine the appearance. These include:

1) The overall style can be established to maintain style consistency

2) discover improvements. If necessary, you can customize new controls and interface elements.

3. Third, developers can clearly integrate with the rest of the product to determine the overall product framework.

As you can see, there are several key points:

1. The best way to quickly create a prototype is to get a prototype from the implemented product and make a slight modification as a new product prototype.

For example, many products have similar structures and pages, such as the startup screen, main menu, and system settings. There are also some common applications, such as calendar, notepad, calculator, and album.

These structures and applications are so similar that the resolutions and icons of different devices are different.

If you can extract these as implementedGeneral prototypeWill undoubtedly bring great convenience to subsequent development.

2. There are always some applications specific to the customer.

On the basis of a general prototype, you can quickly create pages, add simple events, and simulate data to form a simple application.General prototypeMedium,

This prototype can be quickly implemented.

3. the interface always needs to be modified. If the interface, resources, and application logic can be separated, the modification of the interface will not cause too much interference to the logic code, you can quickly modify the appearance.

This kind of thing can be done together with the customer, with immediate modification, and immediate comments from the customer. When the customer is satisfied, the UI is basically complete.

4. while modifying and defining the interface, the architect can define the overall architecture of the product on the basis of the original structure, and then implement a part that has little to do with the interface logic, after the two parts are completed, the remaining work is mainly system integration.

If we have such a set of things, let's assume that the process of creating a list is as follows:

Let's make an MP4 file. (although the future of MP4 is very poor, we are familiar with it and it is easy to understand it ). A chip manufacturer provides an MP4 chip, hoping to play music and videos, and view e-books, browse pictures and other small functions.

After receiving the list, we first take out the general prototype, including the startup screen, main menu page, and some small programs. Then, we put the audio and video players (which is assumed to be a good prototype, but not in the general framework) into the general prototype. Since the interfaces of the general prototype are unified, these programs can be run without any changes.

Then, the prototype can be run and transplanted on the device provided by the customer, and the porting result can be presented to the customer and evaluated together with the customer.

Third, when the general direction is determined, you can evaluate the requirements and details of each application with the customer, and record them in turn as the development requirements.

Fourth, at the same time, the customer can put forward their own opinions on the UI and operations, so as to determine the overall style, and promptly arrange developers and UI engineers, implement these styles (because the interfaces are all definite, these tasks mainly involve changing images and resources)

Fifth, at the same time, our engineers communicated with customer engineers to determine the audio and video playback and other underlying access interfaces and methods, and to make some adaptation work with the underlying layer.

Sixth, after the integration work has been carried out to a certain extent, it can be done. The product is continuously integrated in an iterative manner and presented to the customer. Each iteration is closer to the customer's needs.

This method is consistent with agile development.

This prototype can effectively solve the product boundary problems. In product development, there will always be some transitional designs, including UI engineers and development engineers. Or you may be too confident in yourself, or you may not be able to judge your needs, or you may be under pressure to make some unrealistic commitments to get a list, or you may lack effective internal communication, everyone wants to make a good product, and forgets the constraints of reality. Only in the specific implementation can we find that everything is too late.

========================================================== ====================================

Based on the above analysis, if we want to make a product and win in the competition, we have the following requirements for our UI:

1. Flexible customization. These include:

1) the interface should be provided as a resource. You can change the interface by changing the resource.

2) automatic layout should be available to adapt to different resolutions and sizes.

3) it should be able to easily customize controls. It can be easily implemented when no controls are used.

4) friendly data interfaces, such as data sources and data binding, facilitate development.

5) There should be a unified interface, so that XML and other methods can be used as a way for resources to convert interfaces and related data into resources.

2. The framework is very important and needs to be provided gradually:

1) The application management framework allows you to conveniently add and remove applications.

2) A unified resource management framework allows different applications to share resources and maintain a consistent appearance

3) flexible communication mechanisms, direct communication between different modules, event-driven mechanisms, and coupling between interfaces, applications, and modules

3. accumulating necessary applications is still very important. Application Development is also not easy. A good application is similar to a small system. As more and more products are developed, they should be accumulated and unified as the source of the prototype of new products in the future. To achieve this, it is very important to maintain the stability of the framework and interfaces.

In the subsequent sections, we will conduct phased-out research.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.