A little about the author:
Adam Pedley (Microsoft MVP, Xamarin MVP, Xamarin Certified Developer)
Corporate or Business to Employee (B2E) mobile apps can be very different from their B2C counterparts. B2C applications are usually focused on a small number of screens for primary use, and additional screens are not used as often, where it is necessary to perform auxiliary functions.
B2E applications usually focus on functions for recording or accessing data for everyday work. Many of them replace handwritten entries with digital ones that are automatically synchronized with the main database. The fact that these users are employees of large companies, and using the application as required by their work, leads to a number of differences with which you have to deal, not only in the code, but also in the processes surrounding it.
I assume that most of you have already heard about MVVM and Dependency Injection. I would recommend this for any Xamarin.Forms development, not just corporate. Using MVVM with Dependency Injection, will help you create a quality application on Xamarin.Forms. How to design the architecture of your application, if it has a very large code base - this is another story, but it will not be discussed in this article.
But, when we are dealing with corporate development, there are additional considerations that you need to perform.
If you use one API, then you control it, you are lucky. Unfortunately, this is not always the case in enterprise applications. You may have a small number of APIs that you do not control, and they can change throughout the life of your application, especially if you are dealing with poorly implemented APIs.
To counter this, I always create a service for my repositories at a general level. A repository class is simply code that connects to the API and transfers / retrieves data between them.
This protects your application from API changes and removes it as a dependency in unit testing.
Due to the large number of pages, multi-step forms and, possibly, access by roles, navigation can be complicated. Navigation options you may encounter:
These navigation options are quite complex and are not included in the standard delivery of common MVVM frameworks, with the exception of Exrin . This is one of the main reasons why Exrin was created.
Enterprise-class security systems are, in fact, no more secure than a standard security system, they are usually more complicated, and therefore the risk of incorrect implementation is increased. You can contact Citrix, Microsoft Online, or Azure Active Directory. If you are lucky, you will have a good OAuth API.
Security becomes more important when confidential data is stored, such as patient records. The rules that I use when working with confidential information:
The encryption key must be generated by the mobile application at run time and then safely stored, for example, in KeyChain or KeyStore.
Make sure you also follow industry standards, such as the OWASP Mobile Security Testing Guide .
B2C applications basically have the luxury of talking - “You must be connected to the Internet” when using the application. B2E applications do not always have this feature, for example, in mines or gaps of Wi-Fi zones in large buildings. This means that you will need some kind of offline storage. In this case, to avoid complications, it is best to always launch the application from the database using the synchronization service to ensure connection to the API.
DevOps establishes a set of processes for interaction between development and IT specialists. This is similar to Agile and Continuous Delivery, but adds additional coverage of management and IT services specialists, who are usually excluded from the work cycle. DevOps is not something you find in a small company, but you can find it at the enterprise level.
How is DevOps related to development on Xamarin.Forms? In fact, in any way, but there are things that can make your life easier.
Before discussing analytics, I would like to draw attention to its importance. Ensure that the expected results can be associated with a specific metric.
For example, if the goal was simple, save staff time. First, you need to establish a basic level that defines the business at the moment. If it takes about 2 minutes to fill out a paper form, and another 2 minutes for something to copy into the system and maybe another 2 minutes to fix any errors, on average it takes 6 minutes. Make sure that you measure the time it takes to fill out a form in a mobile application, and how often it is done. Then you will have the exact metric of the employee time saved. Further, a business can associate this with an internal assessment of how much an employee’s time will cost.
When you are a large company, you must already have an MDM- set to manage all the mobile devices of your employees. Unfortunately, these systems sometimes do not have an API that can connect to your automated build process. I recommend using HockeyApp or Mobile Center to provide testing and UAT capabilities, then manual deployment to MDM when you are ready to go into production.
Some of the main differences in enterprise applications that need to be considered are:
Source: https://habr.com/ru/post/330828/
All Articles