Teigha Cloud: Mobile clients - implementation features

Maksym Kryva

December 19, 2017

Comparing Mobile Client Requirements for Teigha Cloud

When creating a mobile client for Teigha Cloud, you can face peculiarities on different mobile platforms. This article describes some of the differences between iOS and Android platforms.

Networking

On different platforms, the APIs of HTTP clients are very different. The main requirement for clients is to support long-poll requests because the Teigha Cloud server uses a long-poll mechanism for sending graphical data to clients.

  • iOS uses NSURLSession and NSURLConnection for http/https requests.
  • Android uses UrlConnection and NetworkFragment for these purposes. It is recommended to use wrappers on a default client (see below).

OpenGL screen

Teigha Cloud uses Open GL ES 2.0. Your app must have GL ES2 support and the SDK of the mobile OS must have tools for working with it.

  • iOS uses GLKViewController and GLKView (located in GLKit) for working with GL ES2. GLKViewController contains GLKView embedded (see here).
  • Android uses GLSurfaceView and GLSurfaceView.Renderer. GLSurfaceView contains methods for configuring the screen, such as configuring depth color and an update screen policy, and GLSurfaceView.Renderer contains the rendering configuration (see here and here).

Recommendations

It is recommended to use the following libraries for your mobile app:

  • Alamofire(iOS): REST client that supports async work and works with long-polling.
  • Haneke(iOS): Tool that helps you download a preview of uploaded files.
  • JASON: Fast json parser.
  • AsyncHttpClient(Android): An async rest client that supports background work and works with long-polling.
  • Picasso(Android): Downloads previews of uploaded files.
  • Moshi(Android): json parser.