You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -382,10 +378,6 @@ You can set a fixed return type for your expression property with one of the sup
382
378
383
379
##### Return Type Assignable to an Attribute
384
380
385
-
{{% alert color="info" %}}
386
-
The `assignableTo` attribute was introduced in Mendix [9.20](/releasenotes/studio-pro/9.20/).
387
-
{{% /alert %}}
388
-
389
381
You can use `assignableTo` to specify that the return type of the expression property should depend on the attribute property with the given property path. This means that the value of the expression will be assignable to the attribute configured for that attribute property (using [`setValue`](/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis/#editable-value)).
390
382
391
383
The client component will receive a `DynamicValue<T>` where `T` depends on the possible types of the target attribute. If the attribute property allows for more than one type, the type of the actual value depends on the attribute that has been configured.
@@ -574,14 +566,6 @@ Then the Studio Pro UI for the property appears like this:
574
566
575
567
### Association {#association}
576
568
577
-
{{% alert color="info" %}}
578
-
This property type was introduced in Mendix [9.13](/releasenotes/studio-pro/9.13/).
579
-
{{% /alert %}}
580
-
581
-
{{% alert color="info" %}}
582
-
The ability to link association properties to a data source was introduced in Mendix [9.17](/releasenotes/studio-pro/9.17/).
583
-
{{% /alert %}}
584
-
585
569
The association property type allows a widget to work directly with both reading and writing associations between entities. Depending on the widget's purposes, a widget should define association types it supports.
586
570
587
571
If a `dataSource` attribute is not specified the client will receive a `ReferenceValue` for references (singular references), a `ReferenceSetValue` for reference sets (multiple references), or a union of them. For more information, see the [ModifiableValue](/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis/#modifiable-value) section of *Client APIs Available to Pluggable Widgets*.
@@ -710,10 +694,6 @@ Then the Studio Pro UI for the property appears like this:
710
694
711
695
The datasource property allows widgets to work with object lists. The client component will receive value prop of type [`ListValue`](/apidocs-mxsdk/apidocs/pluggable-widgets-client-apis-list-values/#listvalue) and may be used with [`action`](#action), [`attribute`](#attribute), [`association`](#association), [`expression`](#expression), [`text template`](#texttemplate), and [`widgets`](#widgets) properties. See [Data Sources](/refguide/data-sources/#list-widgets) for available data source types.
712
696
713
-
{{% alert color="info" %}}
714
-
The ability to link association properties to a data source was introduced in Mendix [9.17](/releasenotes/studio-pro/9.17/).
715
-
{{% /alert %}}
716
-
717
697
If no data source has been configured by the user, any properties that are linked to the datasource property are automatically omitted from the props passed to the client component (even if they are marked as required).
718
698
719
699
{{% alert color="warning" %}}
@@ -722,12 +702,29 @@ Only list datasources are supported, therefore specifying `isList="true"` is req
722
702
723
703
#### XML Attributes
724
704
725
-
| Attribute | Required | Attribute Type | Description |
|`required`| No | Boolean | This decides if the user is required to specify a datasource, `true` by default |
711
+
|`defaultType`| No | String | Default type for the property, supported values are `Database`, `Microflow`, `Nanoflow`, and `Association`|
712
+
|`defaultValue`| No | String | Default value for the property, see [Default Data Sources](#data-source-defaults)|
713
+
714
+
##### Data Source Defaults {#data-source-defaults}
715
+
716
+
{{% alert color="info" %}}
717
+
The `defaultType` and `defaultValue` attributes for datasources were introduced in Mendix [10.16](/releasenotes/studio-pro/10.16/).
718
+
{{% /alert %}}
719
+
720
+
You can use the `defaultType` and `defaultValue` attributes to configure default data sources for your widget. Unless overridden in Studio Pro, the widget will attempt to configure the data source according to its defaults. Both attributes need to be set for the defaults to be applied.
721
+
722
+
The format of `defaultValue` depends on the chosen `defaultType`:
Copy file name to clipboardExpand all lines: content/en/docs/refguide/java-programming/managed-dependencies.md
+14-1Lines changed: 14 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -195,10 +195,23 @@ If the above options don't work for you, please reach out to [Mendix Support](ht
195
195
196
196
## Marketplace Modules
197
197
198
-
Dependency information is included per module and included in Marketplace Modules. The actual artifacts (`.jar` files) are not part of the module. They are downloaded to the `vendorlib` folder automatically when synchronization is run when the module is imported.
198
+
Dependency information is included for each module and included in Marketplace Modules. Dependencies are downloaded to the `vendorlib` folder automatically when synchronization is run when the module is imported. Artifacts (`.jar` files) will also be included in the exported module packages. These are used if the module is imported in a Studio Pro which has [Gradle synchronization disabled](#disabling-synchronization).
199
199
200
200
If you have an issue with the managed dependencies of a Marketplace module, you can revert to an earlier version by removing the new version and downloading an earlier version from the Marketplace.
201
201
202
+
## Offline Usage {#disabling-synchronization}
203
+
204
+
{{% alert color="info" %}}
205
+
This feature was introduced in Mendix versions 10.16.0, 10.12.7, and 10.6.17.
206
+
{{% /alert %}}
207
+
208
+
In the Deployment tab of the Studio Pro preferences [Gradle synchronization](/refguide/preferences-dialog/#gradle-synchronization) can be disabled.
209
+
This means that applications can be started even if Studio Pro is offline or in an air gapped environment.
210
+
211
+
{{% alert color="info" %}}
212
+
This prevents managed dependencies being synchronized, potentially causing compile errors and version conflicts. In addition, you cannot generate SBOMs while Gradle synchronization is disabled. Mendix recommends that air gapped users configure a [custom repository](#custom-repos) instead of relying on disabling Gradle synchronization.
213
+
{{% /alert %}}
214
+
202
215
## Troubleshooting
203
216
204
217
There can be multiple reasons the dependencies cannot be resolved. See the following for some common failure causes with steps on how to fix the issue.
Copy file name to clipboardExpand all lines: content/en/docs/refguide/mobile/introduction-to-mobile-technologies/_index.md
+34-18Lines changed: 34 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,36 +8,52 @@ weight: 20
8
8
9
9
Mendix supports different technologies to build mobile applications. Besides responsive web apps, you can build native mobile apps or progress web apps. You can use pages, widgets, nanoflows, JavaScript actions, microflows, and many other familiar elements to build your app.
10
10
11
-
These different technologies (for example, responsive, native phone) can be configured in a single model using navigation profiles. Mobile profiles can be added and removed separately. If you add a profile, you must also provide a home page for it. For more information on navigation profiles, see [Navigation](/refguide/navigation/).
11
+
These different technologies (for example: responsive, native phone) can be configured in a single model using navigation profiles. Mobile profiles can be added and removed separately. If you add a profile, you must also provide a home page for it. For more information on navigation profiles, see [Navigation](/refguide/navigation/).
12
12
13
-
## Native Mobile Apps {#nativemobile}
13
+
## Progressive Web Apps {#pwa}
14
14
15
-
Studio Pro makes it is possible to build fully native mobile apps. Native mobile apps do not render inside a web view, but use native UI elements instead. This results in fast performance, smooth animations, natural interaction patterns (like swipe gestures), and improved access to all native device capabilities. To make such responsive native mobile apps, Mendix leverages the popular open-source framework [React Native](https://facebook.github.io/react-native/).
15
+
Progressive web apps (PWAs) are an evolution of traditional web apps. Overall, PWAs tend to behave more like native mobile apps. One key difference, however, is that PWAs are not distributed via app stores but can be accessed directly in the browser.
16
16
17
-
For more information, see [Native Mobile](/refguide/mobile/introduction-to-mobile-technologies/native-mobile/).
17
+
Progressive web apps have several advantages over regular web applications:
18
18
19
-
## Progressive Web Apps {#pwa}
19
+
* They can be installed by adding them to the home page on Android and iOS devices. This makes the app easily accessible for the user, provides more screen space to the app by hiding the browser controls, and stores the offline data separate from the browser making it more secure.
20
+
* They can be used offline. PWAs can be configured to pre-load all resources allowing them to start while the device is offline. They can also make use of offline data allowing full offline operation.
21
+
* They can make use of more native capabilities, such as push notifications.
22
+
* They can be deployed using mobile device management solutions.
20
23
21
-
Progressive web apps (PWAs) are an evolution of traditional web apps. Overall, PWAs tend to behave more like native mobile apps. One key difference, however, is that PWAs do not need to be distributed via an app store but can be accessed directly via the browser.
24
+
Publishing PWAs is the same as publishing regular web applications with Mendix. Once the application is deployed, users can simply access the PWA by opening the application URL. Considering PWA and web apps are equally easy to publish, we recommend you use PWAs to take advantage of their additional capabilities.
22
25
23
-
Progressive web apps have three main characteristics:
26
+
For more information, see [Progressive Web App](/refguide/mobile/introduction-to-mobile-technologies/progressive-web-app/).
24
27
25
-
***Installable** – PWAs let you add your app to your user’s home screen and start a full screen app. This makes PWAs feel more fully-capable native apps.
26
-
***Reliable** – Using service workers, PWAs can work offline or partially offline. Mendix PWAs can work partially offline (resources like styling, pages, and images are cached) or fully offline (like native mobile apps).
27
-
***Capable** – PWAs can leverage several device capabilities like the camera and location, and can offer support for web push notifications. Note that support for features depend on which browser is used.
28
+
## Native Mobile Apps {#nativemobile}
28
29
29
-
For more information, see [Progressive Web App](/refguide/mobile/introduction-to-mobile-technologies/progressive-web-app/).
30
+
Mendix allows you to build fully native mobile apps (based on [React Native](https://facebook.github.io/react-native/)). Native mobile apps have several advantages over web-based mobile apps but they require more effort to develop and publish:
31
+
32
+
* They leverage native UI elements instead of web components in a web view. This results in high performance, smooth animations and benefits from natural interactions (like swipe gestures) provided by the mobile operating system.
33
+
* They can make use of the native navigation stack and use the beautiful page transitions supplied by the mobile operating system.
34
+
* They deeply integrate with the mobile device and can use almost everything the mobile operating system offers, such as fast barcode scanning, immersive augmented reality, and advanced connectivity options such as Bluetooth and NFC.
35
+
* They can securely and efficiently store large amounts of data, including the ability to encrypt all data stored on the mobile device.
36
+
* They can be extended with custom native functionality, for example, to integrate with the hardware scanner or special Android devices.
37
+
* They are published and distributed via app stores.
38
+
39
+
Building native mobile apps is inherently more complex than building web-based apps. They are distributed via app stores, which requires additional steps for deploying and updating the mobile app. Further, they are always offline-first, which requires additional considerations when designing the domain model.
40
+
41
+
For more information, see [Native Mobile](/refguide/mobile/introduction-to-mobile-technologies/native-mobile/).
30
42
31
43
## Deciding Between a PWA or Native Mobile App
32
44
33
-
Mendix offers options to build both native mobile apps and PWAs. Depending on your app's requirements or constraints, one or the other can be a better fit. It is also possible to have both native mobile and PWA profiles in a single app, which can run next to each other and overlap significantly.
45
+
Mendix offers building native mobile apps and PWAs, enabling companies to choose the right technology for the right use case. Depending on your app's requirements or constraints, one or the other can be a better fit. It is also possible to have both native mobile and PWA profiles in a single app, running next to each other.
46
+
47
+
In general, Mendix recommends building a PWA for your mobile app project. PWAs are easier to build and deploy than native mobile apps, and in many cases, companies can achieve everything needed with them. However, there can be also good reasons to build a native mobile app instead of a PWA. Consult the following list to help decide between the two technologies:
48
+
49
+
1.**User Experience**: If providing the best possible user experience is key for your mobile app, for example when targeting consumers in a public app, then you should build a native mobile app. The native UI elements, page transitions, animations, and gestures of a native mobile app allow you to build superior experiences that are more polished and run smoother than web-based applications.
50
+
51
+
1.**App Store Publishing**: The Apple AppStore and Google Play Store serve as distribution platforms for millions of apps. If your app should also be published via these stores, you should build a native mobile app. Mendix PWAs cannot be published via these stores without additional steps and third-party solutions. Note that publishing your app via these stores can be complex while providing only limited benefit especially for apps that are primarily used internally.
34
52
35
-
{{% alert color="warning" %}}
36
-
PWAs have the following limitation:
53
+
1.**Deep Device Integrations**: PWAs can access a multitude of device capabilities via Web APIs, including the camera, GPS, and push notifications (see [Progressive Web App](/refguide/mobile/introduction-to-mobile-technologies/progressive-web-app/#accessing-device-features) for a comprehensive list). However, not everything is supported. If your app requires a capability that is not supported via Web APIs or needs to execute custom native code, you should build a native mobile app.
37
54
38
-
* Offline data is not supported for PWAs on iOS
39
-
{{% /alert %}}
55
+
1.**Offline Data**: PWAs also allow offline-first operation. However, the size of the database is limited and cannot be stored securely. If your app requires storing large amounts of data reliably or requires that offline data is encrypted, build a native mobile app.
40
56
41
-
Use the following diagram to decide whether to build a PWA, a native mobile app, or both:
57
+
1.**Developer Experience**: If most of your developers and designers are experienced in web technologies (and you have no developers familiar with building and publishing native mobile apps), you should build a PWA. Training your team to learn new native technologies while simultaneously developing apps can delay application production.
42
58
43
-
{{< figure src="/attachments/refguide/mobile/progressive-web-app/native-or-pwa.png" alt="Native app or PWA" width="350" class="no-border" >}}
59
+
If you decide to build a native mobile app after considering these requirements, please consult our documentation on [Building Efficient Mobile Apps](/refguide/mobile/building-efficient-mobile-apps/) and [Building, Testing, and Distributing Apps](/refguide/mobile/distributing-mobile-apps/).
Copy file name to clipboardExpand all lines: content/en/docs/refguide/mobile/introduction-to-mobile-technologies/progressive-web-app.md
+1-7Lines changed: 1 addition & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,12 +34,6 @@ As PWAs are basically web apps with additional features, Mendix offers these fea
34
34
PWAs require a version of Atlas 2 or above.
35
35
{{% /alert %}}
36
36
37
-
{{% alert color="warning" %}}
38
-
PWAs have the following limitation on iOS:
39
-
40
-
* Offline data is not supported for PWAs on iOS
41
-
{{% /alert %}}
42
-
43
37
To create a full offline-first PWA, choose and add one of the following profiles (depending on which form factor you need): Responsive Web Offline, Phone Web Offline, or Tablet Web Offline. For more information about offline-first apps, see the [Offline-First Guide](/refguide/offline-first/).
44
38
45
39
{{% alert color="info" %}}
@@ -108,7 +102,7 @@ For example, when a Phone Web Offline profile is configured and the app is opene
| Desktop browser | Responsive Web profile is loaded |
110
104
| Android - Chrome browser | Phone Web Offline profile is loaded |
111
-
| iOS - Any browser |If there is a Phone Web profile, this is loaded; otherwise, the Responsive Web profile is loaded. This is because offline PWAs are not (yet) supported on iOS.|
105
+
| iOS - Any browser |Phone Web Offline profile is loaded |
112
106
113
107
Next to that, it is possible to force a profile by providing the profile name in the URL as a query parameter: for example `http://localhost:8080/?profile=PhoneOffline`. Possible profile values are as follows:
0 commit comments