Allgemein

Better Location Sharing with Shareloc

It's finally been done and I'm very happy to see Shareloc in the iOS App Store. The first prototype was created almost a year ago, the backend api has been rewritten 3 times and the app already shows its second redesinged UI. Overall I'm very satisfied with the current state and looking forward to push the app further.

Why yet another location sharing app?

Good question and I heard it a lot telling people about Shareloc. So I want to explain you how it all came together. In the beginning there was a simple need. I just wanted to share my location with my wife and my friends. And in this case there are not only alreadx exisiting some apps for that, it's an iOS integrated feature. So I used it and I was disappointed because it didn't work as expected. Then I tried other location sharing services on iOS including glympse, facebook and google maps. But none did satisfy all of my requirements and those are not that special in my opinion. Basically there are 3 obvious features that I want:

  • Ease of use: It has to be really easy and fast to use. If it takes me more than 5 seconds to share my location, I probably won't use the app.
  • Accuracy: The shared location should be as accurate as possible. If the person I shared my location with only knows my position up to 100 meters accurate, then location sharing looses some use cases for me.
  • Speed: The update interval for my location should not be limited. If there is a new location available, it should be available to my shared contact immediately.

And then there is a fourth and implied feature: security! It's not last because it's least important, it's here because the user can't see it. You maybe can check if the data transfer is encrypted, but you don't know how long the location data are stored and with whom they are shared.

As all services I tested did at least fail two of those features I created a small prototype testing if the GPS on the iPhone was accurate enough to fulfill my needs. As it turns out: Yes! And now here I'm presenting Shareloc the location sharing service living up to my and hopefully also your needs and expectations.

How are you making money with a free app?

In the current state: I'm not and that is fine for me. I'm a freelance software developer and Shareloc is a some kind of work sample for people who may want to hire me. Also the operating costs of Shareloc are pretty low, so don't expect the app to loose it's current "free"-pricetag.

That doesn't mean there are no plans to monetize the app at all. In the future it might be possible to buy some extra features via an in-app-purchase or make little donations, but that are still dreams of the future.

What's next?

Shareloc is working great as it is, but it is still an 1.0, and the plans for 1.x- and 2.x-versions have been around since the beginning. During the developement and beta testing I created a backlog of ideas and feature requests that I'm now prioritizing. Also if you have a feature request please use the contact form on the Shareloc website to share it with me.

Also if you like Shareloc and would like to see new features before everybody else, just let me know and I will add you as a beta tester.

 

Meine erste eigene iPhone (Location Sharing) App

Der Vorsatz eine eigene App im Apple Store zu haben besteht schon lange, doch irgendwie hat es bis jetzt nie geklappt. Und das obwohl ich schon 6 Jahre für die iOS Plattform programmiere. Nachdem ich inzwischen sogar selbständiger iOS Entwickler bin, konnte ich diesen Umstand so nicht belassen. Es blieb die Frage was die eigene App eigentlich machen bzw. welches Problem sie für mich, aber vor allem die Nutzer, lösen soll. Die kurze Antwort darauf ist: Location Sharing. Der primäre Grund dafür ist, dass ich mit den vorhandenen Lösungen unzufrieden war. Entweder waren diese zu umständlich, die Nutzeroberfläche nicht durchdacht, der Dienst zu langsam, ungenau oder unzuverlässig. Damit waren auch schon die Ziele der neuen App definiert: Einfach, Schnell, Präzise, Zuverlässig und da es hier um Positionsdaten von Nutzern geht, mit höchster Priorität auch Sicherheit.

Was ist dieses "Location Sharing" und wozu brauche ich es?

Mit dem Begriff "Location Sharing" wird die Möglichkeit beschrieben, den eigenen Standort mit einer anderen Person zu teilen. In der Regel wird dieser Person einfach eine Nachricht mit einem Link zu einer Webseite gesendet, über die der eigene Standort auf einer Karte angezeigt werden kann. Der Andere weiß somit wann ich mich wo befinde. Doch wozu nutze ich diese Funktion?

  • Jemanden wissen zu lassen, dass ich mich gerade auf dem Weg befinde. Egal ob der ich von der Arbeit nach Hause fahre, oder mich mit Freunden treffe.
  • Treffen ohne genauen Treff- und Zeitpunkt, wie zum Beispiel beim Shopping, in einem Park oder einem Konzert.
  • Den richtigen Weg finden. Wenn man in einer unbekannten Umgebung nicht weiter weiß, kann man einfach den Standort teilen und sich von einem Bekannten den Weg erklären lassen.

