Skip to content

Design: Android

Mike Fikes edited this page Sep 16, 2015 · 25 revisions

Overview

React Native may become available for Android around September (reference).

Is it possible to support the same architecture (TCP, WebDAV, mDNS, device-side integration) on Android so that it essentially looks just like the current iOS approach?

Note that perhaps the ClojureScript compiler could itself directly support WebDAV (Or at least provide the needed hooks CLJS-901) (thus avoiding different OS-specific WebDAV client solutions, but retaining the same overall architecture).

Device-Side

WebDAV Server

Milton? http://milton.io WebDAV level 1 is free. Is that sufficient?

Perhaps Jackrabbit can be made to work. (Example client use http://www.codeitive.com/0NJjVkqWPU/webdav-with-jackrabbit-lib-on-android.html)

mDNS / Bonjour Advertisement

mDNS builtin: http://developer.android.com/training/connect-devices-wirelessly/nsd.html jmDNS appears to work too: http://home.heeere.com/tech-androidjmdns.html

JavaScript Engine

Use JavaScriptCore? React Native team hasn't yet decided which engine to use. (IRC with Christopher Chedeau on 28-Apr: Facebook hasn't yet decided. Playing with different ones. Favor JavaScriptCore but have to sort out legal.) UPDATE: Yes, JSC: https://twitter.com/djcordhose/status/620257299228151808

How do you actually access it? (IRC 24-Apr: Christopher Chedeau indicated that Android architecture is not that different. Just need to have some C++ in between Java and JavaScript.)

Use a WebView? http://developer.android.com/guide/webapps/webview.html

REPL-Side

OS X

Should just work.

Linux

Working: http://blog.fikesfarm.com/posts/2015-05-29-extending-ambly-to-windows-and-linux.html

Windows

Working: http://blog.fikesfarm.com/posts/2015-05-29-extending-ambly-to-windows-and-linux.html