Generator - Generate Native Apps

The purpose of the Evoke Native app generator is to encapsulate your Evoke Web App into a full Native app, with the ability to add native extensions and customisation. Evoke will create platform specific hard IDE content (Visual Studio and VS-Xamarin) in order to allow platform specific custom content to be added to the app(s), if required, as well as final deployment of the Native app.

Your native App(s) may then be built and deployed to the respective App Stores (for mobile devices) or locally on your own download server (if the App is only to be used on Desktop computers by users you wish to give a link to).

The complete Visual Studio and/or VS-Xamarin projects enable onward development in a native environment using all the power and versatility of Visual Studio (and VS-Xamarin) as required. In doing so, the developer is given the best of both worlds - quick and easy application construction along with unrestricted enhancement and customization capabilities.

Native Apps
Before generating a Native App, you will need to enter a number of settings that will control the code generated within Visual Studio.
  • Base web app - the Web App generator profile that will act as the basis of the Native App. The main aspect used here is the Visual Studio folder path used by the Web App

  • App title - the name of the App

  • App description - a simple description of the App

  • Root namespace - the namespace to be used by the C# code generated within the Native App Visual Studio project




As well as the above settings, there are also 4 URLs that can be entered for a Native App.
The basic concept here is that the Native App interacts with the web service part of the Web App in order to access the repository resident data. Therefore, the Native App needs to know the URL to be used to access this web service. To allow for the various phases of app development and also the possibility that different web servers (and hence different URLs) may be used for each phase, you are able to enter a separate URL for each phase (if required). You can skip the entry of a phase URL if you are not going to use a particular phase or if the phase is going to use the URL of the previous phase.
The following URLs may be entered and the example screen on the right shows a typical implementation:
  • Deployment URL (Dev)

  • Deployment URL (test)

  • Deployment URL (QA)

  • Deployment URL (live)


Platform Selection
The Platform Selection tab allows you to choose the different native App(s) that you want to select based on the different platforms available. The following options are available on the Platform Selection screen:
  • Generate Code - checkbox, selected against the different platform types, indicates that the Native App code for this platform type will be generated by Evoke as part of the next code generation. Each platform Type will have its own separate and dedicated Visual Studio Solution and project.

  • Target Folder Path - automatically generated by Evoke to ensure the folder names are unique and descriptive. It is possible to change these folder path names if you wish but these are the recommended names.

  • Open in Visual Studio - button, included for convenience. After a generation clicking this button will open the Native app solution for the platform type in Visual Studio.

  • Web UI Only - The Windows and Mac OS X desktop platforms have an additional setting of Web UI Only. This allows you to indicate whether only Web App UI content is to be used (i.e. no native Winform/WPF/Xamarin UI). Ticking this box will provide a small level of performance and resource usage improvement.

  • Clear Target Folder - Evoke preserves any customisation that you have added to your Native App Visual Studio each time you generate the App. However, there may be times that you wish to clear all customisation automatically and delete all previously generated files in the Solution when you generate the app.

    • androidpipeline4
    • Appbankingscreenshot
    • Appscreenshot1
    • Appscreenshot2
    • Appscreenshot4
    • Appscreenshot5
    • Graphcreenshot3200
    • Graphscreenshot1
    • graphscreenshot4200
    • pipeline2
    • TimesheetsAppscreenshot2
    • TimesheetsAppscreenshot4
    • TimesheetsAppscreenshot5
    • androidpipeline1


Generate Native App

Click the "Start Code Generation" button and Evoke will validate your Native App project, displaying both warnings and hard errors that it finds, and then generate an entire Visual Studio Solution for the selected Target Platforms (one per selected platform) that can be used to deploy your Native App.



Visual Studio
When generating your native app you have created two folders (a Platform specific Folder and a folder common to native apps called XamarinShared) on your local computer at the path entered in the "target folder path" for each target platform type generated. An example of the 'solution' and respective 'projects' for an Android app is shown on the right.

Although you can open Visual Studio and selection the open solution option to locate the *sln file in target folder path folder, the easiest way is to click the "open in Visual Studio" button on the line of the platform you wish to open and it will have automatically opened Visual Studio and your native Evoke App solution for that platform.




Native App Deployment Mode

Native Apps have a deployment mode defining the phase of the app e.g. Development, Live, etc. This is set, by default, to "development" when you generate the native app.

After testing is complete and you want to deploy your native app you will need to open, in your Visual Studio project the file AppGlobal.cs which you will find in the Xamarin Shared project - App Folder. An image of this file appears below and you can click on the image to make it full screen.
The change is simply:
public static DeploymentModeType DeploymentMode = DeploymentModeType.Development; // Change to use the relevant deployment URL
      to
public static DeploymentModeType DeploymentMode = DeploymentModeType.Live; // Change to use the relevant deployment URL