PokerTimerz

iOS приложение
результат процесс
Во время очередного турнира по покеру пришла идея создать приложение для отсчета времени и блайндов. На следующий день написал простое приложение на JS и запустил его на мобильном устройстве:
PokerTimerz
PokerTimerz
В JS довольно сложно работать с таймерами, да и хотелось попробовать что-то новое. Выбор пал на  Apple Swift. Немного поискав обучающие курсы остановился на Code with Chris. Курс рассчитан на людей знакомых с программированием, в нем не объясняются азы (переменные, типы данных, логические конструкции и т.д.), а информация подается быстро без лишней воды, только суть. Самым сложным для меня оказалось понимание ООП т.к. ранее я никогда не сталкивался с этой методологией, в остальном язык очень прост и понятен. Закончив кус за три месяца со средним баллом 92 из 100 и написав три учебных приложения, принимаюсь за PokerTimerz. Рисую макеты дизайна, после работаю на живом, правлю дизайн сразу в коде:
PokerTimerz
PokerTimerz
Макет Interface Builder'а
Изначально планировалось высчитывать блайнды и анте по формуле:
PokerTimerz
PokerTimerz
Но найти взаимосвязь между их значениями не получилось, пришлось рассчитывать их вручную:
PokerTimerz
Круги отмечающие время на самом деле кнопки с измененным врешним видом:
PokerTimerz
Для локализации приложения используется файл содержащий все текстовые строки (в коде для этого достаточно добавить постфикс «.localized» после имени переменной):
PokerTimerz
Покупаю звуки и готовлю иконки:
PokerTimerz
При подготовке к публикации в AppStore выяснилось, что приложение обязано останавливать все таймеры при переходе в фоновый режим, что не сходится с архитектурой PokerTimerz. При попытке сохранения таймеров (которых в нем несколько и которые связаны друг с другом) появилось множество багов (таймеры сохраняются не единовременно и рассинхронизируются при загрузке). Конечно, их можно обойти используюя Unix time, но iOS не хранит это время локально, а каждый раз запрашивает его с серверов Apple (т.е. приложение не получится запустить без подключения к интернету). Добавились и проблемы с поддержкой маленьких экранов iPhone 4s, после которых стало очевидно, что приложение проще переписать с нуля, чем пытаться привести его ко всем требованиям. Но это как-нибудь в другой раз.
12 августа 2015 г.