Author

Topic: New Android App - uses streaming data not polling for live prices. (Read 1469 times)

member
Activity: 106
Merit: 10
Apologies for anybody who saw the service stall last night - part of the server process ran out of resources but I've amended that bit now.
member
Activity: 106
Merit: 10
Nice one .

Fit it into a 1x1 square.

That disables the phone to do a screen fireworks display every
time BTC rises by $5.

And your on to something.

Keep up the good work. Smiley Smiley Smiley


It took me a few moments to parse what you were saying then. I might combine it with cloud push as well (so the app doesn't have to be running) but I'll see how popular it is first.

I'd rather just give an API to other devs so we can do some kind of rev share. My UI dev skills are a bit .. lacking.
full member
Activity: 121
Merit: 100
Nice one .

Fit it into a 1x1 square.

That disables the phone to do a screen fireworks display every
time BTC rises by $5.

And your on to something.

Keep up the good work. Smiley Smiley Smiley
member
Activity: 106
Merit: 10
I'm the dev. It looks like crap as there are already 100 other "mtgox price" apps out there - but the difference is this one is streaming data via message queues - ie it doesn't get the whole socket.io data but just the mtgox_ticker data.

Here's the link to the app:  https://play.google.com/store/apps/details?id=info.getbitcoin.bitcoinlive

And here's a quick youtube comparing it to bitcoinity.org: https://www.youtube.com/watch?feature=player_embedded&v=KUr-JxJI_Cw


If it's popular, I'll make it look prettier . I can even release a jar to other android devs that hook straight into the subscription datastream so to add live prices to your app, it's as simple as including the jar and the following code:

 private void startSubscriber()
    {
        Handler h = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                String d = msg.getData().get("message").toString()    ;
               // Log.d(Tag, d);
                String d2 = d.substring(d.indexOf(" ") + 1);
                try {
                    JSONObject jObject = new JSONObject(d2);

                    String ask = jObject.getJSONObject("sell").getString("display_short");
                    String bid = jObject.getJSONObject("buy").getString("display_short");
                    String last = jObject.getJSONObject("last_orig").getString("display_short");

                    TextView ask_text = (TextView) findViewById(R.id.btce_ask_value);
                    ask_text.setText(ask);

                    TextView bid_text = (TextView) findViewById(R.id.btce_bid_value);
                    bid_text.setText(bid);

                    TextView last_text = (TextView) findViewById(R.id.btce_last_value);
                    last_text.setText(last);

                } catch (JSONException e) {
                    Log.e(Tag, "Exception", e);  //To change body of catch statement use File | Settings | File Templates.
                }

            }
        };

        zmqt = new ZeroMQMessageTask(h,"tcp://betadata.getbitcoin.info:5565","mtgox_ticker");
        zmqt.execute();


    }

The prices are filtered and streamed from an AWS instance - which won't be free if it becomes widely used .. so I'll have to figure out how to make an income enough to cover those costs (which won't be significant).
Jump to: