Skip to content

Daniyus/iosprogrammingwithswift

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

iOS Programmierung (mit Swift)

FHWS - Hochschule für angewandte Wissenschaften Würzburg-Schweinfurt

Zwischen-Aufgabe

Teil 1

Ihr müsst eine Wetter-App bauen!

Die App holt sich bei der Wetter-API von openweathermap die aktuellen Wetter-Daten für einen Ort (im Beispiel Würzburg).

http://api.openweathermap.org/data/2.5/weather?q=wuerzburg

Die zurückgelieferten Daten müssen vom JSON-Format in ein Swift-Datenmodell überführt werden (JSON parsen & in properties ablegen).

Die App soll nun die wichtigen Wetterinformationen für den Nutzer dieser App anzeigen (Label mit Temperatur, Image mit Wettergrafik, usw...)

Wir haben euch Wetter-Grafiken zur Verfügung gestellt. Sie liegen als Sketch-Datei und pngs im Ordner WeatherApp_Assets.

Achtet hier auf Apples HIG! Lasst es schön & Apple-konform aussehen! :-)

Teil 2

Vervollständigt das im Git liegende 07_GesturesTutorial um die vier fehlenden Gesten. Dabei gilt:

  • zwei der vier GestureRecognizer müssen im Code implementiert werden
  • zwei der vier GestureRecognizer müssen im Storyboard verknüpft sein
  • gebt ein Feedback, wenn der GestureRecognizer ausgeführt wird
  • im Simulator können mehrere Finger mit der [alt]-Taste simuliert werden. Die Finger können mit der [Shift]-Taste verschoben werden.

Abgabe-Termin

Die Aufgabe muss bis spätestens Freitag, den 12.02.16 um 7:59 Uhr bei Andy & Flori als gültiger Git-Link eingegangen sein, so dass wir das Projekt auschecken können!

Der abgegebene Code muss ohne Fehler compilierbar sein und darf nicht(!) abstürzen. 'Warning Free' gehört zum guten Ton.

Jedes Teammitglied muss die grundlegende Funktionsweise der eigenen App erklären können.

Prüfungszeiten werden noch per Mail bekannt gegeben.

Tipps:

  • Dieses Dokument regelmäßig prüfen, ob es aktualisiert wird
  • Auf einem iPad/iPhone funktionieren Gesten besser als im Simulator (Peter gibt euch gerne Test-Geräte)
  • Darauf achten, dass die App nicht abstürzt!
    • kann beim String "Würzburg" passieren
    • wenn keine Internet-Verbindung besteht
    • wenn ein leerer Suchstring ("") angegeben wurde
    • kann immer dann passieren, wenn ihr auf ein nil Objekt zugreift
    • kann passieren, wenn ein Wetter-Typ geliefert wird, für den keine Grafik existiert
    • ...
  • Versioniert euren Code mit Git!
  • Peek & Pop sind Low-Hanging-Fruits
  • Es besteht kein Zwang die vorgegebenen Wetter-Grafiken zu verwenden (Sie liegen immer noch als Sketch-Datei und pngs im Ordner WeatherApp_Assets). Es können auch eigene Grafiken verwendet werden. Beachtet dann die korrekten Auflösungen (file.png, [email protected] & [email protected]).
  • Wenn kein AutoLayout verwendet wird, dann doch bitte StackViews. AutoLayout muss erklärt werden können (z.B. Was ist eine Intrinsic Size)
  • Denkt an weak
  • Gesten-Tipps:
    • CGAffineTransformScale(sender.view!.transform, sender.scale, sender.scale)
    • CGAffineTransformRotate(currentTrans, rotation)
    • sender.translationInView(self.view);sender.view!.center = CGPoint...;
    • sender.setTranslation(...)
  • drawFromPoint für FingerTouch
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let touch = touches.first! as UITouch
        start = touch.locationInView(view)
        
    }
    
    override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
        let touch = touches.first! as UITouch
        let end = touch.locationInView(view)
    }


    func drawFromPoint(canvas:UIImageView, start: CGPoint, toPoint end: CGPoint , withColor:UIColor, lineWidth:CGFloat, alpha:CGFloat) -> UIImage {
        UIGraphicsBeginImageContext(canvas.frame.size)
        let context = UIGraphicsGetCurrentContext()
        canvas.image?.drawInRect(CGRect(x: 0, y: 0,
            width: canvas.frame.size.width, height: canvas.frame.size.height))
        CGContextSetLineWidth(context, lineWidth)
        CGContextSetAlpha(context, alpha);
        CGContextSetStrokeColorWithColor(context, withColor.CGColor)
        CGContextBeginPath(context)
        CGContextMoveToPoint(context, start.x, start.y)
        CGContextAddLineToPoint(context, end.x, end.y)
        CGContextStrokePath(context)
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        return newImage
    }

Allgemeine Informationen

Teams

  1. Werb, Titzian; Hudalla, Joseph; Rost, Maximilian
  2. Bogomaz, Veronika; Yauk, Arina
  3. Nguyen, Tony; Burkhard; Jan, Ul-Haque, Danial
  4. Mierzwa, Filip, Lienert, Steffen, Eder, Thimo
  5. Hieser, Alexander; Barwanietz, Dominic; Schäfer, Philipp
  6. Keller, Felix; Hackel, Julius
  7. Gerasch, Stefan; Balz, Sebastian
  8. Triebig, Kim
  9. Volk, Christian
  10. Kiesel, Michael

About

iOS Programmierung (mit Swift)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 52.5%
  • Objective-C 45.8%
  • Shell 1.7%