PolterApp: neue Funktionen 2018

Neues Jahr beginnt! Neue Vorsätze, Verbesserungen, Ziele, Veränderungen – all das erwartet die PolterApp auch in 2018. Wie auch die Jahre davor wird in 2018 das bewährte Model “Nutzerfeedback – neue Funktionen” gefahren. Es hat sich als besonders effizient erwiesen, gezielt die Sachen umzusetzen, die aktiv von Nutzern gefragt werden. Da in letzter Zeit besonders viel Anfragen von “durchschnittlichen” Waldbesitzern kommen, werden die Enterprise Features der PolterApp erst mal runterpriorisiert. Insbesondere Holzdatenexport im ELDAT-Format, Synchronisationsschnittstellen mit anderen Systemen wie z.B. proforst von GISCON, Geomail von forstware etc. werden auf kleiner Flamme gekocht bis diese Funktionen wirklich gebraucht werden.

Dafür starten wir ins neue Jahr mit folgenden neuen Features:

  • Rindenabzug bei Einzelstammerfassung
  • Automatische Berechnung des Rindenabzugs in Abhängigkeit von Baumart und Stärkenklasse
  • Holzdaten-Export im einfachen CSV Format

Die Neuerungen werden voraussichtlich gegen Ende Januar – Mitte Februar veröffentlicht.

 

PolterApp Version 2.0

Seit gestern kann die neue Version der PolterApp aus dem App-Store installiert werden. Das Design der PolterApp wurde überarbeitet und an iOS 11 angepasst. Oben links auf der Polter-Liste gibt es jetzt einen Settings-Button. Aktuell ist es möglich darüber eine Email an Entwickler zu verschicken,  Bewertung für die App abzugeben und die Neuerungen anzuschauen. Was auch neu ist und was allerdings den deutschsprachigen Nutzern nicht sofort auffällt, ist dass die PolterApp ins Englische übersetzt wurde! Ab jetzt ist die PolterApp überall auf der Welt erhältlich.

 

Cheat-sheets version 1.10

EN

At last it is possible to move notes between Cheat-sheets! Just tap the Edit button and select cheats to be moved. Afterwards tap Move-button in the navigation bar and select the destination Cheat-sheet. The new function is available for the users of the Chet-sheets Pro app.

DE

Endlich ist es möglich die Cheats zwischen den Spickern (Foldern) zu verschieben! Einfach auf “Bearbeiten” in der Navigationsleiste klicken und die Cheats selektieren, welche verschoben werden sollen. Anschließend auf “Verschieben” Button klicken und den Ziel-Spicker auswählen. Die neue Funktion ist ab sofort für die Nutzer der Spicker Pro verfügbar.

RU

Наконец можно перемещать записи из одной шпаргалки (папки) в другую! Для этого просто нужно нажать на кнопку “Изменить” и выбрать записи, которые необходимо переместить. Затем нажимается кнопка “Переместить” и выбирается шпаргалка (папка). Новая функция доступна для пользователей Шпаргалки Pro.

Cheat-sheets version 1.9

EN

Only few days later we release the next version 1.9 of the Cheat-sheets app! We’ve fixed some minor issues with release notes view and added IAP (in-app purchase). Now Cheat-sheets Pro can be purchased from the Help section of the app.

DE

Nur ein Paar Tage später veröffentlichen wir die neue Version 1.9 der Spicker-App! Wir haben ein Paar kleinere Fehler mit der Release Notes Ansicht behoben und die Möglichkeit der IAP (In-App Purchase) hinzugefügt. Ab sofort kann Spicker Pro Version über die App-Hilfe erworben werden.

RU

Буквально пару дней спустя выходит новая версия 1.9 мобильного приложения Шпаргалки! Были исправлены незначительные ошибки в окне Release Note, и была добавлена возможность IAP (in app purchase). Теперь версию Шпаргалки Pro можно приобрести через Помощь приложения.

Cheat-sheets version 1.8

EN

The latest update of the Cheat-sheets app brings some improvements to the app behavior in iOS 11. We also smashed an annoying bug which caused sporadic app crashes on editing cheats. Among new features we’d like to introduce sorting of the cheat list by text, custom order and creation date. The information about latest app features can be now viewed under “What’s new?” entry in the help section.

DE

Das letzte Update der Cheat-sheets App bringt einige Verbesserungen unter iOS 11. Wir haben auch mit Freude einen anhänglichen Bug zerquetscht, welche für sporadische App Abstürze beim Editieren von Cheats sorgte. Wir möchten außerdem noch zwei neue Funktionen vorstellen, nämlich Sortier-Funktionen in der Cheats-Liste und “Was ist neu?” Überblick unter App-Hilfe.

RU

В последней версии приложения Шпаргалки добавлена полноценная поддержка iOS 11. Мы также исправили ошибку, при которой в определенных случаях редактирования шпаргалок, приложение неожиданно сворачивалось. Кроме этого в новой версии мы рады представить 2 новые функции: сортировка шпаргалок по различным критериям и рубрику “Что нового” в помощи приложения.

Cheat-sheets App wurde im Deutschen umbenannt

