Android app - sprint 1

Door Timons106 op zondag 2 juni 2013 18:25 - Reacties (7)
Categorie: Development, Views: 3.860

Het is alweer een tijdje geleden dat ik geblogd heb, maar we zijn nu weer bezig met een heel interessant project op school dus ik dacht laat ik daar eens wat over schrijven.
Er zullen wellicht een aantal spel- en grammaticafouten fouten staan in mijn blog, dus als je er ťťn (of meer) tegenkomt mag je dat melden in de reacties).

De afgelopen twee weken zijn we bezig geweest met 'Museapp' (gebrek aan een betere naam, suggesties zijn welkom).

Museapp is een app waarmee je informatie en de locatie van musea en monumenten in Nederland (en Nederlandse oorlogsmonumenten in het buitenland) te vinden.

In de eerste sprint zijn we bezig geweest met de volgende user stories:
  • Als gebruiker wil ik de locaties van monumenten en musea op een kaart kunnen zien, zodat ik een overzicht heb van de monumenten en musea.
  • Als gebruiker wil ik de monumenten en musea in een lijstweergave kunnen zien, zodat ik snel weet welke monumenten en musea er zijn.
  • Als gebruiker wil ik een duidelijk en eenvoudig interface voor de app, zodat ik makkelijk kan navigeren naar de verschillende onderdelen in de app.
Natuurlijk hebben we in de eerste sprint al deze user stories af kunnen tekenen, en hebben we zelfs nog meer kunnen bereiken als dat.
We halen namelijk alle data op van onze eigen online database, dit hadden we eigenlijk pas voor de 3e sprint gepland staan, ook hebben we het delen (via de share intent) van een museum of monument toegevoegd.

In de database staan nu 3704 monumenten, deze zijn afkomstig van de Nederlandse oorlogsmonumenten datadump (http://www.opencultuurdat...naal-comite-4-en-5-mei-2/).

Je kan je dan natuurlijk ook wel voorstellen dat het toevoegen van pinpoints aan de kaart even duurt met laden als je kijkt naar het onderstaande
Als je kijkt naar het onderstaande stukje code kan je je misschien ook wel voorstellen dat het toevoegen van pinpoints aan de kaart eventjes (+/- 10 seconden) duurt.


Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
places = PlacesLoader.getPlaces();
        mapPlaceToId = new HashMap<String, String>();
        LatLng cameraLatLng = new LatLng(0,0);
        try {
            cameraLatLng = new LatLng(Double.parseDouble(places.getJSONObject(0).getString(TAG_LAT)), Double.parseDouble(places.getJSONObject(0).getString(TAG_LONG)));
            for (int i = 0; i < places.length(); i++) {
                JSONObject c = places.getJSONObject(i);
                String title = c.getString(TAG_NAME);
                String lat = c.getString(TAG_LAT);
                String lon = c.getString(TAG_LONG);
                String mid = c.getString(TAG_MID);
                LatLng loc = new LatLng(0,0);
                try {
                    loc = new LatLng(Double.parseDouble(lat), Double.parseDouble(lon));
                } catch (NumberFormatException nfe) {
                    continue;
                }
                mapPlaceToId.put(title, mid);
                googleMap.addMarker(new MarkerOptions()
                    .position(loc)
                    .title(title)
                    /*.snippet(mid)*/
                    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
            }
        } catch (JSONException e) {
            e.printStackTrace();



Daarom gaan we in de volgende sprint alleen de informatie uit de database ophalen die in een straal van x kilometer liggen van de huidige locatie.

Nog even een aantal screenshots van de app:
https://oe8pyw.dm1.livefilestore.com/y2pWMOFF4WQHXbPjAHNbJmyJSoqMkWyrv2eLtTSF_OOmbwi7j6PdqOf7nPklVc46Rj3T8-Vb3A218nFfWkjAcON7LduohMZ8rpVDcGGAGh4xjQ/Screenshot_2013-06-02-18-20-27.png

https://oe8pyw.dm1.livefilestore.com/y2pY3S-UpuLxCZj1rZZI-Rng04Mj7xtRlYRcmJqKg9t-KmRyaeRZXE78ryioEUhdBw0Lvkjl2uWLPrt-vKVu0ch0-sYQVllVg-sicFnYtz8up0/Screenshot_2013-06-02-17-56-04.png

https://oe8pyw.dm1.livefilestore.com/y2pXE5K4pJUx22rpwJw69etWjICY2fcQV1wHSJXQoXSqiFEW7iIrTwUemWnNdRKYRzMtqzd1UDCgu6Ffg4-Ea3Wv-_7_Z52E_aRx2ZLEoo7dIA/Screenshot_2013-06-02-17-59-18.png

https://oe8pyw.dm1.livefilestore.com/y2px-v2FXBnl02rbHAUHHd3730wJaCKAJR6dWjvQ0xsBR0EudKwGTYvn9MElOPbacoxb3r7yw4KoaWsjHYREVrFihaUnZg4bO4mYL_UYKak_7w/Screenshot_2013-06-02-17-59-03.png

In de laatste afbeelding kan je goed zien waarom het zo lang duurt om de kaartweergave te openen :P.

Het interface moet nog aan gewerkt worden, dus don't judge me on that please :).

Volgende: Teen Girl Scientist Monthly 06-'13 Teen Girl Scientist Monthly
Volgende: Website voor bioscoop(keten) Filmpje 11-'12 Website voor bioscoop(keten) Filmpje

Reacties


Door Tweakers user Kev0, maandag 3 juni 2013 03:07

Leuk :) Succes!

Door Tweakers user Xudonax, maandag 3 juni 2013 09:01

Is het misschien een idee om op dit formaat kaart eerst enkel puntjes te zetten in steden met een museum/moment e.d., en als je verder inzoomt dat je dan punten zet per wijk? Volgens mij moet iets dergelijks mogelijk zijn met een MapCluster :)

Dan krijg je een beetje dit idee: Funda kaart

Door Tweakers user Timons106, maandag 3 juni 2013 09:41

Xudonax schreef op maandag 03 juni 2013 @ 09:01:
Is het misschien een idee om op dit formaat kaart eerst enkel puntjes te zetten in steden met een museum/moment e.d., en als je verder inzoomt dat je dan punten zet per wijk? Volgens mij moet iets dergelijks mogelijk zijn met een MapCluster :)

