Jump to content

Yaroslav Brovin

  • Content Count

  • Joined

  • Last visited

  • Days Won


Yaroslav Brovin last won the day on April 14 2022

Yaroslav Brovin had the most liked content!

Community Reputation

21 Excellent

1 Follower

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Yaroslav Brovin

    How to set FMX TWebBrowser UserDataFolder?

    Hello, Just use FMX.WebBrowser.Win.TGlobalEdgeBrowserSettings.UserDataFolder. It's global settings for all instances of Edge browsers in FMX applications. Be sure, you do it before showing forms. /// <summary>Global settings, which is applied for creating Edge browser instances.</summary> TGlobalEdgeBrowserSettings = class private class var FBrowserExecutableFolder: string; class var FUserDataFolder: string; public /// <summary> /// If set this specifies the location of msedgewebview2.exe, used with WebView2 Fixed Version Distribution mode: /// https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#fixed-version-distribution-mode /// If not set this defaults to looking for an installed version of the WebView2 runtime or alternatively an /// installation of Edge Canary. /// Note that setting this property affects the next creation of the underlying WebView2 control. If this /// component has already created a WebView2 control then setting this property will have no effect unless the /// WebView2 control gets recreated (e.g. by ReinitializeWebView or ReinitializeWebViewWithNewBrowser). /// If the path contains \Edge\Application\ then the WebView2 creation will fail. /// </summary> class property BrowserExecutableFolder: string read FBrowserExecutableFolder write FBrowserExecutableFolder; /// <summary> /// If set this specifies the location of the user data folder. /// If not set this defaults to the folder {your_exe_name}.WebView2 in the same folder as the executable. /// If folder creation permission is not available to the process where the user data folder needs to be created /// then the creation of the underlying WebView2 control can fail. /// The application will need to take responsibility for cleaning up the user data folder when it is no longer /// required. /// Note that setting this property affects the next creation of the underlying WebView2 control. If this /// component has already created a WebView2 control then setting this property will have no effect unless the /// WebView2 control gets recreated (e.g. by ReinitializeWebView or ReinitializeWebViewWithNewBrowser). /// </summary> class property UserDataFolder: string read FUserDataFolder write FUserDataFolder; end;
  2. Yaroslav Brovin

    FGX Native - crossplatform mobile native development

    Hello guys, I'm glad to share with you information about FGX Native presentation on big conference Italian Delphi Days 2022. Don't miss, It will be interesting speech about new features, which we added since previous Italian Delphi Days presentation. FGX: the Evolution of native mobile applications Italian time: 16:30 - 18:00 We also had webinar about creating prototype of mobile application based on UI ready design with FGX Native. As an example, we took an application that allows you to develop useful habits. Habbit Builder.mp4
  3. Yaroslav Brovin

    FGX Native - crossplatform mobile native development

    Hello, The new application - The personal account of the client of the Internet provider. It provides information about Internet plans, Online-TV services and etc. Allow to pay from application and add new subscriptions and services. Telecom group (compressed).mp4
  4. Yaroslav Brovin

    FGX Native - crossplatform mobile native development

    One client just developed mobile application for railway company. This is a reference book with documentation and animation. railway.mp4
  5. Yaroslav Brovin

    FGX Native - crossplatform mobile native development

    Hello, Core FGX Native allows it. But nature of Desktop and Mobile applications are different. So I don't really want to mix all Desktop and mobile specific API together. There are great VCL for this purpose. I plan only add supporting simulator for mobile applications for Windows. It will allow to run FGX Native app as windows application for debugging purpose.
  6. Yaroslav Brovin

    FGX Native - crossplatform mobile native development

    Hello, A few thoughts about FMX integration: FMX uses style concept, so it has to load all visual components on startup. Otherwise, your style will not be deserialized. This means that any FMX units will result in the full addition of FMX. FGX Native has a fully written backend from scratch and module architecture. This means that if you don't use something, it won't even be linked. Therefore, only the components and classes involved get into the executable file. FMX Backend is built on integration with NativeActivity and GPU. And for using native components (FGX Native is about native components) it's a bad bunch, which pulls all the problems. Therefore, the decision not to use FMX was fundamental and key. Not because FMX is bad, it's just that the nature of the products is different. Therefore, yes, on the one hand, the lack of integration with FMX may seem like a problem. But independence from FMX, just in the end, gives more opportunities for performance, the ability to build a UI and the potential to expand and support third-party solutions. It's enough just to look at ready-made applications or watch demo projects to understand what is at stake. This week I updated Trial version to, so it now corresponds to the latest version of the library in principle. So you can check everything again on 11.0 About supporting external libraries Specifically, so that users do not feel deprived of the functionality that exists, including in Kastri. We are adding our own implementations of the most popular services: payments, popular identication services, scanners, barcode generators, fast camera and etc. We are gradually adding the requested functionality from release to release. Adding any external non visual library to FGX Native support is not particularly difficult. Because it has similar Android API to FMX Activity. There are more advanced types of notifications about the main events in the Activity. In addition, despite the fact that I have developed my bridge to use the Android API, this does not prohibit the use of a regular bridge from RTL. Therefore, the question of adding FGX Native support is not really a problem. Also, some clients asked for help, for example, to port some libraries from FMX to FGX Native, concerning work with NFC, barcode generator, etc. and it was also done. P.S. If you want to add library support to Kastri, we can consider it and I can support you in this job 😉
  7. Yaroslav Brovin

    New section for native apps

  8. Good afternoon, dear Delphi developers! I would like to share with you information about our FGX Native product for Delphi, which can be an excellent working tool for you to create cross-platform mobile applications. P.S. I will be happy to answer any of your questions. What is it? FGX Native is a framework developed from scratch, completely independent of FMX/VCL, allowing you to create native mobile cross-platform applications for Android/iOS and using native components provided by operating systems. Key Features: Smooth animation. All visual components have smooth animation. Native view. The components look familiar to the user of the mobile OS(Android и iOS). Support of Right-To-Left languages. Modern approaches in development. Links: Official site: https://fgx-native.com/en/ Customers applications: link For whom? Currently, the world of mobile development is experiencing rapid development. Many services and desktop applications are duplicated in one form or another on mobile devices, and this is not surprising, because according to statistics, about 59% of people in the world own smartphones. This is a huge market that is constantly growing. Unfortunately, mobile development is quite different from desktop development in terms of building a UI. Therefore, in FGX Native, we focused exclusively on the specifics inherent in mobile operating systems and deliberately abandoned support for desktop systems. Our product can be useful both for Delphi developers who just want to enter the world of mobile development, and for those who have ready-made projects created using FMX and are faced with certain limitations of the FMX framework. At the moment, we already have several completed successful translations of projects from FMX to FGX. We are expanding our cooperation with educational institutions and already supply free licenses for computer classes for teaching mobile development with FGX Native. Features FGX Native is built entirely from scratch using only RTL. The delivery includes a rather impressive number of ready-made components for solving problems of different plans. Form Designer The form designer is the cornerstone for convenient visual and really fast mobile app development. The convenience of the designer and the set of visual components depends on how quickly you will be able to add new functionality, make quick visual edits or just check out an idea. Therefore, we have developed our own unique form designer for FGX Native. It offers a large number of features that will definitely accelerate the development of the interface of your future application and make it visual and enjoyable. FlexBox Alignment System The world of mobile devices is characterized by great variability in screen sizes. It is often necessary to use different placement of elements on screens for different orientations and sizes of screens. The classic Delphi alignment system was created in an era when mobile development did not exist in principle, so it is not particularly suitable for these purposes. In FGX Native, we abandoned the classical system in favor of the modern FlexBox, which has already become the de facto standard in various programming languages and layout. As a result, we can make complex, adaptive markup options directly in the designer and, as a rule, without a single line of code. Below are the options for marking up the login and password entry form. As you can see, in portrait and landscape orientations, the form elements are arranged differently. And all this is done by means of the FGX Native designer without a single line of code! List Lists are one of the key components in mobile development. They replace the usual approach with grids, trees, etc. The elements of the list have truly amazing possibilities for customizing the appearance through the use of different styles, which in turn are configured directly in the designer in a way familiar to everyone. It is worth mentioning that the library is supplied with a set of preset styles according to the Material Design concept (https://material.io/components/lists ) which can be selected with one click. Lists support multi-column display mode, dragging and dropping items, and much more. But the most important advantage is that lists maintain smooth operation with thousands and even hundreds of thousands of elements with complex markup due to their internal architecture. Containers A separate part is container components, which are designed to group components and display them in a special way. Among such components, sliding panels for menus. Sliding pages from the bottom, grouping components with scrolling and much more. Camera and barcode scanner One of the applied areas of mobile application development is warehouse accounting. And here you can not do without a barcode scanner. We have already developed it for you. And all you need is to connect the scanner component to the camera. Barcode generator What if you want to generate your barcode. There is nothing easier, the TfgBarcode component allows you to generate a barcode of a popular format. Identification (Facebook, Google Sign In, VK Login, Apple ID) When your customers are working with the application, you may want to simplify the registration and authorization process for them. This will avoid filling out long user registration forms and improve the UX of your application. For this purpose, it is usually suggested to use third-party identification services, such as Facebook Login, Google Sign In, Apple Id and others. In the latest releases of FGX Native, we have added components that allow you to do this. Advertisement If you plan to earn money on your application by placing ads, then we have Google AdMob support for you (Android, iOS will be later). At the same time, you can embed banners with ads in your application or make a full-screen ad. Animation Almost any modern mobile application uses animation to one degree or another to improve the UX. FGX Native offers an API for performing native animation of components. In addition, we have developed ready-made animation templates that you can call with one line of code. And if you want to make complex vector animations, then we have an Airbnb Lottie for you with animation support from Adobe After Effect. Lottie-Demo-Sample.mp4.666bf68c84eed5fb76042e54a385ab9a.mp4 Google Pay and Apple Pay FGX Native supports two payment systems Google Play (Android) and Apple Pay (iOS, at the testing stage). Therefore, if you want to pay for an order in an online store directly in the app, you can also do it. Push-notification Push notifications are used to send client notifications from your server. These are the messages that appear in the notification center of your device. We support two types of push services FireBase (Android) and Apple Push Services (iOS). They are implemented on the basis of RTL System.PushNotification base. However, for our users, we provide a separate component that greatly facilitates the work with push notifications on the side of the mobile application. Digital signature Imagine that you have developed an application for the delivery of goods for couriers. They deliver the goods to the customer and they need to get confirmation from the customer that the order has been delivered. We have developed a component for entering a digital signature. Just let the customer leave a signature on the courier's phone screen. Localization Almost any international application primarily supports more than one interface language. Therefore, the application should be able to translate its interface on the fly in a good way. For these purposes, we supply an extension for the library in the form of a UI localization component. Taking photo And what if you need to take a photo or get a photo from the user's gallery? To do this, we have a special API for getting photos, both in a file and in TfgBitmap from camera or system gallery. Map If mapping services are important to you, then the TfgMap component is included in the library, which allows you to display system maps with the ability to add markers, polylines, lines and etc. Also, for Android, you can even specify your own style for displaying the map. Assets Special attention is paid to optimizing the use of different types of resources: Images, Fonts, Files, Lottie animation and etc. We abandoned the idea of storing resources in dfm and developed our own solution for centralized storage of resources. You can easily add any files, without having to know where the file is physically located and without having to suffer with the Deployment manager. In the same place, you can immediately color the uploaded images and apply the 9-patch effect. Material Design Icons How often have you encountered the need to search for icons for your application? In order not to spend a lot of time searching for suitable standard icons in your application, you can add them from Google Material Icons pack directly from Delphi in a couple of clicks. Image caching One of my favorite features is optimization the use of images in memory. Imagine that you have a regular news application with an endless list of news with a preview image displayed. The mobile device is limited by the size of the available RAM, so it will not be possible to load all the images into memory. The application will simply crash due to lack of memory. To avoid this, the developer usually needs to come up with his own system for uploading/uploading images when it is really needed. In FGX Native, we have already provided for this, and if the image is not used, it will be unloaded from memory automatically and reloaded only when it is really needed. Asynchronous image loading Separately, it is worth noting the task of displaying an image posted on the Internet. A typical way is to place images on the Internet, and dynamically upload them in the application in runtime. With just two lines of code, you can queue an image upload by URL from the network, without thinking about how to output it to the component when it is uploaded. TfgAssetManager.Current.AddBitmapFromUrlAsync('MyImage', 'http://data.fgx-native.com/images/photo-demo.jpg'); fgImage1.ImageName := 'MyImage'; Video Player We also provide video component for playing video from file or from stream. Web Browser If you would like to display web content, you can use WebBrowser component with supporting Basic-Auth, Javascript and SSL error handling. Popup In some cases, you may need to display contextual content. In this case, the Popup implementation is useful. Graphic components A set of primitive components is included in the delivery: rectangle, line, ellipse, circle, SVG Path and etc. They can also be used to build an interface. Canvas For those who do not have enough standard components, you can manually draw graphs or create your own image in the TfgBitmap buffer. Gestures The library supports standard types of gestures (Tap, Double tap, Long tap and Zoom). Standard components Of course, do not forget about the other standard components: buttons, text input fields, date pickers, checkboxes, indicators and much more. Additional tools We also supply a set of auxiliary tools that will be useful in mobile development. Android Log viewer When you are developing Android application, it's quite often, when you need to look at the system log for examination possible issues. Android API Delphi headers generator If you would like to use third-party Java libraries, we have our own tool for generating header files for Java. It is worth noting separately that we have developed our own Android-Delphi bridge, which is more convenient to use than in RTL and offers a number of additional features.
  9. Yaroslav Brovin

    New section for native apps

    Flutter is interesting. Instant run, interesting language. BUT, we love Delphi for good and convenient working with DB, incredibly fast creating UI mock. And I'm sure the biggest part of developers in this forum has a lot of existing Delphi code, which is very interesting to run in mobile platforms. So I believe Flutter is not a magic bullet. I'll say the obvious thing, but each technologies has advantages and disadvantages for each project. So everybody select solution based on his own preferences.