Update android documentation

This commit is contained in:
James Agnew 2017-10-17 16:05:11 -04:00
parent 73382d85ca
commit 4fb588d7a6
3 changed files with 129 additions and 101 deletions

View File

@ -1646,7 +1646,6 @@
<artifactId>maven-scm-api</artifactId> <artifactId>maven-scm-api</artifactId>
<version>1.9.5</version> <version>1.9.5</version>
</dependency> </dependency>
<!-- <dependency> <groupId>org.apache.maven.doxia</groupId> <artifactId>doxia-core</artifactId> <version>1.7</version> </dependency> -->
<dependency> <dependency>
<groupId>org.apache.maven.doxia</groupId> <groupId>org.apache.maven.doxia</groupId>
<artifactId>doxia-module-markdown</artifactId> <artifactId>doxia-module-markdown</artifactId>
@ -1686,17 +1685,11 @@
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
<!-- <plugin> <groupId>com.github.github</groupId> <artifactId>site-maven-plugin</artifactId> <version>0.12</version> <configuration> <message>Building site for ${project.version}</message> <server>github</server>
</configuration> <executions> <execution> <goals> <goal>site</goal> </goals> <phase>site-deploy</phase> </execution> </executions> </plugin> -->
</plugins> </plugins>
</build> </build>
<reporting> <reporting>
<plugins> <plugins>
<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-checkstyle-plugin</artifactId> <reportSets> <reportSet> <reports><report>checkstyle-aggregate</report></reports> </reportSet>
</reportSets> <configuration> <configLocation>config/sun_checks.xml</configLocation> <includes> hapi-fhir-base/src/main/java/**/*.java </includes> </configuration> </plugin> -->
<!-- <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.7.7.201606060606</version> <reportSets> <reportSet> <reports> <report>report</report> </reports> <configuration>
<dataFileIncludes>${baseDir}/hapi-fhir-base/target/jacoco.exec</dataFileIncludes> </configuration> </reportSet> </reportSets> </plugin> -->
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId> <artifactId>maven-changes-plugin</artifactId>

View File

@ -7,6 +7,17 @@
</properties> </properties>
<body> <body>
<release version="3.1.0" date="TBD"> <release version="3.1.0" date="TBD">
<action type="fix">
The Android client module has been restored to working order, and no longer
requires a special classifier or an XML parser to be present in order to
work. This means that the hapi-fhir-android library is much less likely
to cause conflicts with other libraries imported into an Android application
via Gradle.
<![CDATA[<br/><br/>]]>
See the
<![CDATA[<a href="http://hapifhir.io/doc_android.html">HAPI FHIR Android Documentation</a>]]>
for more information.
</action>
<action type="add"> <action type="add">
A performance to the JPA server has been made which reduces the number A performance to the JPA server has been made which reduces the number
of writes to index tables when updating a resource with contents that of writes to index tables when updating a resource with contents that

View File

@ -11,16 +11,32 @@
<section name="Android Client Development"> <section name="Android Client Development">
<p> <p>
HAPI now has a specially built binary (JAR) which can be used on Android. Android developers HAPI now has a specially built module for use on Android. Android developers
may use this JAR to take advantage of the FHIR model classes, and the FHIR client (running a FHIR server may use this JAR to take advantage of the FHIR model classes, and the FHIR client (running a FHIR server
on Android is not yet supported. Help wanted!) on Android is not yet supported. Get in touch if this is something you are interested in working on!)
</p> </p>
<p> <p>
The Android JAR ships as a "shade JAR", meaning it is a single JAR containing all of the As of HAPI FHIR 3.1.0, the <code>hapi-fhir-android</code> module has been streamlined in order
dependencies required in order to use HAPI FHIR. You should not need to include any other to reduce its footprint. Previous versions of the library included both an XML and a JSON parser
libraries. but this has been streamlined to only include JSON support in order to reduce the number of
libraries required in an Android build.
</p> </p>
<p>
When using the HAPI FHIR Android client, the client will request only JSON responses
(via the HTTP <code>Accept</code> header) and will not be able to communicate
with FHIR servers that support only XML encoding (few, if any, servers actually exist
with this limitation that we are aware of).
</p>
<p>
The Android client also uses the <code>hapi-fhir-client-okhttp</code> module,
which is an HTTP client based on the OkHttp library. This library has proven to be
more powerful and less likely to cause issues on Android than the Apache HttpClient
implementation which is bundled by default.
</p>
<p> <p>
Note that the Android JAR is still new and hasn't received as much testing as other Note that the Android JAR is still new and hasn't received as much testing as other
parts of the library. We would greatly appreciate feedback, testing, etc. Also note that parts of the library. We would greatly appreciate feedback, testing, etc. Also note that
@ -34,24 +50,32 @@
<subsection name="Get the Android JAR"> <subsection name="Get the Android JAR">
<p> <p>
To add the HAPI library via Gradle, use the following To add the HAPI library via Gradle, you should add the
dependency. Note the following things: <a href="http://search.maven.org/#search%7Cga%7C1%7Chapi-fhir-android">hapi-fhir-android</a>
library to your Gradle file, as well as a structures library for the appropriate
version of FHIR that you want to support, e.g.
<a href="http://search.maven.org/#search%7Cga%7C1%7Chapi-fhir-structures">hapi-fhir-structures-dstu3</a>.
</p> </p>
<ul>
<li>The classifier should be set to the version of FHIR you want to support.</li>
<li>
You need to excluded a few things in order to get this to work. This is
a quirk because the way HAPI is built and will hopefully be resolved in a future
release.
</li>
</ul>
<source><![CDATA[dependencies { <source><![CDATA[dependencies {
compile "ca.uhn.hapi.fhir:hapi-fhir-android:2.2:dstu2@jar" compile "ca.uhn.hapi.fhir:hapi-fhir-android:3.1.0-SNAPSHOT"
compile "ca.uhn.hapi.fhir:hapi-fhir-structures-dstu2:3.1.0-SNAPSHOT"
}]]></source> }]]></source>
<p> <p>
You may also download a copy from the GitHub Uou will also need to manually exclude the Woodstox StAX library from
<a href="https://github.com/jamesagnew/hapi-fhir/releases">Releases</a> page. inclusion, as this library uses namespaces which are prohibited on Android. You should also
exclude
</p>
<source><![CDATA[configurations {
all*.exclude group: 'org.codehaus.woodstox'
all*.exclude group: 'org.apache.httpcomponents'
}</source>
<p>
To see a sample Gradle file for a working Android project
using HAPI FHIR, see the
<a href="https://github.com/hapifhir/hapi-fhir-android-integration-test">Android Integration Test</a>
project.
</p> </p>
</subsection> </subsection>
</section> </section>
@ -59,7 +83,7 @@
<section name="Performance"> <section name="Performance">
<p> <p>
On mobile devices, performance problems are particularly noticeable. This On mobile devices, performance problems are particularly noticeable. This
is made worse by the fact that some Android devices have much slower performance is made worse by the fact that some economy Android devices have much slower performance
than modern desktop computers. See the than modern desktop computers. See the
<a href="./doc_rest_client_http_config.html#performance">Client Configuration Performance</a> <a href="./doc_rest_client_http_config.html#performance">Client Configuration Performance</a>
page for some tips on how to improve client performance. page for some tips on how to improve client performance.