Mobile Development

Environment Setup

November 2015 - Shift in direction

  • IntelliJ as Integrated Development Environment (IDE)
  • Angular as framework for Single-Page Application (SPA)
  • UI-Bootstrap for UI elements in JavaScript (along with styling)
  • Guice for Dependency Injection (DI)

Canonical Project is Clue Ride.

Clue Ride uses a number of technologies that are moving toward encrypted data transfer and often require SSL:

  • Webcam's use of the camera.
  • GPS information
  • Preferences.

For the sake of playing the game in the field, an encrypted session is more safe.

Setting up SSL for development, test and production

Feb 2015 under Eclipse

Also see Eclipse Setup for what I've done to get Eclipse Luna going.

Preparation

NOTE: The "Working With Maven" link mentions Mojo's gwt-maven-plugin. This is a maven plugin that can be brought in using the POM.

Installation Steps

(confirming these steps under Luna in March 2015)

  • GPE stands for Google Plugin for Eclipse. This is the starting point, but there will be a couple of other GWT pieces that come in for the FireFox Browser and (via Maven) the libraries that support the application itself. NOTE: this is listed first because the GPE comes with some recent version of the GWT SDK. You may want a more recent version of the SDK, in which case, you can install and select this later.
  • Maven-driven m2eclipse-install
  • Git - EGit supported by JGit
  • GWT - Three pieces:
    1. Eclipse install: GPE plugin for Eclipse,
    2. Browser Install: devmode plugin for FireFox (perhaps changing with super dev mode),
    3. The SDK - Installed in one of a variety of ways:
      1. perhaps under Eclipse when brought in with the GPE
      2. separate install in the filesystem of the dev machine: the SDK library (jars) for compiling/deploying (http://www.gwtproject.org/download.html)
      3. Maven reference in which case it gets placed into the maven repo
  • mGWT as the library handling different device types (phone, tablet, desktop)

Development Workflow

Experimental March 2015
Mobile Development Workflow

DB Queries

  • Mobile Dev Queries - Holding spot for useful queries (that I haven't turned into Views yet)

Issues

New Project

As of July 30, 2014

Eclipse Config

Builders

builders.png

Google Web App Config

googleWebApp.png

Deployment Assembly

I'm not sure how this was originally assembled because I've never adjusted this manually, but it looks important and relevant.

deploymentAssembly.png

Project Facets

projectFacets.png

Installation Details

installationDetails.png

Eclipse Project Files

.project

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>showTrains</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.common.project.facet.core.builder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.wst.validation.validationbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.m2e.core.maven2Builder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
        <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
        <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
        <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
        <nature>com.google.gwt.eclipse.core.gwtNature</nature>
    </natures>
</projectDescription>

.classpath

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java"/>
    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
    <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
    <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
        <attributes>
            <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="output" path="target/classes"/>
</classpath>
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License