iRepair

iPhone-udvikling #5 – Links fra nettet

Trods mere end nu 20.000 programmer i App Store halter det fortsat med de danske af slagsen. Der findes selvfølgelig programmer lavet til danske forhold, men det kunne være meget bedre. I den kommende tid vil iPhoneguide derfor sætte mere fokus på udviklingen af programmer til iPhonen, med det formål at få flere folk i gang med at udvikle danske programmer. Helt konkret sker det med en artikelserie der viser hvordan man kommer i gang med at udvikle. Artikelserien løber i foreløbig seks uge

De sidste par uger har vi brugt på at lave en lille app hvor vi kan oprette, slette og åbne links.
Øvelsen har været udemærket, men denne funktionalitet (bogmærker) ligger allerede i MobileSafari.

Så hvis vi skal tjene nogle $ på AppStore må vi finde på noget bedre ;-) .

I denne uge laver vi en hurtig lille app der viser links, hentet fra en xml fil på nettet! Det er slet ikke svært, faktisk lettere end det vi lavede i sidste uge. Især med det fundament vi har opbygget gennem de forrige artikler.

Sider: 1 2 3 4 5 6 7

Skrevet af Martin Wolsing, 20/02 2009
Relaterede indlæg

Kommentarer
Subscribe to RSS
  •  

    Håber i kan følge med. Denne app er ret skæg…

    Dette er faktisk en app man sagtens kunne udgive!

    Hvis i skal køre den på en iphone, modsat simulatoren, skal der nok lige arbejdes lidt med hvor den gemmer den lokales fil.

    20. februar 2009 @ 09:01

  •  

    Der ser godt ud :) skal prøve det når jeg kommer hjem.

    20. februar 2009 @ 09:26

  •  

    Helt enig, det er en super app denne gang. Med lidt modifikationer er anvendelsesmulighederne nærmest uendelige. I dette tilfælde f.eks. kunne man inkludere programmets ikon foran navnet og antallet af stjerner i højre side. Under navnet kunne stå, kategori og pris. Det ville være ret lækkert. Nok ikke en betalings App, men det kunne jo være andre ting end lige links til anmeldelser på iPhoneguide, der var tale om. Prøv f.eks. at tjekke et af apples sample-programmer: https://developer.apple.com/iphone/library/samplecode/SeismicXML/index.html Det viser de 50 seneste jordskælv verden over. XML-feeded er et offentligt tilgængeligt feed fra en eller anden amerikansk jodskælvs-myndighed. Man kunne f.eks. udvide det til at vise placeringen på en kort, når man trykker på det enkelte skælv. Man kunne også bruge GPS på en smart måde.

    Godt du selv nævner det med filens placering, Mikkel, for det har jeg faktisk et spørgmål til. Men det er mere fordi jeg ønsker at inkludere en default fil i projektet. Grunden er, at hvis ikke man har netværksforbindelse første gang man starter det, er programmet jo ubrugelig, i og med der så intet indhold er. Hvis man har en lokal fil fra starten af (uanset hvor uopdateret den så er), er der i hvert fald en eller anden form for indhold.

    Jeg prøver selv at finde en løsning (det lære man jo nok mest af) :-)

    En andet spørgmål, Mikkel: I hvor høj grad skal man tage højde for at folk ikke har f.eks. netværksforbindelse, at serveren er nede osv.? Jeg mener, hvor meget skal man gøre ud af fejlmeddelelser a al “serveren er ikke tilgængelig i øjeblikket”, “du har ikke netværksadgang” osv.?

    20. februar 2009 @ 09:31

  •  

    Jeg har tidligere fået afvist en opdatering til iTog pga jeg ikke kom med en fejl meddelelse.

    Den letteste måde at gøre dette, er at få fat i Apples reachability sample app. Hive reachability.h og .m over i en projekt.

    Importere .h i sin appdelegate og lave noget der ligner

    BOOL con = [[Reachability sharedReachability]isHostReachable:@”http://www.iphoneguide.dk”];

    if(!con){
    UIAlertView* alertView =[[UIAlertView alloc]initWithTitle:@”fejl!” message:@”ingenforbindelse!” delegate:self cancelButtonTitle:@”exit” otherButtonTitles:nil];
    [alertView show];
    [alertView release];

    }

    øverst i applicationdidfinishlaunching

    20. februar 2009 @ 09:41

  •  

    Så er det mig igen ;)

    Jeg kan ikke få det på side 4 til at virke. Når jeg kører App’en, er der ikke noget, bortset fra “Anmeldelser” og nogle tomme celler.

    Hvad mangler der?

    20. februar 2009 @ 23:08

  •  

    @jackass

    Prøv at hente koden jeg har vedhæftet sidst i artiklen og se om ikke det virker.

    20. februar 2009 @ 23:59

  •  

    Det er det samme når jeg har hentet den vedhæftede fil!

    21. februar 2009 @ 11:05

  •  

    PS. Kan du (Mikkel) ikke lave en “ordbog”, med hvad man kan skrive af kode/hvilke koder der findes?

    21. februar 2009 @ 11:20

  •  

    jackass, prøv st slette links.xml, den ligger sikkert i roden af dit harddisk.

    Jeg kan ikke lave en ordbog, men xcode indeholder meget god dokumentation for alle klasser og biblioteker…

    21. februar 2009 @ 15:13

  •  

    @Mikkel

    Så vidt jeg kan se, opdateres tabellen ikke når man trykker på “opdater”. Det er kun xml-filen der opdateres, mens det der står på skærmen bliver ved med at være det samme , dvs. det er først næste gang man starter programme, at den opdaterede fil indlæses.

    Er det ikke muligt på en nem måde, at få oversigten opdateret med det samme, når man trykker på opdater – eller kræver det større ændringer?

    21. februar 2009 @ 21:06

  •  

    Aarghh

    En lill ebug

    Inde i refresh links skriver du noget ala

    [self.tableView reloadData];

    21. februar 2009 @ 21:45

  •  

    @Mikkel

    Når man tester på iPhonen kommer der en fejlmeddelelse omkring dato/tids-formateringen:

    ‘NSDate’ may not respond to ‘-description WithCalendarFormat:timeZone:locale:’
    (Messages without a matching method signature

    Den kommer som sagt kun på iPhone og ikke i simulatoren. Programmet kører dog fint nok så det er bare en skønhedsting.

    Jeg har her en løsning, omend jeg ikke ved om det er den “rigtige”:

    1) Først henter jeg datoen

    NSDateComponents *comps = [[NSCalendar currentCalendar] components:kCFCalendarUnitMonth|kCFCalendarUnitDay fromDate:[NSDate date]];

    Nu kan dag og måned hentes via [comps day] og [comps month]

    2) Jeg konverterer dem til text string (fordi jeg vil indsætte en skråstreg mellem de to tal)

    NSString* datoMonth = [NSString stringWithFormat:@"%d", [comps month]];
    NSString* datoDay = [NSString stringWithFormat:@"%d", [comps day]];

    3) Nu da de er konverteret til text, bruger jeg stringByAppendingString til at samle tre strenge til en og sætter knappen til denne:

    self.navigationItem.leftBarButtonItem.title = [datoDay stringByAppendingString:[@"//" stringByAppendingString:datoMonth]];

    Det skal siges, at ovenstående ikke sætter tidspunktet, men kun datoen, det er dog fint til mit behov så derfor har jeg ikke undersøgt det nærmere.

    Om det kan gøres mere simpelt ved jeg ikke, men det fungerer i hvert fald og giver ikke fejl når applikationen installeres på telefonen.

    24. februar 2009 @ 09:15

  •  

    Ok,
    jeg vil kigge det igennem…

    “warnings” er selvfølgeliog irreterende, men som du har opdaget, ikke kritiske (så længe man har lidt styr på hvilek warnings man har, og hvorfor)….

    Hvad skal vi snakke om i næste og pt sidste artikel??

    24. februar 2009 @ 10:36

  •  

    @mikkel

    ANg post #4 herover, så kan jeg ikke få det til at virke. Der kommer et hav af fejlmeddelelser.

    24. februar 2009 @ 19:44

  •  

    hvilke fejl???

    24. februar 2009 @ 20:00

  •  

    Hvad med noget om App’s med Tab Bars? Det ville i hvert fald være brugbart.

    24. februar 2009 @ 20:15

  •  

    @Mikkel

    Alt for mange. :-) Jeg har droppet det og istedet lavet en alert-box der fortæller at databasen ikke kunne opdateres.

    @alle

    Jeg har i øvrigt indsendt endne en app til review hos App Store. Den belv påbegyndt fredag eftermiddag og er altså nu klar til salg. Den bygger på principperne gennemgået i ovenstånde artikel. Blot har jeg udvidet det lidt.

    1) xml-feedet er noget andet end links og filen har en anden struktur. Jeg parser derfor filen med den indbyggede parser. Jeg har derudover inkluderet en xml-fil i programmet, så der er noget at arbejde med fra starten, hvis man ikke skulle have netforbindelse. Den kopieres så til et sted hvor den kan overskrives (når man trykker på opdater).

    2) Indholdet lægges i et tableview, som i artiklen, blot har jeg modificeret cellerne så de kan formateres som man vil (dette var overraskende nemt at gå til, og giver utroligt meget brugervenlighed ift. standarden).

    3) Fra table-view kan man gå til detaljeret view, hvor man kan nogle ting. Dette var den proces der voldte størst besvær, indtil jeg fandt ud af, at man kunne gøre tableview mindre end hele skærmen og på den måde få plads til andre ting (jeg ikke kunne finde ud af at putte i en celle).

    4) Info-view, som er såkaldt modalView. Dvs. et view der kommer glidende nedefra når man trykker på en info-knap og glider tilbage igen bagefter.

    Resume: Ud fra artiklen har jeg med små modifikationer kreeret en app der kan sælges i App Store. Jeg har stort set arbejdet i døgndrift, men jeg er blevet meget klogere udi iPhone-udvikling så det er prisen værd. Jeg har stadig mange ideer, der inkluderer tableView og xml-feeds så jeg udforsker det videre.

    25. februar 2009 @ 01:41

  • Benjamin

     

    Jeg er helt ny med al programmering har fulgt med i artikelserien.

    Det jeg har brug for er en liste en søgemaskine (som søger fra listen) og link til en ny side med tekst fra listen. Det er meget simpelt jeg kan bare ikke finde ud af det.

    Jeg ville være meget taknemlig hvis jeg kunne få hjælp.

    25. februar 2009 @ 10:47

  •  

    @Benjamin

    Jeg er netop ved at lave det du efterspørger, jeg skal se om jeg har tid til at lave en tutorial, men den bliver jo ikke klar de første par dage. Jeg overvejer det lige, men jeg kunne evt. tage over når Mikkel sidste artikel kommer på fredag, dvs. starte næste fredag.

    Vi kunne også alle sammen lave en app i fællesskab, dvs. at vi samarbejder om at udvikle et færdigt program.

    /martin

    25. februar 2009 @ 11:26

  • Benjamin

     

    lyder godt :)

    jeg har næsten alt andet klar så glæder mig meget til hvordan det kommer til at se ud.

    25. februar 2009 @ 16:17

  • Benjamin

     

    Der er en tig jeg godt vil vide. Kan det godt lade sig gøre at lave et program til app store, udgive det og alt uden at der er nogle udgifter?

    25. februar 2009 @ 19:31

  •  

    @Benjamin

    Det er ikke muligt at udgive en app uden udgifter, da man skal betale 99$ for en App Store licens. Men hvis din app er god, så bliver pengene jo hurtigt tjent ind igen :)

    25. februar 2009 @ 21:14

  • Benjamin

     

    Ok kan man så have så mange programmer man vil og er der tidsbegrensnig på licensen ?

    25. februar 2009 @ 22:05

  •  

    Man kan udgive ligeså mange apps man vil, de skal dog godkendes af apple.

    De 99$ dollars gælder for et år….der er pt ikke nogen der ved hvad der sker når det år er gået….

    25. februar 2009 @ 22:59

  • Benjamin

     

    Det er da ik så fedt hvis man ikke når at tjene det hjem. Men så tror jeg at jeg venter til jeg har 2 programmer klar før jeg køber licens. Det er jo ikke noget vildt togtidsprogram der bare sælger helt vildt, men bare noget simpelt. Så er det ik sikkert der er så mange som vil købe det selvom jeg selv ville gøre det.

    25. februar 2009 @ 23:49

  •  

    Benjamin,

    hvis du laver noget til det internationale marked er der ret stor sansynlighed for at du kan sælge et par hundrede apps…

    26. februar 2009 @ 10:59

  • Benjamin

     

    Ja det kan godt vare den bliver oversat til svensk og engelsk. (er halv svensker)

    Der er heller ikke nogen lignende app, ikke hvad jeg kan finde i hvert fald. Det øger vel salget lidt

    Martin
    Hvormang periodiske system har du solgt?

    26. februar 2009 @ 14:42

  •  

    Hvis man gerne vil lave sådan en for andre hvor man kan se news fra andre sider hvordan gør man så med den hvor der står php til sidst hvor finder man den fra andre sider håber i forstår hvad jeg siger?

    21. marts 2009 @ 14:52

  • Søren Høvring

     

    Hej med dig Mikkel..

    jeg er vildt begejstret over denne serie, endelig kan vi der har meget stor interesse få lidt viden om det, jeg synes SDK’en er en meget stor ting at begive sig ud i, men jeg har nogle spørgsmål faktisk en del.. håber du har lyst til at svare dem i alt almindelighed:

    1. Kan du fortælle mere om hvordan man benytter sig af alle de API moduler apple giver os mulighed for at bruge?
    2. Har du lyst til at vi afholder et lille bette arrangement, evt. hvor du fortæller lidt om programmeringen? Og at vi leger os lidt frem og tilbage, dette kunne være enormt skægt, og især hvis vi kan lære noget af hinanden, selvom det i første omgang nok er dig der skal lære os andre noget ;)

    Vedr. Itog

    Så synes jeg virkelig det er en fed app, desværre virker den ikke mere på vores 3.0, men jeg vil meget gerne vide hvordan du har lavet den, ikke at du skal sige hvordan du har kodet den, men er meget interesseret i at vide om du har en aftale med rejseplanen.dk eller om du bare henter data derfra?/hvordan du gør det? Via hvad(XML ?)? Eller om det er gratis og kan benyttes af alle osv.osv.osv.? Hvordan og hvorledes?

    30. marts 2009 @ 19:45

  • Brian Andersen

     

    Kan se det er lang tid siden nogen har skrevet noget, men håber der stadigvæk er nogen derude :)
    Jeg har samme spørgsmål som Søren Høvring.:

    Citat:
    men jeg vil meget gerne vide hvordan du har lavet den, ikke at du skal sige hvordan du har kodet den, men er meget interesseret i at vide om du har en aftale med rejseplanen.dk eller om du bare henter data derfra?/hvordan du gør det? Via hvad(XML ?)? Eller om det er gratis og kan benyttes af alle osv.osv.osv.? Hvordan og hvorledes?
    Citat slut:
    Nogen der kan forklare dette. Hvordan henter i data?

    12. november 2010 @ 10:57

Skriv en kommentar

For at kommentere skal du udfylde navn og mailadresse. Du kan også oprette en profil på siden. Du finder registreringsformen nederst i sidebaren i højre side (klik på "Opret").