In diesem Beitrag wird ein Überblick über die Programmiersprache Swift gegeben und welchen Fortschritt ich bisher mit dieser gemacht habe, um meine Webseite Teipin.de als iOS-App anzubieten. Viel Spaß :)
1. Swift
Swift [1] ist eine Programmiersprache von Apple. Sie wurde 2014 bei der Entwicklerkonferenz Worldwide Developers Conference (WWDC) vorgestellt und seit dem immer wieder verfeinert und verbessert. Zu diesen Verbesserungen gehören folgende:
Version | Datum | Änderungen |
---|---|---|
Swift 1 | September 2014 | Initiale Verteilung der Programmiersprache Swift. |
Swift 2 | Juni 2015 | throw , try & catch sind eigeführt worden. Später wurde die freie Verwendung von Swift für kommerzielle Projekte unter der Lizenz Apache-2.0 ermöglicht. |
Swift 3 | Juni 2016 | Beim Wechsel von der Swift Version 2 auf 3 sind enorm viele Änderungen (über 100) vorgenommen worden, die in dem Migrationsleitfaden von Apple wiederzufinden sind. Der wahrscheinliche bisher größte Sprung in der Weiterentwicklung von Swift. |
Swift 4 | September 2017 | Einfacherer Umgang mit Strings und die Einführung von Collection Typen |
1.1 Aus der Sicht eines Entwicklers
Zu Anfang stellte sich mir die Frage: Was ist den so toll an Swift? In den letzten 9 Jahren habe ich eine Menge an Programmiersprachen gelernt (kleiner Auszug: C#, Python, Java, PHP, VB, ...) und auch in Projekten verwendet. Aber tatsächlich sticht Swift mit seiner Eigenart irgendwie aus der Masse hervor. Es ist echt einfach in die Syntax des Quellcodes einzusteigen und es gibt inzwischen viele Tutorials und Anleitungen im Internet.
1.2 Wie steige ich am besten in Swift ein?
Für den Einstieg in die Programmiersprache Swift, bietet Apple ein kostenloses E-Book im iBook-Store an (Link). Wenn du interessiert bist, dann schau einfach mal da rein ;)
Ich habe glücklicherweise den YouTube Kanal codingenieur [3] gefunden, der sowohl einen guten Einstieg in Swift als solches bietet aber auch kleinere Tutorials (Tasdchenrechner, ToDo-Liste). Wer also an dieser Stelle immer noch ernsthaft überlegt sich mal daran zu versuchen, der sollte dort vorbei schauen.
1.3 Die Nachteile
Ja, bzw. Jain. Um Swift programmieren zu können, braucht man XCode. Dies ist eine Integrierte Entwicklungsumgebung (IDE) von Apple, die hauptsächlich für die Entwicklung von Apps ausgelegt ist (Ja man kann auch noch andere Sachen damit machen). XCode ist allerdings nur unter MacOS installierbar. Das heißt man braucht ein MacBook oder ein Mac (Die Untergruppen der Produkte lasse ich jetzt mal außen vor). Wer jetzt aber keine Lust hat sich einen neuen Laptop oder Computer von Apple zu kaufen, der hat noch eine andere Option: Hackintosh [4] . Wenn ihr ein Windows-Gerät besitzt, dann könnt ihr MacOS als virtuelle Maschine (VM) nebenbei laufen lassen, oder mit sehr viel Aufwand MacOS auf eurem Nicht-Apple-Gerät installieren. Die VM ist meiner Erfahrung nach die einfachere und entspanntere Lösung ;)
2. Teipin.de auf dem iPhone? Geil!
Von meiner Bowling-Webseite Teipin.de habe ich bereits in den folgenden Beiträgen erzählt und auch wie man seine Webseite zu einer Webapp umbauen kann:
- Teipin.de #01 - Der Beginn
- Teipin.de #02 - Erste Schritte
- Teipin.de #03 - Von der Website zur Webapp
Jetzt geht es aber um die native Lösung: Teipin.de als eigenständige iOS-App! Die Oberfläche ist bisher noch recht rudimentär.
2.1 Internetverbindung vorhanden?
Natürlich soll die iOS-App auf die selben Daten zugreifen können, wie man auch über die Webseite zu sehen bekommt. Das setzt eine bestehende Internetverbindung voraus. Dafür habe ich mir dieses kleine Script gebaut:
//
// Reachability.swift
// Teipin-App
//
// Created by CuBy on 01.02.18.
// Copyright © 2018 CuBy. All rights reserved.
//
import Foundation
import SystemConfiguration
public class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in(sin_len: 0, sin_family: 0, sin_port: 0, sin_addr: in_addr(s_addr: 0), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0))
zeroAddress.sin_len = UInt8(MemoryLayout.size(ofValue: zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(to: &zeroAddress) {
$0.withMemoryRebound(to: sockaddr.self, capacity: 1) {zeroSockAddress in
SCNetworkReachabilityCreateWithAddress(nil, zeroSockAddress)
}
}
var flags: SCNetworkReachabilityFlags = SCNetworkReachabilityFlags(rawValue: 0)
if SCNetworkReachabilityGetFlags(defaultRouteReachability!, &flags) == false {
return false
}
let isReachable = flags == .reachable
let needsConnection = flags == .connectionRequired
return isReachable && !needsConnection
}
}
Der Aufruf funktioniert direkt über die gerade gezeigte Klasse. Dazu wird die Funktion isConnectedToNetwork() aufgrufen:
if Reachability.isConnectedToNetwork(){
// Internet da
} else {
// Internet weg
}
2.2 Die spartanische Oberfläche der App
Da die Oberfläche noch nicht ganz so viel Liebe erfahren durfte, hier nur 4 Screenshots, die die eigentliche Funktionalität der App ganz gut widerspiegeln:
2.3 Was kommt als nächstes?
Die Spiele können in Spielbereiche eingeteilt werden. D.h. das diese auch in der Detailansicht zu sehen sein müssen. Weiterhin soll die Manipulation von Spielen und Spielbereichen sowie deren Erstellung und Löschung möglich sein. Natürlich wird die Oberfläche noch hübsch und bunt gemacht. Soll ja Spaß machen das zu bedienen ;)
Und wenn dann erstmal alles fertig ist, dann kommt die App nicht in den AppStore. Was?! Warum?!
2.4 Apple Entwickler Lizenz
Um in den AppStore von Apple seine selbst gebauten Apps einstellen zu dürfen, muss man jährlich einen Betrag von 99$ bezahlen [5]. Zum aktuellen Zeitpunkt bin ich noch nicht bereit dazu so viel Geld auszugeben, um den Benutzern meiner Webseite mehr Komfort zu bieten (z.B. Push-Notifications). Mal schauen ob ich meine Meinung dazu in Zukunft noch ändern werde :)
3. Fazit
An sich ist Swift eine echt geile Programmiersprache mit dem ein oder anderen bitteren Beigeschmack. Man braucht entweder einen Apple-Computer oder viel Geduld, um sich einen Hackintosh zu bauen. Man zahlt jährlich 99$, auch wenn man nur eine kostenlose App bereitstellen möchte. Naja. Ich bleib erstmal dran Teipin.de als native iOS-App umzusetzen und halte euch in Zukunft auf dem laufendem ;)
Danke fürs Lesen
CuBy
PS: Fehler bei der Rechtschreibung und Grammatik sind stilistische Mittel und vom Autor bewusst platziert worden. :-D
Quellen
[1] Wikipedia - Swift (Programmiersprache)
[2] The Swift Programming Language (Swift 4.0.3 Edition) Cover
[3] YouTube Kanal - codeingeneur
[4] Hackintosh Webseite
[5] Apple Developer Program - How the Program Works
[6] Pixabay.com - geralt - USA Dollar Objekt Arbeit
Upvote with 20% by @steembeamer
Hey cuby, Ich habe großen Respekt vor allen Leuten, die so viele Programmiersprachen beherrschen! Ich würde das auch gerne beherrschen.
Auße HTML (was ja nicht als Programmiersprache gilt) habe ich mich bisher nur ein wenig mit Javascript und PHP auseinandergesetzt.
Denke mir oft, wenn ich mit Daten hantiere, dass Programmierkenntnisse sehr von Vorteil wären, um effizienter zu arbeiten und Dinge automatisieren zu können.
Naja, hoffe man sieht sich auf Steemit und alles Gute,
Chris aka smallstepschange
Danke für deinen Kommentar. Im Prinzip ist es so, dass man in den meisten Fällen nur eine Programmiersprache richtig gut können muss, um schnell andere Programmiersprachen zu können. Quasi die Grundstruktur kapieren und dann Vokabeln lernen :-D
Stimmt! Das Gute ist, dass man die Vokabeln auch jederzeit nachschauen kann. Man muss nur Ideen haben, was alles möglich ist, und wie man am besten danach sucht. Und im Internet gibt es ja auch viele Supportmöglichkeiten.
Trotzdem: Chapeau!
CU,
Chris aka smallstepschange
Warning! This is a new scam account, that want to copy us. The original you will find here: https://steemit.com/steemit/@resteem.bot/7yazyw-steemit-resteem-bot-faq
Please help us to flag him down.
@resteem.bot