Es gibt aber viele weitere Situationen, in denen ich inzwischen gerne meinen Standort teile.

Aktueller Stand

Seit der Idee und Konzeption ist nun schon einige Zeit vergangen. Da es sich bei einem solchen Dienst nicht "einfach" nur um eine App handelt, sondern auch um einen Webservice, eine Webseite und ein paar weitere Dinge, war auch wirklich viel zu tun. Das meiste ist nun aber geschafft und ein Ende der Entwicklung in Sicht. Mit dem Ergebnis bin ich bisher sehr zufrieden, seit wenigen Monaten läuft bereits ein geschlossener Betatest des Dienstes. Entsprechend aktueller Planung wird die App im ersten Halbjahr 2017 im App Store veröffentlicht. Mehr möchte ich jetzt hier aber noch nicht verraten.

Betatester gesucht

Um die Zuverlässig- und Skalierbarkeit der App besser beurteilen zu können, benötige ich aktuell noch ein paar Betatester. Wer andere Dienste, wie das in iOS integrierte Teilen des Standortes oder Apps wie Glympse regelmäßig nutzt und daran interessiert ist meine App zu Testen, kann sich über das folgende Formular zum Betatest anmelden. Wichtig ist, dass die App nur für das iPhone gemacht ist, Nutzer eines iPads oder anderer Smartphones können diese somit aktuell nicht installieren. Nach erfolgreicher Anmeldung sende ich Dir eine TestFlight Einladung zur App, diese enthält eine Anleitung wie Du die App auf Deinem iPhone installieren kannst. Zusätzlich erhältst Du eine Einladung zu einem Slack Channel, den ich für die Kommunikation mit den Testern nutze. Dort kann man mich am einfachsten direkt erreichen, ob mit Fragen, Ideen oder Problemen.

MacOS Mail: "Google-Konto: Anmeldeversuch blockiert"

Wer die Meldung "Google-Konto: Anmeldeversuch blockiert" schon einmal bekommen hat, wird sich fragen woran das liegt. In meinem Fall wurde der E-Mail-Abruf auf meinem MacBook Pro in Mail verhindert und ich habe folgende Meldung erhalten.

 Anmeldeversuch gesperrt – Google-Konto in MacOS Mail gesperrt

Anmeldeversuch gesperrt – Google-Konto in MacOS Mail gesperrt

Ursache

Wenn man sich durch den Prozess klickt, erfährt man auch aus welchem Grund Google den Account gesperrt hat.

 Ursache der Account-Sperrung

Ursache der Account-Sperrung

In meinem Fall handelt es sich hier aber nicht um ein ungewöhnliches Ereignis. Die Ursache war ein regulärer E-Mail-Abruf. Das besonders ärgerliche an dieser Meldung ist, dass das Fenster nicht geschlossen werden kann. Es ist modal und auch nach Abschluss der Sicherheitsüberprüfung ist die "Fertig"-Schaltfläche nicht aktiviert. Man muss das Mail-Programm also entweder über die Aktivitätsanzeige oder schneller durch Drücken der Alt-Taste und Rechtsklick auf das Mail-Symbol "Sofort Beenden". Wenn man die Sicherheitsüberprüfung des Google-Kontos erfolgreich durchgeführt hat, kann nach einem Neustart von Mail das Google-Konto wieder online geschaltet werden und der E-Mail-Abruf funktioniert wieder.

Die Quelle allen Übels

Doch was war jetzt eigentlich die Ursache für diese in meinem Fall sporadische Meldung? "Power Nap!" Seit MacOS 10.8 gibt es diese Funktion, die es dem Rechner ermöglicht auch im Schlafmodus verschiedene Dienste auszuführen und hierzu gehört auch das Abrufen von E-Mails. "Power Nap" lässt sich in den Systemeinstellungen unter "Energie sparen" aktivieren. Welche Betriebssysteme und Geräte "Power Nap" unterstützen und weitere Informationen findet man unter folgendem Link bei Apple: Informationen zu Power Nap.

 Systemeinstellungen > Energie sparen

