На пути к запуску нашего первого приложения мы сделали много ошибок, но узнали еще больше.

Музыка праздника! Сегодня мы - Матиас и Ян - официально выпустили наше первое приложение. Последние шесть месяцев мы работали над нашим приложением для управления задачами по ночам и в выходные (если честно, в основном по выходным).

Были дни, когда мы тратили несколько часов на одну функцию, и много выходных, когда мы думали, что приложение будет запущено к концу того же месяца. Теперь, почти год спустя, мы, наконец, закончили.

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

У нас была цель, но не хватало одного: идеи, что строить. У вас может быть отличная идея для приложения или потрясающий навык, чтобы воплотить его в жизнь, но если оно вам на самом деле не нравится и если оно бесполезно для вашей повседневной жизни, вы не дойдете до конца.

Поскольку для нас, студентов, очень важно управление временем и производительностью, мы решили создать приложение для управления задачами, в котором используется метод тайм-бокса.

Timeboxing означает, что вы определяете фиксированный отрезок времени для своих задач на ежедневной основе.

В то время мы использовали Trello, чтобы отслеживать наши личные дела и планировать нашу неделю. Но нам не понравился мобильный опыт и отсутствие функций в бесплатной версии Trello. Все остальные приложения для создания списков дел тоже были не совсем тем, что мы искали.

Итак, мы решили создать Aikoa, приложение, которое сочетает в себе метод тайм-бокса с управлением задачами в минималистичном приложении. Айкоа по-фински означает «цель». Цель приложения - хранить ваши задачи и заметки в минималистичном и не отвлекающем виде с возможностью планировать день с помощью тайм-бокса.

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

Три урока, которые мы усвоили

Начать легко. Отделка - это сложно.

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

Сначала у нас не было никаких проблем. Мы добились значительных успехов, и давайте будем честными, программирование с немедленной графической обратной связью намного полезнее, чем настройка некоторых моделей машинного обучения. Ощущение быстрого прототипирования и относительной простоты реализации базовых функций на какое-то время поддерживало нас.

Мы потратили много времени на обсуждение дизайна UI / UX, цветов и соотношения белого пространства. Единственное, что мы упустили из виду, - это основная идея того, что должно делать наше приложение и что нам действительно нужно для этого: алгоритмы, бизнес-логика, структура базы данных и многое другое.

Для нас начало было легким, мотивация была правильной, и мы начали мечтать о создании красивого, полезного и мощного приложения для управления задачами. Именно в этот момент нас поразила реальность.

Мы проектировали и представляли функции и рабочие процессы, но недооценили, с какими сложностями мы столкнемся при их реализации. Кроме того, мы переоценили свои навыки разработки приложений после просмотра нескольких руководств на Youtube и создания наших первых настраиваемых кнопок.

Что касается цикла хайпов Gartner, мы достигли пика завышенных ожиданий и теперь достигли дна в долине разочарований. Это был самый опасный момент для нашего проекта, и мы несколько раз думали о выходе. Чтобы преодолеть разочарование, нам нужно было понять, что проект приложения - это гораздо больше, чем просто графический интерфейс.

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

Вначале мы недостаточно разделяли пользовательский интерфейс, бизнес-логику и серверную часть, что привело к хакерским решениям и множеству грязных исправлений ошибок. Чтение о шаблонах проектирования, таких как Чистый код, помогло нам абстрагироваться от нашего кода. Даже на этом этапе пути к просветлению мы не раз думали о том, чтобы отказаться. Это только верхушка айсберга.

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

Мечтайте масштабно, но не делайте этого.

Прокручивая Интернет в поисках идей для нашего приложения, мы читаем множество предложений «начни с малого и научись ползать, прежде чем пытаться ходить». Большинство из них рекомендовали создать общий контрольный список или приложение для викторин. Хотя мы знали, что не создадим следующий Instagram или TikTok, идея создания универсального приложения, которое мы в любом случае не будем использовать, не была такой мотивирующей.

Создание чего-то, что повысило нашу продуктивность, вдохновляло нас с самого начала. Поэтому наши мозговые штурмы закончились фейерверком идей. Мы хотели добавить отслеживание времени, привычек, долгосрочных целей и многое другое. И в довершение ко всему, мы даже подумали о создании синхронизированного веб-приложения.

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

Оглядываясь назад, можно сказать, что было бы гораздо разумнее сконцентрироваться на нескольких функциях, прежде чем теряться в деталях. Мы убедились, насколько важно осознавать, сколько времени вы можете потратить на сторонний проект. Это подводит нас ко второй части крылатой фразы: не делайте этого.

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

Из-за неправильных суждений и постоянно растущих знаний о разработке приложений мы несколько раз реструктурировали наши требования, и многие из наших идей по функциям оказались вне рамок. Тем не менее, заблаговременное планирование помогло нам достичь нашей цели небольшими шагами в правильном направлении, не зная заранее, какой подход лучше всего подходит.

Не создавайте ощущения работы.

Мы думали о том, чтобы бросить курить? Конечно. Мы думали об этом не раз? Конечно, сделали.

Сесть после рабочего дня по программированию или поработать над магистерской диссертацией, чтобы провести время над второстепенным проектом, - это непросто. Особенно, когда ваша основная работа требует больших усилий и умственных способностей, часто остается не так много силы воли. По нашему опыту, принуждение себя к работе над второстепенным проектом повредит вашему общему настроению, и вы почувствуете выгорание через несколько недель.

Для нас единственным решением этой проблемы было не дать побочному проекту казаться работой. Совместная работа в команде нам очень помогла. Хотя вначале мы учились в разных городах, в Москве и Тайбэе, регулярные сеансы Zoom помогли нам ощутить положительный эффект от работы команды и заставили почувствовать себя просто пообщаться с другом.

Поскольку нашей конечной целью было запустить приложение на Android и iOS, бросить его нельзя было даже в те дни, когда это больше походило на работу. Мы хотели узнать, что происходит, когда вы запускаете еще одно приложение в миллионах других приложений в магазине приложений.

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

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

Заключение

Путешествие показало нам, что нужно больше начать и завершить проект, чем что-либо еще. Мы не являемся экспертами в том, что пытались сделать, и не будем в ближайшее время, но извлечение уроков из наших ошибок позволяет нам лучше начать наш следующий проект (каким бы он ни был).

Это научило нас уделять больше времени размышлениям о том, какие проблемы решить, чем о том, как их решать. Если вы собираетесь посвятить свободное время проекту в течение следующих 6 месяцев, поставьте перед собой задачу: над чем вы действительно хотите работать? Не совершайте слишком рано. Узнайте, что дает вам цель продолжать работу.

Только в письменной форме мы глубоко задумались над самыми важными для нас уроками. Размышлять о путешествии и о том, что мы будем делать по-другому, вероятно, было так же ценно, как и сам проект. Хотя готовое приложение далеко от того, чего мы планировали достичь, оно выполнило свою задачу для нас. Итак, вот четвертый урок, которого даже мы не ожидали, когда начали писать:

Подумайте, извлеките уроки и напишите статью.

В следующей части мы подумаем о нашем обучении, связанном с программированием с Flutter. Надеюсь увидеть тебя там!

Ссылки

Магазин приложений

Https://apps.apple.com/app/id1553344471

Google Play магазин

Https://play.google.com/store/apps/details?id=com.betasonly.aikoa

Веб-сайт

Https://aikoa.app /

Github

Мы открыли исходный код для приложения, который вы можете проверить в нашем репозитории GitHub: https://github.com/betasOnly/aikoa