Difference between revisions of "ALT+F4"

From mn/ifi/inf5750
Jump to: navigation, search
(Group organization)
(Downloads)
 
(32 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Project details ==
 
[http://www.uio.no/studier/emner/matnat/ifi/INF5750/h15/group-projects/coordinate-picker/index.html Android coordinate picker]
 
 
 
== Group members ==
 
== Group members ==
 
[[File:Alt+f4.jpg|left|alt=alt+f4]]
 
[[File:Alt+f4.jpg|left|alt=alt+f4]]
 
Magnus Åsrud - magnaas@ifi.uio.no<br />  
 
Magnus Åsrud - magnaas@ifi.uio.no<br />  
 
Olav Wegner Eide - olavwe@ifi.uio.no<br />
 
Olav Wegner Eide - olavwe@ifi.uio.no<br />
Øyvind Julsrud - oyvindju@ifi.uio.no<br />
+
Øyvind Julsrud - oyvindju@ifi.uio.no
  
== Architecture ==  
+
== Project details ==
We will primarily use the Android SDK bundle for Android Studios to create the Android coordinate picker app.
+
[http://www.uio.no/studier/emner/matnat/ifi/INF5750/h15/group-projects/coordinate-picker/index.html <span style="color:#00B300;">Android Coordinate Picker</span>]
 
 
We will also make use of the Google maps API to visualize the coordinates given to us by [https://play.google.com/store/apps/details?id=org.hisp.dhis.android.eventcapture&hl=en DHIS 2 Event Capture]  and  [https://play.google.com/store/apps/details?id=org.hisp.dhis.android.trackercapture&hl=en DHIS 2 Tracker Capture]  
 
  
== Summary of Requirements ==
 
 
The project is to implement the functionality of a point-and-click coordinate selector using the Google maps API in the [https://github.com/dhis2/dhis2-android-sdk DHIS 2 Android SDK]
 
The project is to implement the functionality of a point-and-click coordinate selector using the Google maps API in the [https://github.com/dhis2/dhis2-android-sdk DHIS 2 Android SDK]
  
 
<nowiki> </nowiki>and integrate the coordinate selector into the two existing Android apps: [https://play.google.com/store/apps/details?id=org.hisp.dhis.android.eventcapture&hl=en DHIS 2 Event Capture] and [https://play.google.com/store/apps/details?id=org.hisp.dhis.android.trackercapture&hl=en DHIS 2 Tracker Capture].
 
<nowiki> </nowiki>and integrate the coordinate selector into the two existing Android apps: [https://play.google.com/store/apps/details?id=org.hisp.dhis.android.eventcapture&hl=en DHIS 2 Event Capture] and [https://play.google.com/store/apps/details?id=org.hisp.dhis.android.trackercapture&hl=en DHIS 2 Tracker Capture].
  
Main features is then:
+
Main features:
 
* A way to choose between the current device coordinates or selecting coordinates from a map.
 
* A way to choose between the current device coordinates or selecting coordinates from a map.
 
* If the map option is chosen, open a map and let the user point on a location, obtain the coordinates and send them back to the form.
 
* If the map option is chosen, open a map and let the user point on a location, obtain the coordinates and send them back to the form.
* Support normal user operations in the map such as zoom, move on drag, refine the already chosen position.
+
* Support normal user operations in the map such as zoom, move on drag and refine the already chosen position.
Secondary features would be:
+
Secondary features:
 
* Easy integration with current and new Android apps that uses the DHIS 2 SDK.
 
* Easy integration with current and new Android apps that uses the DHIS 2 SDK.
* Continue use of the already used Google maps API.
+
* Continued usage of Google maps API.
 +
 
 +
== How to test the app ==
 +
Login for the apps.
 +
* server: [http://apps.dhis2.org/demo https://play.dhis2.org/demo]
 +
* username: android
 +
* password: Android123
 +
 
 +
== Architecture ==
 +
We will primarily use the Android SDK bundle for Android Studios to create a Android coordinate picker for the DHIS2 Android SDK .
 +
 
 +
We will also make use of the Google maps API to visualize the coordinates given to us by [https://play.google.com/store/apps/details?id=org.hisp.dhis.android.eventcapture&hl=en DHIS 2 Event Capture] and  [https://play.google.com/store/apps/details?id=org.hisp.dhis.android.trackercapture&hl=en DHIS 2 Tracker Capture]
 +
 
 +
Other tools used in the project are Git and [https://www.sourcetreeapp.com/ SourceTree]
  
 
== Work schedule ==
 
== Work schedule ==
Line 32: Line 38:
  
 
'''Milestone 2: 22th November'''
 
'''Milestone 2: 22th November'''
* First bare-bone version. <span style="color:#FF0000;"></span>
+
* A test version of the Google Map functionality is available for testing. <span style="color:#33CC33;"></span>
 
+
** Use the testVersion branch to test the app.
* Up-loadable as DHIS2 web app. <span style="color:#FF0000;">✘</span>
 
  
 
'''Milestone 3: 4th December'''
 
'''Milestone 3: 4th December'''
* Finished, both apps are running. <span style="color:#FF0000;"></span>
+
* The user can open Google Maps via the menu and select a location by tapping the screen. <span style="color:#33CC33;">✔</span>
 +
* The selected coordinates are placed into the coordinate box. <span style="color:#33CC33;">✔</span>
 +
* Both apps have the ability to select coordinates via Google Maps. <span style="color:#33CC33;">✔</span>
 +
* Interface is finished and is user friendly. <span style="color:#33CC33;"></span>
  
 
'''Final milestone: 11th December'''
 
'''Final milestone: 11th December'''
* Final delivery. <span style="color:#FF0000;">✘</span>
+
* Final delivery. <span style="color:#33CC33;">✔</span>
 +
* Presentation: 17th december <span style="color:#FF0000;">✘</span>
  
* Presentation. <span style="color:#FF0000;">✘</span>
+
== Group organization ==
 +
In addition to meet in person to devide the work, identify issues and work together, we use a shared Facebook conversation to easily keep in touch and share links and keep a [https://docs.google.com/spreadsheets/d/1TpAiMS5t-92MpqS1cR1BtYaF4dVu8UjBtduHFmZlDAQ/edit?ts=563b4fcd#gid=0 worklog] on a shared Google Sheets.
 +
The Git commit history also work as a log.
  
== Group organization ==
 
 
'''Milestone 1:'''<br>
 
'''Milestone 1:'''<br>
We work together to create the wiki.
+
We work together to create the wiki and plan the future work.
 +
 
 +
'''Milestone 2:'''<br>
 +
We each work on individual tasks and meet in the group session, as well as self-organized meetings to put our work together and identify new tasks.
 +
 
 +
'''Milestone 3 and 4:'''<br>
 +
We each work on individual tasks and together in to solve issues. We also had help from the DHIS2 Android developers to integrate our work into the SDK. 
  
 
== Screenshots, implementation of features ==
 
== Screenshots, implementation of features ==
 +
[[File:ACP 01.png|250px|alt=The menu with Google Maps button]]
 +
[[File:ACP 03.png|250px|alt=Toast message]]
 +
[[File:ACP 04.png|250px|alt=The app in action]]
  
 
== Learning outcome and future thoughts ==
 
== Learning outcome and future thoughts ==
 +
By working on this project we acquired some experience with Android development and gained insight into the DHIS2 Android-SDK. We also a good understanding of
 +
how the DHIS2 project works. In the beginning our main concern was to
 +
get a working map and to find a good way to let the user pick
 +
coordinates on the map. This was quite easy to accomplish by
 +
implementing an activity that opened up a map and let the user pick
 +
coordinates by adding a marker where the user clicks. The main issue
 +
that then was left, was to integrate this activity with the existing
 +
SDK. The main problem was to actually return data from the map to the
 +
form. We all had several attempts to do this, e.g. by returning it in
 +
intents, local broadcasters and also event-handlers. The latter was
 +
suggested by the DHIS2 Android developers, but did not work. As for
 +
now, the the coordinates are not visible in the form before after the
 +
user goes back to the list of forms and re-enters the form. They
 +
should be visible instantly after the activity finishes and the app
 +
returns to the current form. This issue is according to
 +
the developers probably due to re-factoring in current source. For future projects we
 +
think the the projects should be built on more-stable sources and
 +
that the sources should be better documented. Although, this gives a
 +
hands-on experience from real-life development.
  
 
== Downloads ==
 
== Downloads ==
https://bitbucket.org/Gradox/android-coordinate-picker (private repo) <br />
+
https://bitbucket.org/Gradox/android-coordinate-picker<br />
later the app <br />
+
[https://dl.dropboxusercontent.com/u/105449753/INF5750%20Android%20Coordinate%20Picker/Android-coordinate-picker-app-release-unsigned.apk APK install file for Android]

Latest revision as of 22:30, 13 December 2015

Group members

alt+f4

Magnus Åsrud - magnaas@ifi.uio.no
Olav Wegner Eide - olavwe@ifi.uio.no
Øyvind Julsrud - oyvindju@ifi.uio.no

Project details

Android Coordinate Picker

The project is to implement the functionality of a point-and-click coordinate selector using the Google maps API in the DHIS 2 Android SDK

and integrate the coordinate selector into the two existing Android apps: DHIS 2 Event Capture and DHIS 2 Tracker Capture.

Main features:

  • A way to choose between the current device coordinates or selecting coordinates from a map.
  • If the map option is chosen, open a map and let the user point on a location, obtain the coordinates and send them back to the form.
  • Support normal user operations in the map such as zoom, move on drag and refine the already chosen position.

Secondary features:

  • Easy integration with current and new Android apps that uses the DHIS 2 SDK.
  • Continued usage of Google maps API.

How to test the app

Login for the apps.

Architecture

We will primarily use the Android SDK bundle for Android Studios to create a Android coordinate picker for the DHIS2 Android SDK .

We will also make use of the Google maps API to visualize the coordinates given to us by DHIS 2 Event Capture and DHIS 2 Tracker Capture

Other tools used in the project are Git and SourceTree

Work schedule

Milestone 1: 8th November

  • Document the wiki page.

Milestone 2: 22th November

  • A test version of the Google Map functionality is available for testing.
    • Use the testVersion branch to test the app.

Milestone 3: 4th December

  • The user can open Google Maps via the menu and select a location by tapping the screen.
  • The selected coordinates are placed into the coordinate box.
  • Both apps have the ability to select coordinates via Google Maps.
  • Interface is finished and is user friendly.

Final milestone: 11th December

  • Final delivery.
  • Presentation: 17th december

Group organization

In addition to meet in person to devide the work, identify issues and work together, we use a shared Facebook conversation to easily keep in touch and share links and keep a worklog on a shared Google Sheets. The Git commit history also work as a log.

Milestone 1:
We work together to create the wiki and plan the future work.

Milestone 2:
We each work on individual tasks and meet in the group session, as well as self-organized meetings to put our work together and identify new tasks.

Milestone 3 and 4:
We each work on individual tasks and together in to solve issues. We also had help from the DHIS2 Android developers to integrate our work into the SDK.

Screenshots, implementation of features

The menu with Google Maps button Toast message The app in action

Learning outcome and future thoughts

By working on this project we acquired some experience with Android development and gained insight into the DHIS2 Android-SDK. We also a good understanding of how the DHIS2 project works. In the beginning our main concern was to get a working map and to find a good way to let the user pick coordinates on the map. This was quite easy to accomplish by implementing an activity that opened up a map and let the user pick coordinates by adding a marker where the user clicks. The main issue that then was left, was to integrate this activity with the existing SDK. The main problem was to actually return data from the map to the form. We all had several attempts to do this, e.g. by returning it in intents, local broadcasters and also event-handlers. The latter was suggested by the DHIS2 Android developers, but did not work. As for now, the the coordinates are not visible in the form before after the user goes back to the list of forms and re-enters the form. They should be visible instantly after the activity finishes and the app returns to the current form. This issue is according to the developers probably due to re-factoring in current source. For future projects we think the the projects should be built on more-stable sources and that the sources should be better documented. Although, this gives a hands-on experience from real-life development.

Downloads

https://bitbucket.org/Gradox/android-coordinate-picker
APK install file for Android