Systemeinstellungen > Energie sparen

Ich konnte bei mir nachvollziehen, dass der Google-Account immer gesperrt wurde, wenn die Mails im Ruhezustand meines MacBook Pros abgerufen wurden. Doch auch hier stellt sich die Frage, warum das passiert. Meine Erklärung hierfür ist, dass der während des Ruhezustands genutzte Systemdienst sich beim Abrufen von Mails anders verhält als das Programm Mail selbst und so die Kontosperrung verursacht.

Lösung

Was kann man also machen um das Sperren des Google-Kontos zu verhindern? Hierfür gibt es entweder die naheliegende Möglichkeit die Funktion "Power Nap" über die Systemeinstellungen zu deaktivieren, was ich getan habe, oder man aktiviert im Google-Konto den Zugriff durch weniger sichere Apps (Link zur dieser Einstellung).

 Google-Account: Sicherheitseinstellungen bezüglich weniger sicherer Apps

Google-Account: Sicherheitseinstellungen bezüglich weniger sicherer Apps

Das ist allerdings nur möglich, wenn man für seinen Google-Account nicht die Zwei-Faktor-Authentifizierung aktiviert hat.

PDFs verkleinern mit dem Mac

Auf einem Mac lassen sich PDF-Dateien ohne zusätzliche, meist kostenpflichtige, Anwendungen verkleinern. Hierfür reicht es das Dokument mit der integrierten Vorschau zu öffnen und über den Menüpunkt "Ablage > Exportieren" erneut abzuspeichern. Dabei muss nur der vordefinierte Filter "Reduce File Size" gewählt und gesichert werden.

 Mit Filter exportieren

Mit Filter exportieren

Die Einstellungen des Filters können dabei aber nicht auf eigene Anforderungen angepasst werden. Da Bilder und Fotos mit der Standardeinstellung sehr drastisch komprimiert werden, habe ich einen anderen Weg gesucht und gefunden, um die Grafiken nicht unnötig zu verpixeln. Hierfür muss man lediglich einen eigenen Quartz-Filter erstellen, der die gewünschte Konfiguration enthält. In der Systemanwendung "ColorSync-Dienstprogramm" dupliziert man den Eintrag "Reduce File Size", gibt ihm einem sprechenden Namen und passt die Einstellungen wie gewünscht an.

 Duplizieren des System-Filters

Duplizieren des System-Filters

 
 Beispiel für höhere Qualitätseinstellungen

Beispiel für höhere Qualitätseinstellungen

 

Der auf diese Weise erstellte Filter steht leider nicht in der oben beschriebenen Auswahl zur Verfügung, da hier nur die vordefinierten Systemfilter verwendet werden können. Es gibt aber noch einen anderen Weg, der es ermöglicht den eigenen Filter anzuwenden. Man wählt einfach im Kontextmenü der zu verkleinernden Datei im Finder den Punkt "Öffnen mit > ColorSync-Dienstprogramm", wählt unten links den selbst erstellten Filter und wendet diesen an.

 
 Öffnen mit Color-Sync

Öffnen mit Color-Sync

 
 
 Eigenen Filter wählen

Eigenen Filter wählen

 

Wenn das PDF-Dokument vorher große Grafiken enthielt, sollte es nun, abhängig von den verwendeten Einstellungen, verkleinert worden sein. In einem konkreten Fall hatte die Ausgabedatei nur noch 10% der Größe der Ursprünglichen. Aber Achtung: bei zu hohen Qualitätseinstellungen und bereits gut komprimierten PDF-Dokumenten kann es auch vorkommen, dass die Datei durch den Vorgang sogar vergrößert wird.

In abgewandelter Form habe ich diese Vorgehensweise auch an anderer Stelle im Netz gefunden, aber die Kombination mit der Erstellung eines eigenen Filters ist hier entscheidend, um den Grad der Kompression optimieren zu können.