dvelop - genexus day...

39
1

Upload: others

Post on 16-Apr-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

1

Page 2: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

2

Page 3: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

3

Page 4: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

4

Page 5: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

5

Page 6: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

このイメージは、現在表示できません。

6

Page 7: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

The products are the following:

• WorkWithPlus: to increase productivity in web developments.• SmartDevicesPlus: to increase productivity in mobile developments.• AuditPlus: to add auditing capabilities at a database level.• BusinessIntelligencePlus: to add BI features in your applications.

7

Page 8: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

The focus of our products are the following:

• Automation‐Productivity:

In DVelop we share the philosophy of GeneXus of automatize everything that is automatable, and that is why we create products that enhance GeneXus.

This products automatize the software development when you use GeneXus so they help to simplify the process even more.

• Simplicity:

Simplicity for both developers and final users. The products are really easy to learn and the applications that you develop with them have many features that help final users to work easily.

• User Design:

Our tools help developers to create applications that achieve the great standards in terms of UI & UX that users are demanding nowadays. We´re always looking for accomplish new standards and tendencies in user experience and user interface.

8

Page 9: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

WorkWithPlus’s goal is to increase productivity in development of web applicationsusing GeneXus, in order to help you create better applications in less time, reducing thecosts of our projects.

9

Page 10: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

StartUp Wizard when you start a Project using WorkWithPlus you can select a theme for the application.

WorkWithPlus provides different designs, created by experts in design to accomplish the international standards in design and user experience. In this way, you don´t have to invest time and money to create a theme for your application.

By running the Startup Wizard you will be able to create your own theme according to the needs of your Project. The combinations are almost infinite! You can customize WorkWithPlus to adjust it to your need.

You can customize one of the themes created by our experts and of course, you have 100% flexibility to customize this themes and create your own theme.

10

Page 11: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

WorkWithPlus has an unique IDE that has a real time preview where you can see the changes made without having to build the application, this helps to save time during daily development.

All the objects generated by the pattern have a hierarchical declaration of the WebForm. 

So with this we have 100% of flexibility in displaying each control of my WebFormanywhere we want, by moving it within the instance’s tree and modifying its properties.  

11

Page 12: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

With this unique IDE, WorkWithPlus lets us to develop all the web panels of theapplication. The 100% of the web panels can be developed using WorkWithPlus so youcan save time and costs of the developments.

It doesn’t matter how complex the screen is, you can develop it with WorkWithPlus. In few minutes later on the demo, we’ll see an example to show you how to develop a wizard web panel.

12

Page 13: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

Besides providing the templates that help you to automatize tasks, WorkWithPlus provides a wide set of features that increases the power of the application and that you can use with zero cost, just by changing one property you have a powerful feature on your application ready to use.

13

Page 14: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

In this video we can see in a live application some examples of the features mentioned in the previous slide

14

Page 15: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

And we have a wide set of other functionalities that we won´t explain on detail now but you can find information about them on our Documentation Center

[go to doc.dvelopsoftware.com to show the Documentation Center]

15

Page 16: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

Now I will introduce SmartDevicesPlus

16

Page 17: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

So, when you start a Project using SmartDevicesPlus you can select a theme for the application.

SmartDevicesPlus provides different themes, created by experts in design to accomplish the international standards in design and user experience. In this way, you don´t have to invest time and money to create a theme for your application.

The themes have different characteristics: 

• Colors• Menu style• Login layout• Icons galleries• Home layout• Etc.

By running the Startup Wizard you will be able to create your own theme according to the needs of your Project. The combinations are almost infinite! You can customize SmartDevicesPlus to adjust it to your need.

You can customize one of the themes created by our experts and of course, you have 

17

Page 18: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

100% flexibility to customize this themes and create your own theme.

[go to GX, go to ToolsSmartDevicesPlusStartup Wizard and show the different themes with the different customizations you can achieve in each step]

17

Page 19: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

