Choosing the right profile: offline, online or native

I want to make API calls to an Azure backend to figure out what assets to work on, and then I want to work offline on a tablet on those assets.   Should I:   Choose the hybrid app offline profile and forget about the API calls on the mobile? Make the API calls on the laptop through the Responsive profile, mark the assets for offline availability, then synchronize the offline app to get those assets?  Choose the hybrid app online profile, make the API calls in microflows and do the rest of the assets work in nanoflows. Would the latter part of the app still work without internet? Choose the native profile. How would it work in there? Can I use REST calls in microflows AND nanoflows for offline?    Thanks!
3 answers

Hi Frederic,

I guess there are a couple of ways to tackle this(you already described some), depending on what your functionality should be. My suggestion would be the following:

  1. Choose the hybrid app offline profile.
  2. The user starts the process with an sync action(nanoflow or trigger button)
  3. In this action you commit the main ‘offline object’ 
  4. This object has a before commit microflow that gets triggered with the sync action.
  5. In this beforce commit action you can do the API calls and link the needed objects to the main ‘offline object’
  6. Now you have the needed objects offline available for the use

Hope this helps!



Hi Maarten,

Thanks! We have chosen to follow this process:

1. We make the inital API calls in the responsive profile

2. We mark a particular set of objects as 'required ofline'

3. This copies the information to the 'offline objects'

4. The user logs in on the tablet and synchronizes to have access to these objects

5. When done, the user synchronizes again to make the updates available on the server

6. At this time, the set of objects is no longer available offline, to prevent conflicts

7. In the responsive profile, the user reviews the work and adds information

8. He then 'approves' the work, which triggers the API calls to update Azure

We know this can be done with the offline profile indeed. An open question still is whether we should choose the native profile instead. We have little experience with it.


After having had to deal with a lot of issues building a hybrid-offline app in 2018 and working around many limitations of the early versions of nanoflows, I would advise using the native profile. Simply because it has the most mature version of nanoflows and the state-of-the-art for handling offline issues.

Version 8 is now no longer beta and it has many improvements that you will probably take advantage of without even knowing it. For instance, Native profile gives you the advantage of better swiping, user notifications, offline first (as does hybrid offline). Also version 8 as Java 11 instead of Java 8.

I just looked at Mendix’ version release video and am looking forward to my next mobile project.