Hmmm, Adalo? so bad i feel about it

I’m not angry at all, my friend. I sincerely want to help you with your app.

Unfortunately, you still provide no information as to what is slow.

Yes, just like any button on any website/app. How many actions are you running on one button? Do the actions have conditions?

Again, please provide screen recordings of your problems so that we can understand what exactly is running slow.

Without knowing the actions, conditions, data, screens, and collection information, we can’t help.

To me, it’s like going to the doctor’s office when you’re sick and not telling the doctor any of your symptoms. The doctor cannot diagnose your problems and may give you the wrong prescription if you do not describe the problem well enough. You don’t want heart medication for a broken toe, now do you?

My mentoring sessions are $100 per hour. We can easily work on many things in just 1 hour.

2 Likes

Well if you insist on this meeting, I agree.
And if you help me solve the application speed issue within an hour or less than an hour.
I’ll pay you $500.
But if you can’t, you’ll pay $100, because I will just spent my time.

Let’s know that Adalo has a speed problem
Instead of speaking out in anger.

Let us admit that there is a problem so that we can solve it.

Just like that.

I’m confident that there are ways to speed up your app.

If you want help, continue the conversation with specific information about what is slowing down your app. The more detailed the information the better. That is the point of this forum and that is the point of my mentoring sessions.

This conversation is pointless if you are not here to get actual assistance. I understand your frustrations and we’re all here willing to help.

So please provide real information about the “slowness of your app” with a screen recording of the app being slow, the actions and conditions you have on the buttons, the visibility settings of components, lists settings and filters, the data on the screens, any external APIs you are using, and the functionality of your app.

Failure to provide the information will result in this thread getting locked.

youssef looks like a troll

1 Like

I look around and found this thread,

There are few others that help him, probably they can show what kind of problems and methods have been done.

My guess is this app about blockchain wallet and exchange which heavily rely on unstructured API results.

But unless the thread owner and those who help him show some light, this claim is still unknown.

You don’t need to guess, Adalo team needs to seriously think about a way to fix the problem of slow apps.

and about APIs if fix all my problems when i find Xano, they help me to change any APIs and add arrays to make it work with Adalo external collections API.

so, they just need to think about a way to fix the problem of slow Adalo apps after publishing in App Store and Google Play.

1 Like

This is a good info, keep them coming.

Hi @Toddy ,
I agree here in this case, I suggested Adalo once to make a cheaper plan (For a limited time to allow learning curve and ramp up time) while allowing to use External collections with limited API calls but with all the features, this would allow users to create apps with time and not stressing about the 50$/month. I always do have to put that cost on top to customers when making their apps.

Would be great first to understand for all which databases are the slows one and also the “Built structure” around it.

When using Airtable or XANO, I always try to optimize the app to the number of users. In some APIs, we don’t always need to call the full API, good practices are needed here to be implemented. And in the end we also always go on the way of “How many screens, how many conditions, how many elements” and so on.

1 Like

Hi there,

First of all, @YousefAbubaker it’s sorry to hear about your experience with Adalo. Putting myself into your shoes, I guess I would feel the same.

In my opinion, Adalo is a great instrument for building apps. But its simplicity could be misleading. When a new Maker sees how easy is it to create an app, there are a lot of things which are hidden behind the scenes; so a false assumption might appear that an app will scale linearly and will behave the same way with 300 users and 10000 users.

Unfortunately it is not that simple due to the way Adalo is built. Let’s take a simple example: imagine you have 10K records in some collection and you add the list to the screen to display this collection. The result will be that your previewer - browser will be unresponsive 1…2 minutes. Why - because by default a list loads all records; then an app tries to display them all, and that’s a tough and resource-consuming task.

In this particular case, the possible solutions could be (a) enable “lazy loading” on the list (setting to load items as list scrolls), or (b) add a filter to the list to limit the amount of data returned and displayed.
Side note: if you go do Javascript console, you can see the requests and responses there, and see the amount of data returned.
Another side note: once I’ve seen a collection of ~3K records, but its size was ~3MB. You can imagine that if you request all collection, it is already several seconds required only to get the data..

Another thing for internal collections: if you have a collection with large number of relationships and you try to get a data from these related collections, most probably this will work slower than a “plain” collection. Here I’d love to get some clarifications from Adalo developers how it works inside - to be able to architect the app accordingly.

As for the external APIs: their beauty is that you can do server-side filtering and pagination. This improves the speed greatly. Again, same principle is used here: don’t try to return a large amount of data and I have an example of 10K+ records in an external API - works like a charm.
Also, some external APIs support something like JOIN requests (getting the data from several tables in one query). If used correctly, this could save a lot of time and improve the speed greatly.
Example: I have Items and Categories tables stored externally. Instead of querying Category each time for each item in the list, I can create Items external collection in a way that it will return Category as well - using JOIN request.

One of the speed issues mentioned was related to the buttons needed to wait till the action finishes. This is a difficult topic. Imagine the button do not wait till the action finishes and proceeds with next actions immediately. And then imagine the action fails. What will happen with the data? Will it be consistent?
In large highload apps several methods are used, DB caching, in-app caching, etc.; but they are not easy to implement even in full-code.
I face this problem frequently while working with Integromat scenarios: scenario may take 10-20 seconds to complete and it is not a good practice to let user wait. In this case I try to structure the app flow and scenario in a “fire-and-forget” way: “lock” the record, scenario immediately returns 200 (explicitly or not), and then modifies all what’s needed to be modified. With the last step it “unlocks” the record for further use. This is one of possible optimizations.

