Document directory
- Billing for Applications
- Develop games
- Use the positioning function
- Use a camera
- Sensor usage
- Access the File System
- Offline user
Note: The author of this article is Brian Fling, the best-selling Mobile Web book, And this article is an example of his book Mobile Design And Development.
Mobile Web is ubiquitous
Mobile web is currently the only platform that supports access from various devices. Like desktop web, mobile web supports various standard protocols. Mobile web is the only platform for developers to publish mobile applications. It effectively connects various mobile interactions with desktop tasks.
The mobile web platform has the following advantages: easy to learn, low development cost, standardization, easy to use, and easy to publish. I sum up these advantages to the principle of "ubiquitous": often something that is simple to develop and has a broad market can be successful. "High Quality" is also one of the key factors for success, and mobile web has not done well over the years.
Mobile web still has some difficulties in many aspects. Solving the diversity of devices is a major challenge to increase the quality of mobile web. However, the difficulties faced by mobile web are far less complex than those faced by native apps. In addition, these challenges will be effectively solved over the past few years.
As we all know, I am a supporter of mobile web; however, I am also the first person to acknowledge the importance of native apps. Developing native apps can make full use of the features of devices, which is often impossible for web browsers. Therefore, native apps are the best choice for a product. The following sections will discuss some main functions of native apps.
When should I develop a Native App to charge for the App?
There is no rule in any place that developers are not allowed to charge a usage fee for a mobile web app, but for some reason, people often think that they are not allowed or should not be charged for a web app. Due to historical reasons, the pay-as-you-go service on mobile devices has suffered two major obstacles:
Payment Method
Entering a credit card number on a mobile device is quite troublesome and there is no security guarantee on many older devices. A typical method is that if you need to pay for your application, you can reach an agreement with the carrier to allow the operator to charge for your service on its behalf. This also means that you need to cooperate with multiple carriers. This is usually the preferred method, because many mobile phone users may not have a credit card at all, such as teenagers.
Another method is to save your credit card information on a secure website. You can log on to the website to purchase the application service. This process is not ideal, because it means users cannot buy services directly from their mobile devices.
Forced split
The mobile operator will make a commission. Apps Are released through carriers or mobile devices. They provide a charging mechanism for applications. These operators and mobile devices will extract part of the revenue and then hand over the rest to application developers, which also means that developers must abide by their market rules.
It is usually very difficult to adapt to the operator's market rules and requires a large amount of human resources. In comparison, the market rules for mobile devices are much simpler, but there are also many difficulties. Applications and Services that impede the interests of operators and mobile device developers will be blocked.
In the past, websites that do not rely on operators and mobile device developers could not escape the fate of being shut down if their incomes were too conspicuous. However, such things have rarely happened recently. If you want to charge for your native app, you must accept this reality-you must abide by the market rules of others and give up some benefits.
Develop games
If you want to develop a mobile game (mobile games are the largest in the mobile market), you need to develop a native app. Games occupy a large amount of resources and require many device APIs or platform APIs. Although several games fully developed using web technologies have a certain market share, it is still insignificant compared with the native app market. Game users have high requirements on the visual and operational effects of applications. Although mobile web provides some simulation experience, it is far from satisfying users' needs.
When developing mobile games, you need to carefully consider which platforms your applications need to support. Fortunately, there are many tools that can help you push your game to multiple platforms, but it still takes a lot of manpower and material resources to complete the work.
Use the positioning function
The next function is the positioning function. You can use GPS or signal detection to determine your current location information. In the past, only the APIs of the native app can be used to view the user's location information. However, most mainstream mobile browsers have embedded the W3C Geolocation API. WebKit-installed devices such as iPhone and Android, or devices configured with Opera or Mozilla browsers, can obtain user location information. I believe that the positioning function will bring many new applications to Web technology.
If a web browser can be used properly, web developers can use user location information and other content to develop more interesting applications. Although this is not technically difficult, it is restricted by privacy protection regulations. We use web browsers as the portal for users to enter the World Wide Web. Adding the location function means that some sensitive information is introduced to the website, which may cause serious consequences. However, the location information displayed in the Location Awareness application must be authorized by the user. Of course, the user has the right to prohibit the application from publishing its own location information.
Use a camera
Cameras provide a wide range of possibilities for your applications. In the past, mobile MMS (Multimedia Messaging Service) was used to process mobile photos. In other words, after you take a photo, you need to use MMS to send it to a server. The server will process the photo and notify you of the result. This process is very time-consuming and complex, with no reliability assurance.
By accessing the camera, native app developers can simplify the photo taking process. Users can directly process the photos on the client. They can upload the photos to the server only when necessary, and transmit them over reliable HTTP. W3C is developing an API to access the camera, but it has not yet formally integrated this work into the browser.
In many types of mobile apps, cameras are very useful, such as the Fast Video application and short video shooting application. Cameras can be used to capture many important moments. In the near future, we will see that-as long as a camera captures a certain logo, the application can automatically complete the language conversion on the logo-this technology has become popular in Japan.
Sensor usage
Now more and more mobile devices have added sensor functions, which can perceive the physical speed and gravity of the device and transmit the sensing data to the device. This device is often used to determine whether the image is flipped. The application automatically adjusts the image direction based on the received information.
Sensors can be used to improve the user's sense of realism when interacting with devices. Most mobile devices are handheld, and applications can adjust the content screen according to the device's direction, such as flip the screen or detect physical movements, and can guess the user's Environment accordingly. For example, if a user is walking, the sensor can detect a gentle movement or speed. In this case, a user interface with a large font can be provided, this makes it easier for users to see the content on the screen.
However, developers cannot rely too much on sensors because sensors cannot tell which interactions are intended and which are meaningless. Each Mobile interaction must pass the transmission test ". When designing your interaction, you must consider your scenario in a crowded car or train. Consider whether your app can correctly handle users' mobile device shaking operations when a user is in a crowded subway or driving a car. Generally, most developers do not consider these factors. Make sure to design an alternative solution for each task to handle mobile interactions in special scenarios.
Access the File System
If your application needs to save data locally, You need to develop an native app. For example, you want to save your address book, phone number, or email information, or save data obtained from other devices. Accessing a file system often involves security and user privacy protection issues. Malicious applications may modify or delete data on your mobile devices.
A virus-carrying application can spread the virus to many other mobile phones using the network relationships on mobile devices. This often happens before mobile app authentication is used.
On the other hand, mobile devices are becoming more and more private. Mobile devices store a large number of users' personal information, as well as their friends and business information. Developing applications for these private information is a good idea. However, there are also some risks. Using data stored on mobile devices can provide users with more targeted services.
Developers must remember that only authorized users can access users' private data. We can see that many applications use a large amount of user private data without being authorized by users, and are mistaken for junk information or phishing applications, even if these applications are originally providing some very useful services. Your misunderstanding of your application will affect your service promotion. If the operator receives too many complaints about your application, your service may be terminated, it may even be related to other applications.
When accessing a file system, it is critical that you do not access the private data of any user without being authorized by the user. This is often ignored by most applications. W3C is developing standard APIs for mobile developers, but this work has not yet been completed.
Offline user
The last reason for native app development is that the user may be offline or cannot access the mobile network. This may rarely happen in cities. Even in rural areas, network coverage has gradually become widespread. However, transient network connection interruptions often occur. Your application should consider how to deal with this situation.
Think about when and where users usually use your app. If it is a mobile game, users are likely to use this app on the plane. Tracking map applications are often used in remote areas with poor network coverage. Mobile travel guides are often accessed in a foreign network and often need to pay for roaming and international network fees. At this time, it is best for applications to provide offline services for users, so that users can still enjoy the same services without accessing the network.
Currently, browsers that support HTML5 can also achieve offline access, but it may not be obvious to users. As more and more browsers start to support offline access, applications need to explicitly tell users that they can still access mobile web apps when network connections are interrupted.
Native apps often assume that the network connection is reliable. Apps generally only consider scenarios with good network conditions. They generally think that the network is closed and the network speed is fast enough. It is not uncommon for a mobile device to suddenly enter a poor network environment from a good network environment. Native apps should be tested in the worst network condition. For example, when starting a task, the user may still have full signal coverage, but the task may have completely no network signal at the end of the task. When installing native apps, users do not consider online or offline access-They expect native apps to work normally under any circumstances. This is also the responsibility of developers.
When should I develop a Web App?
As long as your application does not meet one of the aforementioned native app conditions, you do not need to develop a native app, but you should choose to develop a web app. As mentioned earlier in this article, I am a supporter of native apps. I think native apps have many outstanding characteristics and have great market potential, however, web apps is the only ever-lasting mobile content, services, and application development platform.
Native apps cannot provide better services for users. Instead, they increase project costs, reduce application release channels, and increase App upgrade complexity, this weakens developers' control over applications and profits, and may cause device troubles. Native apps can bring short-term benefits to developers, but this is risky and may even affect the sustainable development of the mobile market.
The advantages of mobile Web apps have been mentioned earlier. If the features mentioned in the previous section are the only reason for your choice of Native apps, will you still choose Native apps if you can block these obstacles on mobile browsers?
Palm's webOS has begun to solve some of the above problems. They built a full-mobile operating system based on WebKit, turning mobile phones into a web browser. The so-called "native apps" is actually a web apps. PhoneGap is also a similar project. This open-source project is used to help developers develop native apps on iPhone, Android, and BlackBerry devices, and can simulate features on devices (such as positioning and file systems) for web apps to call. These codes can be released and sold in the app store of each device, but the general code and design they use can be shared. Because a web
App. developers can develop a simplified version of the app for low-end mobile browsers. You can deploy it on multiple platforms only once.
For programmers with rich mobile development experience, when talking about "Developing a feature-rich application", they may first think of the native app. Although this idea still applies to many devices, mobile web apps also provides enough functional interfaces for developers to call. This allows web apps to be designed with rich interfaces like native apps, as well as migrated on various platforms without having to modify a line of code.
Nowadays, mobile web apps has entered an unprecedented climax in mobile device development. But more importantly, this is the first time in history. mobile device developers have decided to develop a standard for mobile web development, just like a standard for desktop web. In addition, devices that support innovative mobile web apps or mobile devices that support third-party browsers are welcomed by consumers. So I asked myself, "why do I need to develop a web app ?", It is better to directly ask yourself, "Why don't I develop a web app ?".
Original article: When to Make a Mobile Web Application
Translated from WebAppTrend, @ WebAppTrend (Sina Weibo) is an independent technology blog that focuses on the foresight and practice of Web apps and the Development of smart browsers for mobile phones, you are welcome to pay attention to CSDN while paying attention to us.
Http://www.webapptrend.com/WebAppTrend is an independent technology blog, focus on the Web App prospects and practices, and the development of smart browsers, please pay attention to our Sina Weibo @ WebAppTrend while paying attention to CSDN, welcome to our QQ group: 193775364