[Xcode 4] Profielwerkstuk: roosterwijzigingen importeren

Pagina: 1
Acties:
  • 435 views

Onderwerpen


Acties:
  • 0 Henk 'm!

  • laurenssie
  • Registratie: Oktober 2009
  • Laatst online: 15-08-2024
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:

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 ;) ) 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 :P. 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 O-) ), dan is dat meer dan welkom!

Alvast bedankt,

Laurens en Meerten

Acties:
  • 0 Henk 'm!

  • justahuman
  • Registratie: Maart 2011
  • Laatst online: 07:57
Op een iphone sla je alle data lokaal op in coredata. Je kan de xml data parsen en bv in een dom tree zetten. (die je ook kan gebruiken om de grote xml te generen)


offtopic:
(gebruikt jullie school magister?)

Acties:
  • 0 Henk 'm!

  • dev10
  • Registratie: April 2005
  • Laatst online: 09-09 15:21
- 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 :-(.
NSXMLParser is gewoon beschikbaar vanaf iOS 2.x en hoger. ;)

Wat ik verder vooral zie, is dat jullie helemaal geen ervaring hebben met iOS Development en dat jullie een app willen maken. Op zich niks mis mee, maar met alleen goodwill kom je er niet. Ik denk dat jullie gewoon eens moeten kijken naar een boek wat ingaat op het ontwerpen en ontwikkelen van software voor iOS devices. Zelf heb ik Beginning iPhone 3 Development in m'n boekenkast staan en dat is een boek wat begint bij het begin. Alles wordt goed uitgelegd en met de basis die je dan hebt, moet het niet zo moeilijk zijn om de app te maken die jullie willen maken.

Inmiddels is er van het eerder genoemde boek een nieuwere versie uit: Beginning iPhone 4 Development. (http://www.comcol.nl/detail/72111.htm) Je kunt dit boek ook bij Bol bestellen, maar uit ervaring weet ik dat ze dergelijke boeken niet op voorraad hebben en dat je bestelling dan wordt geannuleerd. :S

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
laurenssie schreef op zaterdag 27 augustus 2011 @ 12:32:
Nou, hopelijk is dit een acceptabel verzoek tot hulp in plaats van 'ik bauw een ep en hep hulp nodug' :+
Nou, je verpakt het heel leuk in een wollig verhaal maar wat is het verschil? Wat is de concrete PRG vraag hier?
laurenssie schreef op zaterdag 27 augustus 2011 @ 12:32:
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 O-) ), dan is dat meer dan welkom!
Hoe is dit geen werving of Kan iemand even...? topic?

Dit topic gaat even dicht. Je mag me per DM (Afbeeldingslocatie: http://tweakimg.net/g/forum/images/icons/dm.gif) even contacteren mocht je nog even hierover willen discussiëren of je topic nader willen toelichten.

[ Voor 9% gewijzigd door RobIII op 27-08-2011 13:39 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.