Corporate Mobile Application Development

I am inclined to believe that developing mobile applications in a corporate environment is best suited for developing web applications on the intranet. However, I was asked to think about whether there are specific enterprise applications that can only be executed or will be more successful as native applications. I'm curious what the Qaru community is thinking.

Note. As an organization, we primarily use BlackBerry devices, but other platforms are curious.

+4
source share
5 answers

Several domains seem more suitable for native applications from above:

  • Applications with disabled datasets. Mobile applications may not always rely on an Internet connection. Native applications do an excellent job of this. This is especially true for data entry tools. If you get a call in the browser when entering data, the work may be lost if the page reloads after restarting Safari.
  • Applications that need a user to download media files, such as photos, videos and sound recordings. There is currently no way to download local iPhone media via MobileSafari. Native applications handle this case. Insurance and real estate can be good markets for this.
  • Advanced processing applications. . For example, if you want an inventory management application that can read barcodes using an iPhone camera, a native application can process image data much faster. Any augmented reality application will work best as a native application.
  • High memory applications. . When other applications start up, Safari still lights up in the background. If these applications require more memory, Safari will free up the RAM allocated for the contents of the tab page. This page then reloads when the user opens Safari. If your application requires a lot of RAM, then creating your own application gives you a higher priority than the rest of the web application.
  • You need to work in the background as a service. Starting with 4.0, you can create IT resource tracking services, GPS logging, corporate messaging (I think Microsoft Office Communicator for iPhone, etc.), regulatory compliance monitoring, order notifications, SIP / H.323 user endpoint for VoIP switch, etc.
  • Large datasets. I believe Safari limits SQLite databases to 50 megabytes. For a native application, the available space will be limited mainly by the available disk space.

Actually, just looking at the API. Any API not accessible through webapp would be a good place to start. I'm going down here with the 4.0 API, which is currently under the NDA. :)

However, SproutCore Touch provides a good web platform that is specific for touch interfaces.

+5
source

Although there may be some specific enterprise applications that are best suited for the native application, I cannot provide any concrete examples.

However, although I agree with you regarding the intranet, web applications are generally better, I think it all depends on who is better for. Obviously, intranet web applications are better for development, and better since they can be cross-playform, however I think that almost all applications are better suited for the end user. Do not agree? Take a look at the number of successful iPhone and Android apps that enter the market, which are only native portals for some site data. Users prefer how the native application works in a mobile browser.

Another thing that I would like to take into account is that the application already uses an intranet web application designed for desktop systems. If there is one, I would go to the native route of the application, since users on other mobile platforms can access the desktop version. However, if there is no universal portal, I would think about how to do this with my native.

+3
source

Both would be ideal.

There is something like a secure, relaxed interface that passes json or xml to a native mobile application. Compromising an interface would be easier to get started, easier to test, easier to prototype and easier to change. It would also make life easier when data needs to be synchronized, copied, cloned or when the phone is lost / broken / stolen / updated.

And then, when a native application, created in addition to the rest of the interface, also allows you to use the user interface environment. This may allow the application to work offline. He can use his own notification system without missing SMS / push-mail. And if some of the relevant data were mirrored offline, the application would become more flexible and much easier to use with other applications (where this happens using the functions of the App-functionality, I speak only for the Android SDK here and basically future version of the iPhone SDK, not Blackberry yet). The end result would probably be a cleaner and more enjoyable application for working with it, assuming that it could also be executed as a native application.

+1
source

I would recommend that a decision on whether to create a web application, your own client, or both, be made after understanding the problems you intend to solve and examining the needs of the end users of the application. It would be impossible to assume that you can answer a technological question without understanding the user's problems.

In Chapter 8, β€œAbout Face 2.0: The Basics of Interaction Design,” Alan Cooper talks about software poses. One of these poses is called Sovereign Posture. This pose is an application that is usually used in full screen mode and for long periods of time and represents the main application for this user. Visual Studio and Eclipse are good examples of sovereign developer apps. If the interface in question is a sovereign application for the user, this greatly favors the native client.

In a specific corporate example, the support service application is a sovereign application for technicians, but it is a temporary application for users. I would suggest that the ideal factoring of such an application would be a rich native application for desktop and mobile devices for technicians and a self-service web interface for users. For technicians, the benefits of a native application exceed the deployment costs, given that there are usually fewer technicians. In addition, a technical specialist can work on a network problem, and the autonomous reliable nature of his own client allows the technician to continue using the application, even if the network is not available.

If the user spends more than a few hours a day interacting with the application, then carefully consider the benefits of a well-designed native client. If there are several users, think about how each role uses the application, and perhaps you get a hybrid model. Your user interface strategy should always be based on the study of use cases in accordance with the gospel from any camp and should be focused on user experience, and not on the convenience of developers.

+1
source

The advantage of developing your own applications in the first place is to gain access to hardware functions that are not available through the web API, to get your own performance advantages (for example, in game actions), instant access to payment clients through platform storage (for example, iTunes) and security situations in which you do not trust the browser or how it is processed.

The end to developing native applications is that you lock onto a potentially proprietary code platform, write a bunch of device-specific code, and you are blocked by the provider. The code is harder to write, much harder to deploy, and you will have a chance to get a rug from under you. (Yes, I look at Apple, but it can happen with any proprietary platform.)

Web applications, unlike them, are based on technologies that are widely known and easy to manage - HTML5, CSS3, JavaScript, and great libraries such as JQTouch are available. Well-designed web applications for the most part do not bother you if you are on a Blackberry, Android or iPhone, and will work on many older and less capable models, as well as newer and devices that we don’t even have (or at least without the need for recompilation or refactoring), and there are some hardware features available, such as GPS via the geolocation API.

But, on the other hand, web applications may not work well with large data sets or high computational requirements. If you are creating a commercial application with financial transactions, you will most likely have to minimize your own payment system. And you must also trust browser security.

In general, most applications will make better sense as web applications. However, many web applications can function almost indistinguishable from client applications. With some stand-alone HTML5 repositories, CSS3 and JS features for transitions and behavior, many business applications can be indistinguishable from native clients.

In the iPhone case, we can take this further: adding the 57x57px icon apple-touch-icon.png to the root directory of your web applications will provide iPhones with a nice custom icon when users add the application to their home screens (iPhone will take care of rounded corners and glossy visual effect), and you can make the iPhone application in full screen mode by clicking on the icon of your home screen, adding. At the moment, the application has its own icon and works in full screen mode - the user does not know about this on the website.

And if you want to go to your native language, but don’t want to abandon web standards, most native APIs provide the ability to develop custom HTML / CSS / JS clients using a simple wrapper such as UIWebView in Objective-C. PhoneGap is an excellent cross-platform platform that allows you to deploy standards-based web development technologies on iPhone, Android and Blackberry.

0
source

Source: https://habr.com/ru/post/1307706/


All Articles