top | item 16325537

(no title)

Goopplesoft | 8 years ago

By building a phenomenal chat app and gradually (deliberately) building features around it to create a complete WeChat-like ecosystem, Telegram will probably improve people's uptake of chat-centric utilities in the markets they're targeting.

I think the fundamental component to their success is just how snappy and 'live' their chat conversations feel. Everything including their backend perf, chat bubble animations, etc seems to be finely tuned to make conversations feel alive and active.

discuss

order

on_and_off|8 years ago

Interesting that the official Telegram client gets mocked a lot for how bloated its code is.

And it absolutely is, from a 2 minutes look at their code :

- their chat activity is 12000 lines of code : https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/...

- it looks like they have copy pasted tons of Android library like exoplayer directly in their repo

It does work very well though !

I guess that they have an extremely small team (or just one persone) and it is their first Android project.

It looks like they have acqui-hired a competing chat client (Telegram X), so it looks like they have a solution to clean this mess.

dmix|8 years ago

Woah, that's some lazy code in ChatActivity.java. Functions with 30+ conditionals depending on tons of external state. That must be a nightmare to debug and impossible to test.

I've seen some huge Android java functions where everything gets stuffed into the Fragment creation/update/etc API functions... but this is one just stuffed everything in them.

It's just asking for bugs and security issues.

Edit: the commit history all comes the same developer, each titled with a generic "Bug fixes" commit and no description of the changes. Seems like a single guy is just cowboying the whole App, it's not a team project at Telegram. Which explains the above... https://github.com/DrKLO/Telegram/commits/master/TMessagesPr...

t1o5|8 years ago

Curious why typecast if instanceof is checked already ? Wont the compiler know of this already ?

  if (view instanceof ChatMessageCell) {
  .......                    
   ChatMessageCell cell = (ChatMessageCell) view;
  ....
  }

d33|8 years ago

That sounds like a disturbingly huge attack surface...

blauditore|8 years ago

It is super performant and stable though. I'm often surprized how easily it works through a shaky slow connection while others end up in an endless loading icon.

jcelerier|8 years ago

and then they say that Qt isn't able to do pretty animations :p

distances|8 years ago

Who says? I've never heard this.

welder|8 years ago

I wish Keybase Chat supported mobile.

https://keybase.io/blog/keybase-chat

anubisresources|8 years ago

Keybase chat does support mobile, I use it all the time

dharma1|8 years ago

Works fine on mobile. Can't say the UX is as good as Telegram though

jasikpark|8 years ago

Keybase chat works with both direct messages and team messages on mobile

X-Istence|8 years ago

Using it on iOS without issues.