SmartDevicesPlus has an unique IDE where you can see the screen layout, this helps to save time during daily development.

The idea is not only to generate objects automatically, but also to give the flexibility required so that developers can decide how they want to generate them, where to put the controls within the forms, how the forms will look like, etc.

In order to do that, all the objects generated by the pattern have a hierarchical declaration of the screen. 

The hierarchical declaration also has some properties in order to simplify some tasks and add features to the screens. For example, define an attribute as required or add a condition in order to show/hide an element.

18

Page 20: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

The third important highlight is Amazing UX&UI.

We offer to all the GeneXus community the possibility to integrate withSmartDevicesPlus in your apps more than 100 User Controls built by an American Company called Infragistics. DVelop integrates their library Infragistics so you can easilyuse their controls in your apps.

19

Page 21: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

And this is the design that we can have by using SmartDevicesPlus.

20

Page 22: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

As a conclusion, let´s talk about the benefits that developers and final users have when using our suite

Productivity transforms into faster development and quicker time to market

Everybody designs and develops using the same features all along the KB.

Better UX & UI concludes in Happier customers/users

21

Page 23: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

22

Page 24: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

23

Page 25: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

As the application was targeted for all the company’s technicians, more than one platform had to be considered. Therefore, it was decided that the app needed to be developed for Web, iOS and Android, the most used platforms nowadays. 

This feature was not a problem, as in GeneXus building for more than one platform can be easily configured. As this images show, the tasks list together with a map showing the customers’ locations, could be developed for both platforms, with the code written only once. As with this functionality, every aspect of the app was successfully accomplished for iOS as well as for Android. 

24

Page 26: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

25

Page 27: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

The architecture of a smart device application consists basically of a "client application" which is installed on the device and a "server application“, implemented using REST web services which solve the business logic. Taking into consideration that it was sensible data which was being transferred, and that any HTTP client could access the REST services hosted in the application server, action needed to be taken so that web services were only accessible from the devices. GAM was the perfect choice for fixing security vulnerabilities, as it implements a security mechanism based on Oauth, which allows only authenticated and authorized users to access the resources exposed as REST services in the application server.

After the user performs the login on the smart device, the device sends a token to the OAUTH server stored in the same server where GAM is located.The user name and password entered are validated to then return an access token. Following its admission, the entry point of the application is opened, and the access token is validated for every REST web service request. This occurs permanently throughout the whole session.

However, authenticating in the GAM repository was not enough in this case. 

26

Page 28: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

Users needed to be authenticated against the company’s active directory. 

26

Page 29: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

Given the fact that the application was designed mostly to be used in scenarios of limited or no internet connection, like in the street or at the customer location, it was a necessity to make the application run offline. This feature allows applications to execute database transactions even if the device has no connectivity. 

This is done by creating a local database, doing all the processing on the device. All the offline panels are fed from this local database, with no web services needed to bring data to those panels. 

However, there should be a connection between the offline app and the server in order to pass data from one to the other. This synchronization can be manual, whenever it’s needed throughout the app’s execution, or automatic after elapsed time if configured in the offline database object, as shown in the image. 

GeneXus takes care of it all: it identifies the tables used by the app to create the device database script, and generates the synchronization programs needed to send and receive data. 

27

Page 30: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

One important feature of the application was that it had to be intuitive and user friendly, as the technician needs to use it fast, being able to find the information in the screen as fast as possible while performing the reading or collecting a payment at the clients’.

However, this couldn’t take us much time as there were other challenges ahead which needed our attention. And we also didn’t count with a designer to perform this for us. 

The problem was that when creating an app, by default it looks like the first set of pictures. It may perform what’s required, but certainly it’s not easy to read and not that user‐friendly. To make it look nicer either you find a designer, or style it yourself which takes some time to do. 

With SmartDevicesPlus, this was not a problem any more for us. What SD+ tries to do, is not that we start with our default black and white apps, but that first thing we do is choose which look and feel we would like to use. After choosing, it updates all the themes for us, so that we are able to create apps like the ones in the second set of pictures. 

28

Page 31: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

After choosing the look and feel, what we would like to do is to develop our application based on templates, and not just creating empty panels dragging all the attributes one by one to it. We would like to choose how our menu, or login panel, or lists would look like after we apply some template. This is what SD+ provides.

For every panel in which details had to be displayed (like customer, payments, devices or work orders details), we selected the display template which best suited each case, selected which structured data type we would use to load it, and it was ready. After loading the data to the SDT and running the application, it looked like the images in step 3.  

29

Page 32: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

In this application, there are two scenarios where the device camera can be used in order to enter information more easily, without the user requiring typing.

One of them, is to scan the QR codes that some of the install products count with. When recognizing the code, the application looks for readings available for the technician and automatically navigates to the screen where the reading is captured. 

The other scenario is for shipment tasks, where users usually have a bill of lading when delivering a part order. With the camera, the bar code in the bill of lading can be scanned, so that when it’s recognized the app takes the user to the screen where the order is marked as delivered. 

The scanning was implemented using the scanner API that GeneXus provides. In the tasks list there’s an option in the menu which opens the scanner and when the API reads the code, the app determines whether it’s from a reading or a shipment assigned to the user, or if it’s just an invalid code. 

30

Page 33: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

One functional requirement with high priority was to be able to capture signatures in the device as customers’ agreement. For its implementation, a limitation was encountered in GeneXus. 

However, GeneXus gives the possibility to integrate user controls so as to extend functionality, but it has to be built in native code for both platforms. So for capturing the signature a user control was built, using some native libraries which capture the user’s finger stroke on the screen and transform it into an image. For iOS it was developed in Objective‐C using Xcode, and for Android in Java with Eclipse.   

An example of signature capture can be seen in this images. When a service tasks is completed, before it’s closed the technician has to type the client’s name and email, and request the client’s signature. Afterwards, when the scheduled task that syncs with the CRM is executed, an email is sent to the address added in the app with a report including the signature as an attachment. 

31

Page 34: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

Continuing with the functional requirements, being able to take photos at certain points of the flow was also one of them. 

For example, when collecting a payment and registering the information, if the option to pay with a check is selected, the application automatically opens the camera to be able to capture an image of such check. 

32

Page 35: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

As explained before, the application needs to be synced with the company’s CRM, which is done with a scheduled task. This leads to the scenario where a technician submits a parts order for example, but doesn’t necessarily mean that it is already in Salesforce to be shipped. For this reason, it was a requirement for the app to receive push notifications when certain events happen in the backend, for instance when a part order is synced to the CRM.   

Push notifications are configured in the main object of the knowledge base, setting which procedure is to be used to register devices in the server. Also a certificate with notifications enabled has to be set for iOS, and a key obtained in google’s developer console for Android. 

For notifications to be sent, GeneXus API can be used, which is as simple as creating a notification object and calling the send method of the API.  

33

Page 36: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

Going back to smart device plus, other interesting feature is that it tries to provide the developer with user interface elements that really stand out. To accomplish this, it uses Infragistics user controls. Infragistics is a company known for developing user controls for different platforms. So SD+ developed GeneXus user controls using Infragistics’ libraries for iOS and Android, called NucliOS and Infragistics Android Controls. 

In Rsafe, a chart was needed to show which users had closed more service tasks in the last month. For this purpose, a SD+ template was used. Inside the charts category, many templates can be selected using different kind of charts. We chose the one we thought the most appropriate, selected the structured data type, and we had the chart. 

34

Page 37: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

35

Page 38: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

36

Page 39: DVelop - GeneXus Day 2018internal.genexus.jp/downloads/GXDay2018/Presentation/4.DVelop_GXDay2018.pdfIn DVelop we share the philosophy of GeneXus of automatize everything that is

37