[Steemia] - More features and bugs fixed ๐Ÿ˜

3๋…„ ์ „

Note: This contribution involves two repositories but I will emphasize only one. The other one will be mentioned for references.



What is Steemia?

Steemia is a social network app running over the Steem Blockchain. This app will provide the users an enriched user experience plus features commonly encountered in a casually used social media. The goal of this project is to give the community a mobile app where they can do their daily activity in the blockchain.

Changes Made

Bugs Fixed

Preview feature was not working properly

As mentioned in this issue https://github.com/Steemia/Steemia/issues/86, the preview mode was not working when the creation post page was opened from the "What's on your mind?" button. This issue was caused by a desynchronization of the logic with the UI. In order to solve this, I had to force Angular to detect changes whenever the preview page was activated.



Clickable images in post details page

I saw this feature in this post: https://steemit.com/utopian-io/@rufans/ideas-for-steemia-app-make-tags-clickable-option-to-zoom-download-images-and-deposit-and-withdrawal-button-for-other-coins but sadly it was not accepted. However, accepted or not, I do take in mind each suggestion to make better Steemia app. So, I decided to create this feature.

In order to achieve this feature, I had to fork an old Ionic plugin and modify it to satisfy my criteria (having toolbar buttons such as social sharing):


Also, in the main project, I had to query all the images of the post to add an event listener for any click in the image. Since the data from the post is dynamic and unpredictable, I had no way of sending Angular-rendered code to the client side and re-render there due to security concerns. So, I ended up doing front-end manipulations:



Note: You can pinch in/out the image to make zoom or double tap it :D

Clickable tags

This feature was reported as a bug but I added it to the roadmap and decided to develop it. https://github.com/Steemia/Steemia/issues/78 Basically, when you tap a tag in any post, it will dismiss all the opened pages and will set this tag to the app to show content related to this tag.



Social share images

After making the images clickable, I decide to let the user share these images in social media. When you press the share button in the modal view, it will share the image itself instead of the URL.

Screen Shot 2018-06-16 at 5.24.40 AM.png

Misc Changes


Wrong color of icons in dark mode

In the post details page, icons were having the wrong color when the dark mode is activated. It was resolved by adding extra CSS rules to set the correct one.


Internal Changes

Add 3 retries for the activity endpoint

For the user's activity endpoint, I added 3 retries before rendering an empty response. The user will have three chances to get the data (it is useful for slow internet connections and/or intermittent internet).


Remove unused dependencies and duplicate one

Some dependencies were not in used making the app bigger without any reason. I have decided to remove them and also, I found a duplicated dependency: Moment.js. We were not using the pipe at all so I decided to better use the method from the utility provider and remove one of the dependency.


Global provider to set app language

Before, I was using a factory in the settings page to change the app language globally. However, while it was working as expected, it wasn't able to change the language of the drawer since it belongs to another factory. To solve this issue, I created a Subject (it is all about RxJs) which I can subscribe to and modify in any page. The root page of the app will listen for changes in this Subject and will update the language based on the value of the Subject. By doing this, I was able to remove the settings page factory and end up with only one factory in the root page of the app.


Handle menu translation directly at the component

Before, I was sending the translated string directly to the component. However, this translation is not reactive. When it is translated, that's it. It cannot be changed unless you send another instant translate. To solve this, I used the translate pipe directly at the component and I just send the key to translate from the root component to the drawer.


Code cleanup

As usual, I do some code cleanup to remove unused variables, dependencies, and/or functions.


Commits Summary


Feel free to contribute to Steemia project by forking our repo and sending us a Pull Request.

Download Steemia

Feel free to download Steemia on Google Play and soon on the App Store :D


Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order: ย trending
ย  ยท ย 3๋…„ ์ „

This is awesome โœŒ๏ธ
Can't wait for the update ๐Ÿ’ฏ

ย  ยท ย 3๋…„ ์ „

Congratulations! Your post has been selected as a daily Steemit truffle! It is listed on rank 6 of all contributions awarded today. You can find the TOP DAILY TRUFFLE PICKS HERE.

I upvoted your contribution because to my mind your post is at least 24 SBD worth and should receive 88 votes. It's now up to the lovely Steemit community to make this come true.

I am TrufflePig, an Artificial Intelligence Bot that helps minnows and content curators using Machine Learning. If you are curious how I select content, you can find an explanation here!

Have a nice day and sincerely yours,

ย  ยท ย 3๋…„ ์ „

Thanks for the contribution, @jaysermendez! Some pretty cool new features, and it's also nice to see you are implementing stuff that users have suggested!

One thing I was wondering - what does this do?

socialShare(): void {
    this.socialSharing.share('', '', this.rawUrl).then(() => {
        // Sharing via email is possible
    }).catch(() => {
        // Sharing via email is not possible

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.

Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.


Thanks :D this code opens up the following modal to select where you want to share the image :D

Screenshot_20180616-191930_Android System.jpg

ย  ยท ย 3๋…„ ์ „

I was so confused lol.

ย  ยท ย 3๋…„ ์ „

Thanks for implementing it .

ย  ยท ย 3๋…„ ์ „

Hey @jaysermendez
Thanks for contributing on Utopian.
Weโ€™re already looking forward to your next contribution!

Contributing on Utopian
Learn how to contribute on our website or by watching this tutorial on Youtube.

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!