Проект: MyEQ — история разработки iOS приложения  Публичный пост
9 января 2024  575
ОХУЕННО Держи долор
MyEQ – история разработки iOS приложения
https://apps.apple.com/id/app/myeq-grow-with-questions/id6466982213

Кто я и кто проект

Я продакт, люблю мобайл.
Так и получился мобильный пет-проект.


Ну, почти так, читай дальше.

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

Ещё проект совсем маленький и простой. А ещё, у меня есть склонность с обесцениванию, так что лучше пусть оценивает кто-то ещё)

Сначала потребность, потом идея

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

Из одной такой книги (Триггеры, Маршалл Голдсмит) я узнал об очень простой технике, которую можно использовать для изменения своего поведения (в лучшую сторону, конечно же). Техника заключается в том, что ты для себя придумываешь вопросы определённого вида и ежедневно, в конце дня, оцениваешь себя по ним.

Вид вопросов такой: Сделал ли я всё возможное, чтобы … (твоё личное продолжение, что ты хочешь улучшить). Например, сделал ли я всё возможное, чтобы

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

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


Каждый день ты субъективно оцениваешь себя по этим своим вопросам (от 0–ничего не сделал, до 9–сделал максимум) и можно по динамике оценок отслеживать прогресс изменений. И там, где есть низкие оценки, что-то делать для их повышения.

Я начал пробовать практиковаться в этом. Ну, т.е. придумывать где и как всё это можно вести. Есть приложение вроде как от автора книги, но на него смотреть больно.
Я попробовал несколько разных кастомных способов, но все оказались не удобными.

Например раз
Google Sheets, разумеется.
Для напоминаний использовал приложение Things (я им пользуюсь уже очень давно). В описании таски положил ссылку на таблицу, чтобы сразу можно было переходить.
Но с телефона заполнять таблицу не удобно.
Сделал гугл форму к этой таблице, и в тачку-напоминание уже засунул ссылку на форму. Заполнять стало поудобнее, но структура таблицы при этом не очень. Можно, конечно, вертеть потом на компе как угодно, но вот вообще не хотелось делать лишних движений. Любые лишние движения создают сопротивления, так что чем проще, тем лучше.

Например два
Таблица в Airtable и тамошняя форма.
По сути, то же самое, только в другом интерфейсе + ощущение что ты модник стильняга, с этим вашим хипстерским эйртейбл.

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

И тут меня осенило! 💡


Яж менеджер. И люблю мобайл. Кажется, это была судьба.

Простой но очень долгий проект

Мне нравятся простые продукты с чистым интерфейсом (clear UX & UI). А ещё я платил за это свои деньги.
Поэтому, я поставил перед собой задачу – сделать продукт, который будет обладать необходимыми для своей задачи функциями, при этом не раздувая разработку.

Я всем сердцем люблю Эпол, а к Андроиду равнодушен (приношу свои извинения, если что), так что выбор платформы дался просто. Кросс-платформу не люблю и не рассматривал.

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


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

И было это в середине 2021 года.

Почему так долго

Приложение появилось в App Store в конце декабря 2023. Т.е. От начала проработки до релиза прошло ~ два с половиной года.

Причина такого срока очень простая – проект по большей части делался “для себя”, так что я не ставил никаких сроков. Поэтому, когда я не хотел/не мог им заниматься, я и не занимался.
Добавляем сюда новую работу, которая довольно быстро стала очень напряжённой и в итоге стала подводить к выгораю (но это другая история) и получаем перерыв в разработке на почти два года. Разработчик даже подумал, что я забил на проект, или делаю его дальше без участия. Но нет, я не такой 🙂

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


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

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

Реально же, без учёта того перерыва, вся работа заняла ~ 8 месяцев в очень лайтовом режиме. В релиз ушла 41 версия.

С чем и как работали ⚒️

У нас были макеты всех экранов, кликабельный прототип, чатик в тележке и гора тасок...
У нас были макеты всех экранов, кликабельный прототип, чатик в тележке и гора тасок...

По прототипу была понятна и логика основных функций.

Хоть я и люблю понятную документацию, но в этом случае так и не дописал её (сапожник же без сапог должен быть, ну). К тому же, разработчик сказал что по прототипу и так понятно.
И конечно, позже оказалось, что понятно было не всё. Так что лучше всегда пиши документацию (твой кэп).

