Cloudkibo / Android

0 stars 0 forks source link

Chat Client for Android: Investigate and learn #81

Closed jekram closed 8 years ago

jekram commented 8 years ago

@sojharo

We need a chat client for KiboSupport. This task is to review and learn what others have done in this area.

My ask is for you to review this so we can have a better discussion before we start KiboSupport Andriod Chat client.

https://developer.zendesk.com/embeddables/docs/android-chat-sdk/introduction

https://developer.zendesk.com/embeddables/docs/android/overview

sojharo commented 8 years ago

For this, we would need two repositories. One for SDK development and other for sample application using the SDK.

The most important thing is the integration complexity. By this we mean, what amount of work we would ask developer to do to integrate the plugin within their applications. It should be minimum and we would have to learn from open source plugins to see how do they do this.

i.e.

http://stackoverflow.com/questions/10239596/plugins-architecture-for-an-android-app http://stackoverflow.com/questions/5120220/write-plugin-for-android-app

Moreover, plugin as SDK should also have other options like interfacing with cloudkibo server. If developer wants, he should be able to use SDK to send or receive data from cloudkibo server just using SDK. SDK will provide good functions for this and behind the scenes it would work with our REST API.

It would need to run socket.io in background in order to do chat. It would connect to our socket.io server on cloudkibo. We would need to decide whether we want our chat service to keep running in the background or just start at the time when support is required. It has its demerits as background services drain the battery and developers will not like our application to start permanently running services. Also, we would need to think if there is any need of such services.

Some good points to notice from others:

  1. SDK should be native to avoid web views.
  2. SDK should be extensible to fit exact look and feel of the client app.

The main thing which got us curious was use of Unity3D. It is a graphics library and is mostly used in game programming. However, they have used it for widget user interface purposes. Somehow, they use it for how to insert widget in any application and doesn't force developer to write a lot of code.

I think we would need to look into Unity3D once to understand what it can do and how zendesk have used them.

jekram commented 8 years ago

@sojharo

Thanks. I am going to close to old tickets as part of the cleanup. Reopen if you do not agree.