+-+-+ +-+ +-+-+-+-+
|G|O| |4| |H|I|V|E|
+-+-+ +-+ +-+-+-+-+

 --- A GOPHER-LIKE INTERFACE FOR HIVE BLOCKCHAIN ---

Introducing Steemit Viewer for Android [EN|PL]

BY: @lpmusicon | CREATED: Jan. 30, 2018, 10:12 p.m. | VOTES: 7 | PAYOUT: $0.50 | [ VOTE ]

Steemit Viewer

Introduction

Due to poor performance of eSteem app I decided to look at it's source code to maybe help find some improvements. Little did I know it uses almost ancient Angular 1.x and Ionic 1.x codebase that gives no upgrade path without complete rewrite. I started thinking how could I create something that would work better than current eSteem and ultimately found a solution that could resolve one of the problems.

Solution

I decided to go with NativeScript as it's using native components to render the app and gives you the flexibility of Angular TypeScript in the backend so you don't have to hassle with cumbersome Java and Kotlin. Currently the app is very basic as I couldn't use Steemit JS API due to limitations of built-in V8 engine without DOM support.

I backtracked and looked at every possible request I needed to make to deliver all the data. I'm using HttpClient with JSONRPC request just like Steemit (not sure if that's allowed though, let me know if I broke something!). App launches and works blazing fast even without cache (which I'm planning to implement really soon as reloading images is quite network heavy).

Current features:

Planned features (for next big release):

Future:

App is available via GitHub releases because I don't have Google's App Developer Account. You can find current release here as well as source code. I don't collect any of your data within the app. You can check within the source code. Feedback is greatly appreciated as I can't test everything alone. At least not in Android world.

App is theoretically cross-platform but I don't have a mac to build it on OSX.

App Screenshots:

[IMAGE: https://res.cloudinary.com/hpiynhbhq/image/upload/v1517349465/magdk9gcbxljhvrblaqs.png]
[IMAGE: https://res.cloudinary.com/hpiynhbhq/image/upload/v1517349481/jnvy7udrzhgn4aevwpas.png]
[IMAGE: https://res.cloudinary.com/hpiynhbhq/image/upload/v1517349509/bxfycoeh8wlwhmm9kdzh.png]

[PL]

Wprowadzenie

Ze względu na słabą wydajność aplikacji eSteem zdecydowałem zajrzeć do jej kodu źródłowego z nadzieją na najmniejszą pomoc w działaniu aplikacji. Szybko się jednak okazało, że aplikacja działa na wręcz antycznym Angularze 1.x i platformi Ionix 1.x, która jest swoistym web wrapperem. Takie rozwiązanie nie jest zbyt przyszłościowe, więc szybko odpuściłem sobie szukanie usprawnień do starego wolnego frameworka. Myślałem jak mógłbym dorzucić swoje 3 grosze do tego community i chyba znalazłem rozwiązanie.

Rozwiązanie

Zdecydowałem się na stworzenie aplikacji w NativeScript, gdyż korzysta z natywnych komponentów środowiska i w połączeniu z nowym Angularem pozwala stworzyć szybką aplikacje, która może się rozwijać. Omijam w ten sposób wszystkie problemy związane z natrętną Javą i Kotlinem. Aplikacja obecnie nie pozwala na zbyt wiele, gdyż ostatnie dwa dni trudziłem się z rozgryzieniem jak mogę wykorzystać API Steemita, ale ograniczenia silnika JS bez DOM nie pozwoliły na jakiekolwiek wykorzystanie oficjalnych bibliotek.

Z odrobiną kreatywności znalazłem interesujące mnie zapytania do API i w oparciu o HttpClient zbudowałem swojego clienta, który wykorzystuje takie same zapytania jak Steemit (nie wiem na ile regulamin pozwala na takie wykorzystywanie API, mam nadzieję, że nie złamałem regulaminu :]). Aplikacja obecnie działa dużo szybciej niż eSteem nawet bez wykorzystywania cache (dodam cache na urządzeniu jak tylko znajdę czas)

Obecne funkcjonalności:

Planowane na następny release:

Przyszłość:

Aplikacja jest dostępna za pomocą GitHub releases, gdyż nie posiadam konta developerskiego Google. Najnowszą wersję aplikacji można znaleźć tutaj jak i kod źródłowy. Nie zbieram żadnych danych podczas pracy aplikacji. Sugeruję sprawdzić w kodzie jeśli ktoś mi nie wierzy. Zależy mi na waszym Feedbacku, bo nie sposób sprawdzić jak aplikacja działa na wszystkich urządzeniach.

Aplikacja jest teoretycznie kompatybilna z iOS'a ale nie posiadam komputera z jabłkiem, aby ją udostępnić.

Screenshoty:

[IMAGE: https://res.cloudinary.com/hpiynhbhq/image/upload/v1517349465/magdk9gcbxljhvrblaqs.png]
[IMAGE: https://res.cloudinary.com/hpiynhbhq/image/upload/v1517349481/jnvy7udrzhgn4aevwpas.png]
[IMAGE: https://res.cloudinary.com/hpiynhbhq/image/upload/v1517349509/bxfycoeh8wlwhmm9kdzh.png]

TAGS: [ #steemit ] [ #android ] [ #busy ] [ #ios ] [ #polish ]

Replies

@indy8phish | Jan. 31, 2018, 12:13 a.m. | Votes: 1 | [ VOTE ]

Haha thanks for using my post for showcasing purposes! :)
And thank you for working on improving the mobile app experience! Let me know if you need help with testing or anything else.

@lpmusicon | Jan. 31, 2018, 12:18 a.m. | Votes: 0 | [ VOTE ]

No problem! Haha, I had to show someone's post and your looked decent. Feel free to download the app and give me some feedback/suggestions/bug reports either via utopian.io or directly on GitHub

@iamthegray | Jan. 31, 2018, 3:03 a.m. | Votes: 0 | [ VOTE ]

Wow
This is actually great
Good work (although I'm not going to beta-test it just yet)

@lpmusicon | Jan. 31, 2018, 11:53 a.m. | Votes: 0 | [ VOTE ]

Thanks! Working hard to add more functionality to make it more usable

@emjoe | Jan. 31, 2018, 5:15 a.m. | Votes: 0 | [ VOTE ]

This looks great.

[ BACK TO TRENDING ] [ BACK TO MENU ]
CMD>