В начале проекта мы просто переписывались и созванивались. Это было ок, потому что итерации были большие (разработчик по прототипу всё делал), а вопросов было не много.

Когда мы вернулись к работе над проектом после перерыва, я сделал канбан доску в Трелло, куда завёл все оставшиеся на тот момент доработки. Дальше всю работу мы вели там.

Что работали

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

За время перерыва iOS уже два раза обновилась, включая дизайн системных элементов. Так что по возвращению к проекту, к имеющимся задачам добавилось ещё и обновление интерфейса приложения.

Самым сложным и важным был вопрос хранения данных. Учитывая свою задачу (про простоту для пользователя и техническую), я сформировал два основных требования: я не хотел создавать лишние сущности (например, аккаунты), и я не хотел поддерживать несколько сервисов (например, одним из очевидных вариантов было использование FireBase). Поэтому мы решили всё делать средствами iOS – хранить данные в iCloud.

Пока что кажется, что это классное решение:

  • Максимально просто для пользователя (никаких аккаунтов/паролей)
  • Синхронизация из коробки – на любом устройстве с этим AppleID всё будет актуально (врядли, поддержка нескольких устройств актуальна в моём кейсе, но тем не менее)
  • Учитывая специфику приложения, информация очень лёгкая, так что заметного места у пользователя в облаке это занимать не будет
  • Всё на устройстве (ну и в iCloud), третьим лицам данные не передаются – тру прайваси

Основным недостатком, пока кажутся возможные проблемы с iCloud. Например, если он выключен, или там кончилось место. Вяглядит как очень редкие кейсы, но мы добавили обработку для этого (говорим пользователю, что там чёт с iCloud, иди глянь), а дальше будем посмотреть 👀

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

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

Остальное было не сложно и рутинно, приложение то маленькое и простое.

Работа строилась по стандартному циклу:
Сборка в Firebase -> Тестирование -> Карточки с багами и доработками -> Разработка -> Repeat
На момент релиза, в Трелло было 52 закрытых карточки разного объёма.

Что получилось


Казалось бы, получить апрув в App Store для такого простого приложения не сложно. И оно так и есть. Но я его получил только со второго раза.
Я заполнил всё что нужно в appstoreconnect, а в приложении даже есть ссылки на Privacy Policy и Terms of Use, которые, любезно составил ChatGPT (как и описание приложения, конечно, ибо кто сам это делает в наши дни).

Проблема была в том, что я поленился в скриншоты для айпада добавить скриншоты с айпада) Т.е. я просто подогнал под нужные размены картинки, которые я использовал для айфона, на что мне и указали после ревью и попросили исправить. Ревью и повторное ревью прошли быстро и теперь моё имя есть в App Store 😁

Ну и что

Как написал Денис после релиза "еще одна разработка длиною в вечность завершена))" и это классно. Огромное спасибо ему за терпение и участие.
И конечно, будет здорово, если эта техника и приложение помогут кому-то стать в чём-то лучше.


Это первая версия приложения MyEQ (сокращение от My Everyday Questions).
Там можно создавать свои вопросы, оценивать их и смотреть оценки. Есть архив для более неактуальных вопросов. Можно включить нотификации, чтобы не забывать себя оценивать. Аккаунт заводить ненужно – все данных хранятся в iCloud. Канешн, есть тёмная тема, два языка (en, ru) – за это, кстати, отдельное спасибо Денису, т.к. изначально, дарк мод и второй язык планировались на последующие версии.

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

А пока, спасибо за внимание 🖖🏻

Связанные посты
4 комментария 👇

AppStore сказал, что работает на Макоси с М1, но увы мне - вылетает на старте.

  Развернуть 1 комментарий

@zahhar, на маках даже не тестировали. Сначала совсем не было в планах, а в конце я подумал не тормозить из-за этого. Оно вроде как из коробки должно работать, но что-то нет. А очень уж хотелось до НГ зарелизить
Лежит в бэклоге)

  Развернуть 1 комментарий

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

  Развернуть 1 комментарий

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

разметку ивентов я не стал тут делать

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб