Thank you all for using bSteem so far! There have been lots of feedback by our users the past few months, and a lot of them have been taken into consideration. The main issue was performance. We uses expo
to quickly deploy release and staging versions of the app. More information on expo here - http://expo.io/.
The Short Version
We decided to destroy some bugs with our almighty wrath and force bSteem to workout everyday so it can be faster and stronger than before.
The Long Version
There were lots of updates and refactoring that had to happen for bSteem, UI wise - it looks similar just a bit more cleaned up. Since we are short on time due to the next focus being designing/architecting Busy V3, we had to get this stable release out. So the main focus for bSteem was performance.
React Native Performance Implementations
- Update all imported packages, we were using
react-navigation
and the version we used was fairly old. So updating that saw a drastic improvement in the reaction time between screen transitions - Improving performance on screens with large lists
- For this we replaced a lot of ListView components to FlatList components and the main part the drastically improved the speed, was adding the
getItemLayout
prop to the FlatList.getItemLayout
is a prop that takes in a function which tells the exact dimensions of the items in FlatList component. - this article gave a good explanation of it - https://medium.com/@jsoendermann/sectionlist-and-getitemlayout-2293b0b916fb
- For this we replaced a lot of ListView components to FlatList components and the main part the drastically improved the speed, was adding the
- Removing console.log’s from production builds with the babel plugin -
babel-plugin-transform-remove-console
- Adding unbundling and inline-requires, essentially there were components that were loading components on the screen that were not being used. Good description here - https://facebook.github.io/react-native/docs/performance.html#unbundling-inline-requires
- Removing console.log’s from production builds with the babel plugin -
- Splitting big components up into small components, and creating more PureComponents and Components with the shouldComponentUpdate function
- This was one of the biggest changes, that really helped with performance. I had noticed that going from a feed to a single post actually re-rendered the entire feed before navigating to the post. This was because of
react-navigation
, thenavigation
prop that was being passed to different components in the post previews on the feed, would be different so it would cause all the post previews on the feed to be re-rendered, when going to any screen whether it be the user, votes, comments screen, etc.. Since then the post preview component and a long with other big components have been split up into many different pure components or components with shouldComponentUpdate function.- TLDR: Refactored a lot of things, use PureComponents and always try to implement a shouldComponentUpdate if necessary
- This was one of the biggest changes, that really helped with performance. I had noticed that going from a feed to a single post actually re-rendered the entire feed before navigating to the post. This was because of
Conclusion
Thank you guys again for using bSteem and providing feedback via the #bsteem channel on discord
We are hard at work on planning out Busy V3 & updating bSteem along with it, to give you a preview see this post from a year ago. https://steemit.com/busy/@fyrstikken/til-what-busy-org-is-working-on-and-why-it-will-blow-our-steeming-minds
Known Issues
- Android performance on low-end devices are still a problem and hopefully we are able to do something about this in the future.
Download bSteem here
IOS: https://itunes.apple.com/us/app/bsteem/id1354894604
Android: https://play.google.com/store/apps/details?id=com.bsteem.bsteemapp
See it to believe it 😎 … check out our latest post featuring Jimmy Ho sporting Asura Apparel!
WARNINGCONFIRMED SCAM!
DO NOT FOLLOW any instruction and DO NOT CLICK on any link in the comment! - The message you received from @amitibikram is a
For more information about this scam, read this post:
https://steemit.com/steemit/@arcange/phishing-site-reported-steem-link-premium
If you find my work to protect you and the community valuable, please consider to upvote this warning or to vote for my witness.
How to use it can you help
Posted using Partiko Android
nice information~ thx :)
valuable information
Your post was mentioned in the Steemit Hit Parade in the following category:Congratulations @jm90mm!
Thanks for the good information. I will visit you often.
nice up vote :)
Congratulations @jm90mm! You have received a personal award!
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard:
Congratulations @jm90mm! You have received a personal award!
Click on the badge to view your Board of Honor.
Do not miss the last post from @steemitboard:
Congratulations @jm90mm! You received a personal award!
Click here to view your Board of Honor
Do not miss the last post from @steemitboard:
Congratulations @jm90mm! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!