iOS (and Android) App Twister

Job ID: 33397751

Budget: $1,500 – $3,000 USD

Hi,
Would be interested in a cost proposal to create a client for Twister (see http://twister.net.co and https://github.com/miguelfreitas/twister-core ). This would be a cross-platform for iOS and Android. A lot of the Javascript code is complete (see https://github.com/Tschaul/twister-lib-js ) and here (see https://github.com/Tschaul/twister-react ).

Essentially the front end would look a lot like the Twitter, Gab, or similar app - not complicated. It would just tie into the backend of the Twister network. Source code would (obviously) be provided on completion.

A lot of the work is done in the libraries above, but it isn’t polished or complete. So I see two possible ways to do this:
1. One could either use the react native method in the one link (twister-react)
2. Or perhaps use Jasonette (https://medium.freecodecamp.org/how-to-turn-your-website-into-a-mobile-app-with-7-lines-of-json-631c9c9895f5 ) to build the app.

The main thing that really needs to be client side is the crypto so that keys never leave the device, it wouldn't hurt to have more there on the client side though.

Some (all?) of the screens would be:
1. Register
2. Update information (e.g. name, location etc). Display private key (update it?)
3. Trending hash tags
4. Suggestions on who to follow
5. New users
6. Timeline
7. Post
8. Direct message
9. Network info (e.g. blocks etc)
10. Show mentions
11. Group messages
12. Favorites - what you’ve favorited
13. Promoted Posts
14. Import Account (perhaps on the same screen as #1 - import username and private key)
15. Export private keys and username

Given a lot of the code is out there, it isn’t as large a project as it might otherwise be.

Thanks for the time.

Some more info for the items above:
1. tbd
2. For example:
Twister.getAccount("testtesttesttesttest1").updateProfileFields({location:"old location"},function(){
console.log("worked");
)

3. Some calls are easy, for example:
Twister = require("../src/Twister.js");
Twister.RPC("gettrendinghashtags", [10], function(result){
console.log(result);
}, function(error){
console.log(error);
});
4,5,6,7,8:

9. For network info, we’d just pull it from:
Twister.RPC("getinfo", [], function(result){
console.log(result);
}, function(error){
console.log(error);
});
return;


10,11,12:
13. To get promoted posts:
Twister = require("../src/Twister.js");
var count = 1;
Twister.getPromotedPosts().doLatestPostsUntil(function(post){
console.log(post.getUsername()+": "+post.getContent());
if(count++==20) { return false; }
});
Related categories: JavaScript Website Design iPhone React.js JSON