Goedendag allen,
Laten we meteen met de deur in huis vallen: wij gaan als profielwerkstuk een app maken voor roosterwijzigingen, en zijn een heel eind gekomen, maar heb hulp nodig.
Ons technische deel bij het profielwerkstuk zit als volgt in elkaar:
We hebben een website in elkaar geknutseld (met php, sql en allerhande rommel) waarop de roostermaker van onze school de wijzigingen in kan voeren. Dit wordt dan opgeslagen in een database en dat is er natuurlijk ook weer uit te halen
Tevens zit er een beheergedeelte bij dat wijzigingen importeert uit de db wat ervoor zorgt dat er ook wijzigingen verwijderd kunnen worden.
Een roosterwijziging ziet er als volgt uit: [week] [dag] [uur] [klas] [groep] [lokaal]
Dus bijvoorbeeld, in week 37 valt de les op dinsdag het 2e uur voor klas 1 A uit (het lokaal-ding wordt alleen gebruikt als er een lokaalwijziging optreedt), dan komt dat als volgt in de database te staan:
37 di 2 1 A.
E.e.a. is ook op te pikken uit de database zonder het beheergedeelte te openen. We hebben een php-scriptje gemaakt dat o.b.v. een URL een wijziging voor een bepaalde klas/groep op een bepaalde dag in een bepaalde week. Denk aan zo'n URL: ../xmlmaken.php?Week=30&Dag=ma&Klas=1&Groep=A. Zo worden alle wijzigingen voor groep 1A op maandag in week 30 opgehaald.
Dit wordt zo weergegeven in een XML'tje:
Nou goed, dat werkt dus allemaal prima, maar zo hebben jullie een beetje achtergrondinformatie over hoe het serverside deel in zijn werk gaat.
Wat nu komt is het belangrijkste deel: een app voor de iPhone maken! Met webdevven hebben we allebei een beetje ervaring, met iPhone-devven hebben we alles zwaar onderschat. Alles leek makkelijk, maar helaas.
Als hier mensen zijn die ons een steuntje in de rug willen geven (dus we verwachten geen hele stukken kant en klare code), zou dat erg welkom zijn. Hier de info over het hoe en wat betreffende de app:
De leerlingen moeten als eerst in een schermpje (2e tab) aangeven in welke clusters/groepen ze zitten. Voor de groepen die mogelijk zijn, is ons een lijst ter beschikking gesteld door de roostermaker. Wij dachten aan een lijst met al die clusters erin, waarna de leerling de clusters waarin hij/zij zit kan aanvinken. Die worden vervolgens opgeslagen in een .txt of zoiets, en daarna hoeft daar eigenlijk niet meer naar omgekeken te worden.
Wat (zeer waarschijnlijk) het moeilijkste deel wordt, is het ophalen van de XML. Dit moet namelijk per vak gebeuren. In de onderbouw is dat makkelijk (klas 1 t/m 3 kennen alleen A t/m F als achtervoegsel), maar in klas 4 tot en met 6 is er een waslijst aan clusters. Een leerling zit ongeveer in 10 tot 12 clusters, afhankelijk van leerjaar en profielkeuze. Voor een keer alle wijzigingen ophalen, zullen dus 10 tot 12 queries moeten worden uitgevoerd op de database. Dat levert dus 10 tot 12 xml-bestanden op, die moeten worden gecombineerd naar een grote XML die vervolgens geparsed wordt tot een overzichtelijk geheel, gesorteerd op uur.
Het is de bedoeling dat de app weet voor welke dag (de huidige) en week (ook de huidige) de wijzigingen moeten worden opgehaald. Klas en groep worden uit het lokale .txt bestandje met de clusters/groepen gehaald. Tevens zou het handig zijn als de gegenereerde (grote) combi-XML (om het even zo te noemen
) lokaal wordt opgeslagen zodat er ook bij geen internettoegang (denk aan iPod touch-gebruikers) er wijzigingen weergegeven kunnen worden.
Even in het kort:
- iPhone app
- Hulp gevraagd, geen complete code die geschreven wordt (delen wel, om op weg geholpen te worden)
- Scherm voor clusters invoeren
- Serie XML's ophalen van webserver en die combineren tot een grote XML en die opslaan
- 'Grote' XML parsen en alles overzichtelijk weergeven
Nou goed, dat was een hele lap tekst
. We zullen nog even aangeven wat we allemaal al geprobeerd, gedaan en gevolgd hebben en waarom het niet lukte.
- Google op tutorials (lijst van gebruikte tutorials hieronder). Dit werkte allemaal niet. We vonden allerlei tutorials die boeken sorteren, die fictieve RPG-characters opslaan en uitlezen, scoretabellen etc. etc. Problemen waar we tegen aanliepen waren bijvoorbeeld dat er te weinig elementen waren (zoals bij de scores 2 rijen; user en score) en het was eigenlijk ondoenlijk om die tutorial zo aan te passen dat we 5 children in een parent wijzigingen kunnen hebben. Bij de rest van de tutorials wordt eigenlijk alleen maar een lokale XML gebruikt, en dat werkt helaas niet.
- developer.apple.com. Wat we daar vonden was een standaard Apple-XML parser: NSXMLParser. Wij blij, want we dachten iets gevonden te hebben wat het ons gemakkelijk zou maken
Helaas werkt dit alleen op Mac OS X en niet op iOS
.
- Google's XML Parser. GDataXML is an sich prima te gebruiken, maar de tutorial erbij snapten we niet vanwege de menu's die verschillend zijn. In de tutorial wordt namelijk XCode 3 gebruikt, en op ons Mac-geval staat XCode 4. Al die beschrijvingen zijn leuk, maar het vertalen van XCode 3 naar XCode 4 is, eh, niet leuk.
- Allerhande voorgeschreven XML-parsers. Halen allemaal niks van een webserver o.i.d. af, dus niet heel leuk om mee te werken als het niet doet wat je nodig hebt.
- TouchXML: Primitieve XML-parser, van voor Apple met z'n NSXMLParser. Schijnt te oud te zijn om fatsoenlijk te implementeren.
Lijst van gebruikte tutorials, websites, enzovoorts:
- http://www.raywenderlich....l-documents-with-gdataxml
- http://stackoverflow.com/...rsing-xml-in-iphone-xcode
- http://forums.macrumors.com/showthread.php?t=665039
- http://www.xcode-tutorials.com/parsing-xml-files/
- http://www.iphonedevx.com/?p=56
- meer die niet in deze browsergeschiedenis staan
Nou, hopelijk is dit een acceptabel verzoek tot hulp in plaats van 'ik bauw een ep en hep hulp nodug'
. Mocht iemand een beetje goed zijn met XCode en ons een steuntje in de rug kunnen geven (in ruil voor een krat bier naar keuze misschien
), dan is dat meer dan welkom!
Alvast bedankt,
Laurens en Meerten
Laten we meteen met de deur in huis vallen: wij gaan als profielwerkstuk een app maken voor roosterwijzigingen, en zijn een heel eind gekomen, maar heb hulp nodig.
Ons technische deel bij het profielwerkstuk zit als volgt in elkaar:
We hebben een website in elkaar geknutseld (met php, sql en allerhande rommel) waarop de roostermaker van onze school de wijzigingen in kan voeren. Dit wordt dan opgeslagen in een database en dat is er natuurlijk ook weer uit te halen
Een roosterwijziging ziet er als volgt uit: [week] [dag] [uur] [klas] [groep] [lokaal]
Dus bijvoorbeeld, in week 37 valt de les op dinsdag het 2e uur voor klas 1 A uit (het lokaal-ding wordt alleen gebruikt als er een lokaalwijziging optreedt), dan komt dat als volgt in de database te staan:
37 di 2 1 A.
E.e.a. is ook op te pikken uit de database zonder het beheergedeelte te openen. We hebben een php-scriptje gemaakt dat o.b.v. een URL een wijziging voor een bepaalde klas/groep op een bepaalde dag in een bepaalde week. Denk aan zo'n URL: ../xmlmaken.php?Week=30&Dag=ma&Klas=1&Groep=A. Zo worden alle wijzigingen voor groep 1A op maandag in week 30 opgehaald.
Dit wordt zo weergegeven in een XML'tje:
code:
1
2
3
4
5
6
7
8
9
| <wijzigingen> <wijziging> <week>30</week> <dag>ma</dag> <klas>1</klas> <groep>A</groep> <naar></naar> </wijziging> </wijzigingen> |
Nou goed, dat werkt dus allemaal prima, maar zo hebben jullie een beetje achtergrondinformatie over hoe het serverside deel in zijn werk gaat.
Wat nu komt is het belangrijkste deel: een app voor de iPhone maken! Met webdevven hebben we allebei een beetje ervaring, met iPhone-devven hebben we alles zwaar onderschat. Alles leek makkelijk, maar helaas.
Als hier mensen zijn die ons een steuntje in de rug willen geven (dus we verwachten geen hele stukken kant en klare code), zou dat erg welkom zijn. Hier de info over het hoe en wat betreffende de app:
De leerlingen moeten als eerst in een schermpje (2e tab) aangeven in welke clusters/groepen ze zitten. Voor de groepen die mogelijk zijn, is ons een lijst ter beschikking gesteld door de roostermaker. Wij dachten aan een lijst met al die clusters erin, waarna de leerling de clusters waarin hij/zij zit kan aanvinken. Die worden vervolgens opgeslagen in een .txt of zoiets, en daarna hoeft daar eigenlijk niet meer naar omgekeken te worden.
Wat (zeer waarschijnlijk) het moeilijkste deel wordt, is het ophalen van de XML. Dit moet namelijk per vak gebeuren. In de onderbouw is dat makkelijk (klas 1 t/m 3 kennen alleen A t/m F als achtervoegsel), maar in klas 4 tot en met 6 is er een waslijst aan clusters. Een leerling zit ongeveer in 10 tot 12 clusters, afhankelijk van leerjaar en profielkeuze. Voor een keer alle wijzigingen ophalen, zullen dus 10 tot 12 queries moeten worden uitgevoerd op de database. Dat levert dus 10 tot 12 xml-bestanden op, die moeten worden gecombineerd naar een grote XML die vervolgens geparsed wordt tot een overzichtelijk geheel, gesorteerd op uur.
Het is de bedoeling dat de app weet voor welke dag (de huidige) en week (ook de huidige) de wijzigingen moeten worden opgehaald. Klas en groep worden uit het lokale .txt bestandje met de clusters/groepen gehaald. Tevens zou het handig zijn als de gegenereerde (grote) combi-XML (om het even zo te noemen
Even in het kort:
- iPhone app
- Hulp gevraagd, geen complete code die geschreven wordt (delen wel, om op weg geholpen te worden)
- Scherm voor clusters invoeren
- Serie XML's ophalen van webserver en die combineren tot een grote XML en die opslaan
- 'Grote' XML parsen en alles overzichtelijk weergeven
Nou goed, dat was een hele lap tekst
- Google op tutorials (lijst van gebruikte tutorials hieronder). Dit werkte allemaal niet. We vonden allerlei tutorials die boeken sorteren, die fictieve RPG-characters opslaan en uitlezen, scoretabellen etc. etc. Problemen waar we tegen aanliepen waren bijvoorbeeld dat er te weinig elementen waren (zoals bij de scores 2 rijen; user en score) en het was eigenlijk ondoenlijk om die tutorial zo aan te passen dat we 5 children in een parent wijzigingen kunnen hebben. Bij de rest van de tutorials wordt eigenlijk alleen maar een lokale XML gebruikt, en dat werkt helaas niet.
- developer.apple.com. Wat we daar vonden was een standaard Apple-XML parser: NSXMLParser. Wij blij, want we dachten iets gevonden te hebben wat het ons gemakkelijk zou maken
- Google's XML Parser. GDataXML is an sich prima te gebruiken, maar de tutorial erbij snapten we niet vanwege de menu's die verschillend zijn. In de tutorial wordt namelijk XCode 3 gebruikt, en op ons Mac-geval staat XCode 4. Al die beschrijvingen zijn leuk, maar het vertalen van XCode 3 naar XCode 4 is, eh, niet leuk.
- Allerhande voorgeschreven XML-parsers. Halen allemaal niks van een webserver o.i.d. af, dus niet heel leuk om mee te werken als het niet doet wat je nodig hebt.
- TouchXML: Primitieve XML-parser, van voor Apple met z'n NSXMLParser. Schijnt te oud te zijn om fatsoenlijk te implementeren.
Lijst van gebruikte tutorials, websites, enzovoorts:
- http://www.raywenderlich....l-documents-with-gdataxml
- http://stackoverflow.com/...rsing-xml-in-iphone-xcode
- http://forums.macrumors.com/showthread.php?t=665039
- http://www.xcode-tutorials.com/parsing-xml-files/
- http://www.iphonedevx.com/?p=56
- meer die niet in deze browsergeschiedenis staan
Nou, hopelijk is dit een acceptabel verzoek tot hulp in plaats van 'ik bauw een ep en hep hulp nodug'

Alvast bedankt,
Laurens en Meerten