Кубатурник по ГОСТу

Специализированное приложение - аналог web-версии сервиса

Проекты студентов Swiftme.ru

Разработчик 
Константин Хорошун

Ссылка в AppStore
AppStore

Сайт проекта
mobDeveloper.com

Платформа
iOS

Описание
Многофункциональный калькулятор для подсчета объема круглого бревна по ГОСТу по формуле усеченного цилиндра. И калькулятор объема доски с возможностью указания цены за кубические и погонные метры.

История создания

Привет! Меня зовут Константин и мне 38 годиков, и последние 2,5 года я программист. Это не история успеха, это история как заняться тем, что тебе реально по душе. Да-да именно по душе не ходить на работу, которая превращает твою жизнь в день сурка, а на ту, на которую ты идешь с улыбкой в понедельник утром. И еще, это конечно будет пост о разработке моего далеко не первого приложения, но так получается, что два года коммерческой разработки, я разрабатывал приложения или в свой стол, или для других людей в рамках моей работы.

Чтобы не затягивать рассказ, начну коротко о своей рабочей карьере. Итак, путь начался у меня в 1998 году с работы на стройке. Так продолжалось до 2016 года с перерывами на редкие смены профессиональной деятельности. За это время, я еще успел поступить в универ отучится 4 курса по специальности инженер-строитель и там я понял окончательно, что стройка и все, что с ней связано не мое. Да, все это не говорит в мою пользу, как очень целеустремленного человека, но произошло так как произошло. Единственный плюс в работе на стройке так это работа с цифрами и подсчетами, которые так или иначе тебя преследуют в течение рабочего дня, семь раз отмерь… Что же в конце концов сподвигло меня на смену работы? Все просто, за полных 15 лет работы на стройке я потерял здоровье и не мог продолжать работать так как раньше. Нет, я не инвалид, но стройка для меня закрыта навсегда.

Итак, в 2016 году я сказал родным и близким, что больше не строитель и возвращаться на стройку не собираюсь. Встал вопрос куда идти дальше. Не буду лукавить, у меня был совсем небольшой опыт с программированием на PHP. И поэтому я сделал выбор в сторону программирования, но идти кодить на PHP желания не было совсем. Поэтому начав гуглить я понял, что в тренде мобильная разработка, а разработчиков на Swift в России мало и они очень нужны (скажу сразу, что ситуация не поменялась с тех пор, хороший программист всегда найдет себе работу). Вооружившись новой информацией, я понял, что мне нужна лопата, или не по строительному - MakBook, чтобы начать изучать программирование и постигать новый язык, и новую среду разработки. Сказано сделано, изъяв некоторую сумму из семейного бюджета купил б/у мак на ebay.

Первое с чем я столкнулся во время самообучения, это малое количество информации на русском. Именно тогда я приобрел себе книгу Василия Усова «Swift. Основы разработки приложений под iOS и macOS», с того момента началась моя дружба с Автором и бесконечная учеба языка, которая продолжается до сих пор.

Два года работы в двух компаниях пролетели очень быстро, и подошел момент когда надо выбирать: или переходить в другую компании, или уходить на фриланс, или стать инди-разработчиком. Недолго думая я вспомнил, что у меня в закромах есть проект который я делал просто для фана. Это и был «Калькулятор по ГОСТу».

Этот проект родился из простого поиска прикольных и не очень сложных приложений в AppStore. Итак, после того как я нашел нишу, я стал читать комментарии и понял, что у всех этих приложений есть недостатки, которые я мог бы решить, плюс наполнить немного большим функционалом. В первую очередь я добавил большое количество диаметров и длин для бревна. Для этого пришлось перелопатить много информации из интернета, прежде чем я нашел полную таблицу типоразмеров. Данная таблица и является источником данных для калькулятора бревна, она хранится на устройстве в формате CSV. Данных из таблицы я получаю путем парсинга.
В проекте я использую самую простую архитектуру MVC, которую до недавних пор так сильно продвигали товарищи из Apple (на данный момент они топят за MVVM). Кстати, если вы еще не знакомы с этими архитектурами очень советую Вам с ними познакомится потому, что это очень сильно облегчит вашу работу и в дальнейшем даст хороший трамплин для освоения других, более сложных в понимании архитектур.

Также, я упростил функциональность подсчета бревна поработав с UI. Для того чтобы у пользователя не возникало вопросов по работе приложения в нужных местах - установил аллерты. Во время первоначального продумывания реализации проекта я пришел к выводу, что созданные отчеты необходимо сохранять в памяти устройства - все данные хранятся в CoreData. Когда основная часть проекта была закончена, я понял, что имеющегося функционала мало для того, чтобы мое приложение прошло в магазин приложений, поэтому я принял решение добавить еще и калькулятор доски. Но так как подсчет доски ведется преимущественно на складах и торговых точках, которые могут быть потенциальными пользователями моего приложения, то было добавлена возможность добавления цены для каждого типоразмера просчитываемой доски. Для отчетов по доске я так же создал сохранение отчетов. Вроде бы все выглядело не плохо, но чего-то не хватало для полноты картины, и я добавил печать сформированного отчета через функцию AirPrint. Вроде все в этом проекте работает так как надо, но есть куда развивать его в сторону бизнеса, поэтому я продолжу поддерживать это приложение и дальше добавляя новые фичи и справляя баги, которые конечно есть).

В конце статьи хочется сказать, большое спасибо Василию за его старания в написании книг благодаря которым, меняются человеческие судьбы.

Также, большое спасибо группе в Telegram, благодаря которой, новички находят помощь в освоении программирования и иногда даже психологическую поддержку.