Dan krijg je een beetje dit idee: Funda kaart
Dat is geen slecht idee. Wij dachten er aan om alleen de dichtstbijzijnde punten te weergeven en dan alleen andere punten in te laden als je zoekt op een stad of naam.
Misschien zijn deze ideeŽn te combineren.

Door Tweakers user thefal, maandag 3 juni 2013 12:12

Of zoiets, stukje moeilijker maar wel mooi:

http://c2.plzcdn.com/Zill...1e69acd1b6764593d7dbd.jpg

Dat is de Benzine Jip app, die aangeeft waar en hoe duur je kan tanken. Als je helemaal uitlogt krijg je 4 bolletjes te zien met minimum en maximum prijs van de regio, hoe meer je inzoomt, hoe meer bolletjes je krijgt. Als je helemaal bent ingezoomd krijgt je ze wel indivudeel te zien:

http://fs02.androidpit.in...6830797-1346977120301.jpg

In jouw geval zou je kunnen werken met bolletjes met daarin een cijfer van het aantal gevonden plaatsen.

Bijvoor beeld: Als je helemaal bent uitgezoomd zie je 12 bolletjes, voor elke provincie 1.
Als je inzoomt zodat Zuid Holland je beeld vult, zie je een paar bolletjes voor de grote steden: Rotterdam en omgeving, Den Haag en omgeving, Zoetermeer en omgeving etc
Zoom nog verder in op bijv. Den Haag en je krijgt ze indidueel te zien.

Benzine Jip doet dit heel mooi, Scoupy volgens mij ook.

Door Tweakers user Kale Kiwi, maandag 3 juni 2013 17:42

Dit artikel heb ik ooit gebruikt om markers te clusteren. Geen idee of dit in Android ook zo makkelijk kan maar je kunt in elk geval de achterliggende gedachtes gebruiken :) !

https://developers.google.com/maps/articles/toomanymarkers

[Reactie gewijzigd op maandag 3 juni 2013 17:43]


Door Tweakers user Timons106, maandag 3 juni 2013 19:36

Ik kan jullie mededelen dat het clusteren gelukt is, nogmaals heel erg bedankt voor de tips! :)
Ook cachen we nu alle locaties, en als de database wordt aangepast worden de gegevens opnieuw gedownload.

Door dr0pthebomb, woensdag 5 juni 2013 17:09

Timons106 schreef op maandag 03 juni 2013 @ 09:41:
[...]Wij dachten er aan om alleen de dichtstbijzijnde punten te weergeven en dan alleen andere punten in te laden als je zoekt op een stad of naam.
M.i. is de meerwaarde van een apparaat-specifieke app dat je de unieke eigenschappen van het apparaat in kwestie gebruikt, anders kun je net zo goed een mobiele site bouwen. Ik zou dus vooral gebruik maken van de GPS-functie, en niet standaard alles tonen maar alleen dat, wat zich in een door de gebruiker in te stellen straal van de huidige locatie bevindt inderdaad.

"spelling en grammatica fouten": dat is of "spelling en grammaticafouten" of "spel- en grammaticafouten" :)

Reageren is niet meer mogelijk