Android app current state

Phone: Redmi Note 3 Qualcomm MSM8956 Snapdragon 650 Hexa-core (4x1.4 GHz Cortex-A53 & 2x1.8 GHz Cortex-A72) 3 GB RAM

Build: StatusIm-190716-025900-90fbcf-nightly.apk

  1. logo -------------------------- 3s
  2. loader (weird screen) — 3s ! ?
  3. UI with loader ------------- 4s (UI unresponsive)
  4. UI with loader 2 ---------- 7s (UI unresponsive)
    ------------------------------------17s to interact
  5. Connection bar ----------- 2s
  6. Loading messages ------ 11s

2)this screen looks weird, we need to hide it maybe under logo

3)and 4) should be tested again when we’ll have a build with data on the go side

We have too many different loading indicators, design team wdyt?

4 Likes

logo 2s
autosignin 1s
screens 2s

5s to interact

6 Likes

Hell of an improvement! :slight_smile:

1 Like

Absolutely fantastic work Andrey, and thanks to you and everyone who is paving forward acceptable performance, it’s by far the best thing we focus on at the moment to retain users.

Do we need the logo/splash screen?
The sooner we can get the user to their message/wallet/dapp the better.

1 Like

Great work, @andrey! Could you please add links to PRs? I would like to see what exactly has been changed. Thanks.

thanks to all team! there are two major changes which affects performance, 1 - we removed realm, store and manage accounts in status-go, so sign in is faster, we store all other data such as chats and messages in status-go ,huge kudos to Eric, Dmitry and Andrea 2 - Hermes JS engine, improves React Native performance by decreasing memory utilization, reducing download size, and decreasing the time it takes for the app to become usable or “time to interactive” (TTI). huge kudos to Pedro

4 Likes

There is no PR yet, but I’m tracking the work to upgrade RN/Hermes here: Update react-native to 0.60.5 and use Hermes js engine · Issue #8672 · status-im/status-mobile · GitHub

One thing I did was to disable RAM bundles, as they are said to be incompatible with Hermes.

3 Likes

Among merged PRs there is quite a few already:

  • account persistence on status-go that includes a rewrites of the init and login which isn’t completely independent from realm. Some smaller PRs moved dapps permissions and browser
  • all the PRs from @cammellos that moved the communication protocol (including contacts, filters, chats and messages) to status-go
  • PRs from Andrey removing unused deps

And then Hermes which is the bringing the dramatic performance improvement on startup and runtime that were announced a few months ago

2 Likes

That means that cljs modules will be useless and we will not be able to speed up startup by dividing codebase into separate chunks. But if it is fast enough as is that might be not necessary.

1 Like

Are there any numbers how realm replacement affected startup separately form js engine? It is said that signing in become faster, but I’m not sure that there was a significant delay on realm side during this process. Anyway, are there separate measurements for different changes?

We simplified the sign-in flow, so now there is just one login method, we call it from status-react, and it starts node and returns account data, we had a complex flow before, we managed node from status-react, and managed accounts in realm, but we don’t have any measurements, because we did this not because of performance

2 Likes

Well yep, that’s a good point. The thing is that in both yours and @yenda’s messages it is the first thing mentioned as a reason of perf improvements, that’s why I’m asking. I understand how it could make UI smoother and probably a bit faster, but anyway it should be measured separately.
But all is good, thanks!

2 Likes