Having said that, I’m not denying the speed and stability issues in Adalo. They definitely exist, and they must be addressed by Adalo team.
Also, in my opinion Adalo isn’t simply suitable for some kind of apps - don’t try to replicate WhatsApp on it, for example :slight_smile:
On a bright side - I’m working on this platform over 2 years, and can assure you that now it is much better then it was before, so the trend is positive :slight_smile:

Wrapping this up: some optimisations are required when building an app with lots of data. Some of them are mentioned above; some could be found in this forum, along with general speed advices as well (like reducing image size).
Adalo speed should be increased, but we have what we have, so let’s try to make lemonade :wink:

It might be a good idea to create something like a how-to about app optimizations. I guess this could be backed up by Adalo: @jessehaywood @pford @ben1 what do you think?

Best,
Victor.

9 Likes

With no information, there is absolutely nothing we can do. With no information, there is nothing that Adalo can do.

How do you expect Adalo to fix any performance-related issues if we don’t actually relay the problems?

It’s like this: If you have a toothache, you go to a dentist. You tell the dentist you have a toothache, but you’re not telling the dentist which tooth hurts!

@Victor , in this scenario, you’re tapping every single tooth in hope that you find a cavity where you’re providing “possible” solutions. So let’s agree that you’re just guessing.

Yes, we can all agree that there are issues, however, there are ways to fix some things and make some things faster/better.

What if the user just has a list of 100 images all at 5mb each?
What if the user has a list of 100+ records they’re trying to display?
What if the user has 20 components in a single list with a nested list of 6 more components that have visibility conditions?
What if the user is using an external database and not using pagination/record limiting?
What if the user has 10 actions firing on one button?
What if the user is trying to update an external record with custom actions plus other actions with conditional statements?

Again, with @YousefAbubaker not providing information, it’s impossible to tell what the problems actually are.

Let me make a small comment about the possible uses of Adalo. About 3 months ago I was looking for a tool to port my existing Objective-C and SWIFT apps to a platform that would make it possible to design a web app for both Android and IOS with the same interface, ideally without much programming have to. It was important for me to have fully integrated in-app purchase with subscription because that is my business model. Some no-code interfaces were eliminated immediately because they don’t offer this. I found an IAP component at Adalo right away, so it was good for me. I then started porting the first app and was almost done with it, so I started to integrate the IAP. And then came the rude awakening. As a programmer, I couldn’t imagine that if there exists an IAP component, it wouldn’t contain all the features of IAP. I then registered with the Adalo-IAP-Beat program, but unfortunately never received the component. Then tried the IAP component with IAPHUB integration. All unfortunately wasted time. It is definitely not possible to implement IAP cleanly with subscriptions. There is no check as to whether there is a valid subscription and the restore of an existing IAP is not possible cleanly and reliably either. Yes, if you take a closer look at Adalo, you realize that it doesn’t work properly. But I lost a lot of time and of course money. But more remains the frustration that while there is IAP, it shouldn’t be described as productive. But at best as a beta because not all functions are implemented.

1 Like

Can you fix this and take from him $100 ?
Hahah
Look. All time ! You’re Offline! Your apps will not save until you reconnect - #18 by artrefresh

Dear @YousefAbubaker,

May I please ask you to refrain from posting comments like this one.
It doesn’t bring any value to the conversation and looks provocative and not constructive.

Thank you for understanding.

Best,
Victor.

3 Likes

Hey @RonDeveloper

Have you had a chance to look into the API documentation for IAPHUB? Get subscription | IAPHUB

It may be possible to implement a way to check if the user has an active subscription with an API call. I have not personally used IAPHUB for this, but I have used Stripe in the same regard.

Both IAPHUB by Pragmaflow and the Stripe components are there to simply capture the payments and set up subscriptions, however, the API has more technical functionality that can be implemented. Perhaps someone with more experience with IAPHUB can chime in on it.

Basically, I’d need an active IAPHUB account to test if it’s possible.

2 Likes

Hi @RonDeveloper,

That’s unfortunate you haven’t received reply about IAP Beta subscriptions. I tested this beta one it in several apps - it works. Setup is not very straightforward, though as you’re a developer it shouldn’t be an issue for you. With this component you can check subscription validity, restore it & etc.
Let me check if there is a possibility to join.

As for IAPHUB - never had an experience with it so can’t help here.

Best,
Victor.

1 Like

Hi @RonDeveloper and everyone,

Follow-up: to get access to IAP Subscriptions Beta, please submit a support ticket here Submit a Support Ticket with this request. Tagging Ben Reynolds @ben1 as he can give more guidance on this.

Best,
Victor.

2 Likes

I did both a while ago submitted a support ticket and contacted Ben. Hopefully I can get access soon. And nice to hear that it’s implemented in the Adalo beta :smiley:

I’ve been in very close contact with the IAPHUB team, they will try to implement an interface to Adalo, but it may take some time.

1 Like