Sehr bald erscheint Version 1.8 der beliebten Cheat-sheets App. Neben den neuen Features gibt es eine besondere Neuerung für die Deutschen Nutzer der App. Ab jetzt lautet der vollständige Name der App so Spicker — schnelle Notizen.

Warum Spicker und nicht mehr Spickzettel? Na ja, erstens es klingt einfach etwas cooler. Zweitens, gibt man den Begriff Spicker bei Google ein, so ergeben sich etwa 20.800.000 Treffer gegenüber 3.350.000 wenn Spickzettel eingegeben wird. Spicken scheint gängiger zu sein als Spickzettel schreiben 🙂 Außerdem ist der Titel der Apps im App-Store seit iOS 11 von 50 auf 30 Zeichen verkürzt worden. Nicht dass es wenig ist, aber der frühere Titel der App musste sowieso angepasst werden.

Ich bin gespannt auf Euer Feedback. Und viel Spaß beim “spicken” 😉

Wie entstehen Apps?

Was eine App ist, weiß mittlerweile jeder. Doch wie entstehen Apps? Kann wirklich jeder Apps bauen? Lasst uns einen Blick hinter die Kulisse werfen.

Apps sind nichts anderes als Computer-Programme. Sie können klein aber auch richtig komplex sein. Das was auf den ersten Blick aus der Nutzersicht einfach erscheinen mag, muss nicht unbedingt so unter der Haube sein. Im Gegenteil, richtig professionelle Apps sind häufig schlicht im Design, nutzerfreudlich, so dass die Komplexität sich nicht sofort erkennen lässt.

Unabhängig von der Art der App, ob sie im Auftrag oder aus eigenem Interesse entwickelt wird, sieht der Prozess immer ähnlich aus. Zuerst werden Use-Cases definiert, i.e. das nach außen sichtbare Verhalten der App aus Sicht der Nutzer. Mit anderen Worten aus einer App-Idee wird eine konkrete Vorstellung, was man mit der App alles machen kann. Die ganz grobe Skizze wird  in einzelne funktionale Einheiten/Komponente aufgebrochen, welche später auch umgesetzt werden.

Im zweiten Schritt wird geschaut, welche Technologien für die Umsetzung genommen werden. Die Wahl der Technologien hängt stark von Anforderungen ab. Entscheidend dabei sind Fragen, soll es eine App für nur ein Platform z.B. iOS werden oder müssen mehrere Platformen unterstützt werden, wie viele Resources stehen zur Verfügung, wie viel Zeit steht zur Verfügung etc.

Die Umsetzung an sich ist ziemlich staightforward. Es können sich natürlich unterwegs unvorhersehbare technische Schwierigkeiten ergeben, aber meistens läßt sich dieser Abschnitt des Prozesses gut planen.

Anschließend kommt Testing und aufregender Moment des Ausrollens der App. Obwohl die Prozesskette relativ einfach ist, steck der Teufel im Detail. Über einzelne Schritte im App-Development Prozess kann man lange Artikel schreiben. Das Ziel dieses Postings ist aber erst mal einen generellen Eindruck über die App-Entwicklung zu vermitteln. Wer sich fürs Thema App-Entstehung mehr interessiert, kann sich gerne die Postings zu PolterApp und Cheat-Sheets App durchlesen. Das sind zwei Beispiele aus der Praxis mit konkreten Fragestellungen und konkreten Lösungsansätzen.

Objective-C: change text color of UIButton

To change the text color of UIButton is easy. Simply set preferred text color for each state:

[button setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
[button setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
[button setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];

If the text color should state the same in all states, just connect the states with “|”:

[button setTitleColor:[UIColor redColor] forState:(UIControlStateHighlighted | UIControlStateNormal | UIControlStateSelected)];

And remember to change the type of UIButton from “System” to “Custom”. Otherwise the text color gets alpha value in highlighted state.

Objective-C: case insensitive file mapping

File names are case sensitive in iOS. That’s why it is important always to test your app containing file read/write operations not only in simulator, but also on the real iOS devices like iPad or iPhone. In particular situations you get a file name from some configuration file and wonder why NSFileManage cannot find it in the folder where it is contained. This can happen when the name of the file in configuration has a different case than the real file name. Such a special case can be handled by the function below:


+ (NSString*)findCaseInsensitiveFileMappinhForFile:(NSString*)file inFolder:(NSString*)folderPath
{
    
    NSString *result = nil;    
    NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtURL:[NSURL fileURLWithPath:folderPath]
                                          includingPropertiesForKeys:@[NSURLNameKey, NSURLIsDirectoryKey]
                                                             options:NSDirectoryEnumerationSkipsHiddenFiles
                                                        errorHandler:^BOOL(NSURL *url, NSError *error) {
        if (error) {
            NSLog(@"[Error] %@ (%@)", error, url);
            return NO;
        }
        
        return YES;
    }];
    
    for (NSURL *fileURL in enumerator) {
        NSString *filename;
        [fileURL getResourceValue:&filename forKey:NSURLNameKey error:nil];
        NSNumber *isDirectory;
        [fileURL getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:nil];
        
        // Find same file with different case
        if (![isDirectory boolValue]) {
            if ( [filename caseInsensitiveCompare:file] == NSOrderedSame) {               
                result = filename;
                break;
            }
        }
    }
    return result;
}