Что такое пет-проект и где искать идеи: опыт студентов Хекслета
Пет-проекты — еще одна возможность для джуна получить реальный опыт работы. Это собственные проекты, которые иногда становятся глобальными сервисами (например, Gmail и AdSense когда-то были пет-проектами), но чаще помогают в процессе саморазвития и закреплении изученного материала. Придумать идею для собственного проекта бывает не просто. Для вдохновения рассказываем о пет-проектах наших студентов: от аналога Trello до программы для интерактивного дисплея на клавиатуре.
Что такое пет-проекты
Это собственные проекты, которые в первую очередь нужны для саморазвития. Они не ограничены ничем — ни сроками, ни форматом, ни технологиями. Программист может самостоятельно выбирать, с какой задачей работать и какой процесс в своей повседневной жизни автоматизировать. Пет-проект не может быть хорошим или плохим — вне зависимости от сложности и качества кода это ценный опыт и возможность отвлечься от рабочей или учебной рутины.
Пет-проекты полезны и для студентов, которые только изучают программирование, и для разработчиков с опытом.
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
Для студентов
Программистам важно на практике применять знания, полученные во время обучения. Если заниматься только чтением практики, просмотром туториалов и решением задач, времени на освоение выбранной темы понадобится намного больше. Закреплять знания лучше на реальных задачах — и пет-проекты для этого отлично подходят.
Кроме того, пет-проекты, наряду с участием в опенсорсе, помогают получить реальный опыт работы. При поиске первой работы такой проект можно показать на собеседовании.
Для разработчиков
Программистам, которые уже нашли работу и получили определенный опыт, пет-проекты помогают абстрагироваться от привычных задач и заняться тем, что им действительно интересно. Это напрямую влияет на эффективность основной работы и позволяет разобраться в технологиях и подходах, с которыми разработчик раньше не сталкивался.
В некоторых крупных компаниях существует практика поощрения собственных проектов сотрудников. Например, введенное в 2004 году Google «Правило 20%» позволяло разработчикам тратить пятую часть рабочего времени на пет-проекты. Так появились Gmail и AdSence. Стоит отметить, что в случае с Google такая политика предполагала, что все разработки становятся интеллектуальной собственностью компании.
Где взять идеи для проекта
Универсальный ответ на этот вопрос — попробовать автоматизировать процессы или решить проблемы, с которыми приходится сталкиваться каждый день. Однако на практике поиск идей может оказаться не самой простой задачей.
Мы попросили студентов Хекслета рассказать о своих пет-проектах: вероятно, эти кейсы помогут вам придумать идею для собственного проекта.
Рустем Тарасевич, JS/TS-разработчик
В моем GitHub репозитории около 10 пет-проектов. Первые три — помидорный таймер, сервис для составления списков задач и приложение погоды — своего рода Hello, World в портфолио каждого начинающего фронтенд-разработчика. Не буду останавливаться на них подробно, а расскажу про более сложные проекты.
Чат для комьюнити. Упрощенный аналог чата комьюнити Хекслета в Slack, который я сделал в качестве четвертого, финального учебного проекта. Приложение представляет собой чат с входом по регистрации и отдельными комнатами для обсуждений. Сообщения в нем можно редактировать и удалять.
На проект я потратил больше двух недель — за это время успел разобраться в вебсокетах, интернационализации, кастомных хуках, Redux Tool Kit и другими технологиями.
Трекер задач. Идею для этого проекта я взял из книги Fullstack React with Typescript. На русский язык она не переведена, так что во время чтения подтянул английский до уровня B1\B2.
Проект похож на доску Trello: это канбан-доска с возможностью перетаскивать задачи курсором (Drag and drop). Для реализации этого функционала я использовал библиотеку React-DND, а стэйт-менеджмент написал с помощью Redux Tool Kit, самостоятельно типизировал логику с помощью документации. Это потребовалась, поскольку в оригинале предполагалось реализовать приложение на чистом Redux.
В ходе проекта я также изучил библиотеку styled-components , которая позволяет писать стили компонентов прямо в tsx-файле.
Если говорить о пет-проектах в целом, то для меня это очень важная часть самостоятельного развития меня как разработчика. Они помогают осваивать новые технологии, учат самостоятельно преодолевать трудности и консультироваться с коллегами, если найти решение не получается. Кроме того, это опыт, который поможет получить желаемую работу.
Читайте также: Как сохранять фокус на протяжении всего обучения: советы от Хекслета
Иван Иванов, разработчик на С++
Свой первый проект я сделал около семи лет назад, когда самостоятельно учил C++. Тогда я купил игровую клавиатуру Logitech с черно-белым экраном и столкнулся с тем, что для нее доступно очень мало программ. Я решил сделать свою программу, которая будет выводить на экран сообщения из Skype (на тот момент главной платформы для общения геймеров, по аналогии с Discord) и позволит отвечать на них, не сворачивая окно с игрой.
Рядом с экраном находилось четыре кнопки: первую я использовал для того, чтобы открыть окно с сообщениями, вторую — для автопрокрутки. Третья кнопка перехватывала ввод с клавиатуры и перенаправляла его на экран клавиатуры, а четвертая — отправляла сообщение.
Для работы над проектом я изучил API Windows, которое использовал Skype, и API клавиатуры — это была библиотека на языке C, с которым я раньше не сталкивался. Нужно было разобраться, как подключать C-библиотеки и использовать их в программах, написанных на C++, и как работать с пиксельной черно-белой пиксельной графикой.
Результат работы я выложил на американский форум LogitechFans, где было самое большое сообщество пользователей таких клавиатур. На форуме получил фидбэк и несколько установок программы. На тот момент решение было уникальным, по крайней мере в сегменте бесплатных — единственный аналог стоил достаточно дорого. Исходный код проекта можно посмотреть здесь .
Константин Мамонтов, PHP-разработчик
Мой пет-проект — интернет-магазин, точнее, интернет-склад. Он не решал никакую конкретную проблему и всегда был некоммерческим. Его целью было закрепление знаний и поиск подводных камней при разработке подобных продуктов.
Основа проекта — база данных, написанная на моем основном языке PHP. В процессе работы над складом я изучил JavaScript для создания пользовательского интерфейса и добавил формы приема заказа и регистрации через Bootstrap.
Этот опыт пригодился мне на собеседовании, которое благодаря курсам и проекту я прошел почти моментально, и во время выполнения тестового задания. В результате я нашел первую работу PHP-программистом на Laravel.
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
Пет проект что это
Вы собираетесь отправить сообщение о следующей ошибке:
Камилла, привет! Слежу в твоем телеграм-канале, как продвигается приложение Capoeira Daily. Теперь очень хочу сделать свой проект. Можешь рассказать, с чего стоит начать?
Привет, Марта! А для чего тебе нужен проект? Ты хочешь получить новые навыки или у тебя какая-то другая цель?
Я хочу стать продактом, но у меня нет релевантного опыта. Слышала, что Pet Project может с этим помочь.
Да, так и есть. Проект дает много навыков, это помогает при прохождении отбора. Главное, не просто сделать проект, но и правильно оформить его в портфолио — показать, что ты делала и какой результат получила. Можно даже указать Pet Project как опыт работы в резюме.
Но прежде чем начинать, нужно понять, какие навыки ты хочешь развивать через проект. Это зависит от того, в какой области хочешь расти и в какой компании работать. Везде свои требования к опыту. Где-то важнее иметь навыки управления разработкой, где-то нужен навык вывода продукта на рынок. Чем ты хочешь заниматься как продакт?
Если говорим про сферу, хочу развивать приложения для здорового образа жизни. Если про обязанности, то разрабатывать концепцию продукта и вести его до самого релиза — анализировать рынок, интервьюировать целевую аудиторию, создавать прототипы и тестировать. Но, кажется, для этого нужна команда.
Можно и без нее. С командой ты прокачаешься как лидер и сделаешь более сложный продукт. Но если проект небольшой или нужно просто протестировать гипотезу, почему не сделать самой?
Моя коллега Линда разрабатывала сервис по подбору психолога. Она просто сверстала лендинг в Tilda и привязала к нему гугл-форму и гугл-таблицы, чтобы туда собирать контакты пользователей и координировать их с психологами. Не пришлось писать ни строчки кода. Теперь она зарабатывает на этом и думает автоматизировать с командой разработки.
Классно, надо будет подумать об этом. А можешь рассказать подробнее о том, как ты создавала Capoeira Daily? Думаю, твоя история замотивирует меня скорее начать свой проект 🙂
Да, конечно расскажу!
Дальше Камилла расскажет историю своего Pet Project от первого лица. Вы узнаете, через какие этапы проходил ее проект, с какими трудностями она столкнулась и как их решала.
Как создавался Capoeira Daily
Путь до релиза у нас занял год и три месяца, но большую часть времени мы делали все очень расслабленно. У нашего приложения я бы выделила такие этапы развития:
Забегая вперед, скажу, что большая часть команды работала за небольшие деньги. Я работала бесплатно и на нескольких должностях.
Если бы этот проект делался в компании или на заказ, он бы стоил около 13000$, а мы сделали примерно за 3000$ и задействовали больше 15 человек.
Идея проекта: апрель — май 2019
Поиск идеи
Я занимаюсь капоэйрой около одиннадцати лет. В апреле 2019 мой тренер Тимур спросил, не знаю ли я кого-то, кто может реализовать его идею с приложением. А я как раз тогда думала сделать свой Pet Project.
У меня уже был опыт в запуске приложений и знакомый разработчик, который хотел сделать мобильное приложение для своего портфолио. Так что пазл сошелся, и я сказала, что с удовольствием помогу и соберу команду. Тогда я еще не подозревала, что все это растянется на полтора года.
Сразу скажу, что капоэйра — очень необычный спорт. Это бразильское боевое искусство, где есть удары, танцевальные и акробатические движения. Есть живая музыка (национальные инструменты: барабаны, беримбау, пандейро) и пение. Если какой-то аспект убрать, хорошей капоэйры не получится. Поэтому капоэйристы учатся всему.
Мы договорились с Тимуром, что сначала обсудим его идеи, потом я прикину стоимость разработки, и начнем делать.
У нас были как небольшие идеи вроде обучения движениям или песням, так и глобальные:
— обучение капоэйре с проверкой движений нашими тренерами
— онлайн-сдача зачетов на получение пояса с геймификацией и другими фичами
— социальная сеть для капоэйристов
В итоге, все это свелось к одному — создать приложение, которое пошагово обучит движениям капоэйры. Мы хотели сделать его интересным и новичку, и опытному капоэйристу.
Почему выбрали именно эту идею
1. Мы уже косвенно тестировали эту идею. Каждое лето школа запускала 30-дневные онлайн-марафоны, где каждый день ребята учили новое движение или связку. В марафоне участвовало много людей, и мы решили, что наше приложение будет полезно как минимум ученикам нашей школы.
2. Похожие фитнес-приложения уже были на рынке. Мы могли подсмотреть хорошие решения.
3. У нас была потенциальная аудитория. У самого популярного приложения капоэйры в Google Play — 100 тысяч скачиваний. Для нас этого было достаточно.
4. У нас не было прямых конкурентов. На рынке были приложения по музыке и песням капоэйры, а также программы с набором движений. А вот обучалок не было ни одной.
Наши цели
1. Дать ученикам нашей школы программу для тренировок дома, когда нет возможности заниматься с тренером в зале.
2. Сделать нашу школу и тренера известными на весь мир. Мы хотели вау-эффекта от приложения, и чтобы пользователи узнавали тренера.
3. Внести свой вклад в развитие капоэйры. Это более философская цель. Нашим преподавателям важно делиться знаниями с другими.
Мы решили сделать приложение полностью бесплатным и не зарабатывать на нем. Если оно взлетит, добавить платные опции. Мы также запланировали выпустить приложение сразу на трех языках — русском, английском и португальском, чтобы запустить на весь мир.
Fun fact: Через неделю после нашего релиза вышло еще одно приложение с программой тренировок по капоэйре. Наше приложение было бесплатным, а у конкурентов стоило 90$ в месяц. Так что мы здорово кого-то подставили 🙂
Мы сразу поняли, что сделаем формат обучалки. На наших обучающих семинарах Тимур часто рисовал круг развития капоэйриста, очень похожий на колесо баланса. Мы решили встроить этот круг в приложение как элемент мотивации.
Круг состоит из пяти веток-программ: техника движений, взаимодействие с партнером, скорость ударов, акробатика и стойки на руках.
В каждой ветке-программе пять уровней: от новичка до мастера. Например, на уровне новичка надо стоять на руках у стенки, а в мастере — сделать стойку «бэк» с прогибом в спине.
В каждом уровне — 21 день упражнений, после чего пользователь переходит на следующий уровень.
Проблемы, которые вскрылись потом
1. Мы почему-то решили, что перевод на другие языки — это просто. В наших текстах были только названия упражнений и короткие комментарии к ним. Оказалось, что это не так просто, как кажется. А еще я была уверена, что на португальский переведет Тимур, а Тимур, вероятно, думал, что это сделаю я.
2. Мы слишком увлеклись тем, как нам сделать приложение, и не договорились о том, что произойдет после релиза. Кто и как будет продвигать его в соцсетях, вести Instagram и так далее.
Гайд по лучшим статьям skillsetter
В нашем блоге уже больше 150 статей про рост продуктов и карьеру в IT. Для удобной навигации мы объединили их в тематические подборки.
Поиск команды и дизайн: июнь — август 2019
Когда мы утвердили идею, начали обсуждать, сколько потребуется ресурсов. Наверное, странно, что мы решили сразу собирать команду, а не делать сначала no-code или MVP. Но, как я уже сказала, онлайн-марафоны школы пользовались популярностью у учеников, а значит потребность в такой обучалке была.
Мы сошлись на том, что с Тимура финансирование, а с меня реализация проекта.
Тимур согласился вложить в приложение 2500$. Я сказала, что даже если что-то пойдет не так, этой суммы нам хватит. Не знаю, почему я так решила. Возможно, потому что у меня был фуллстак-разработчик, готовый взяться за проект бесплатно.
Так как разработчик уже был, я начала искать дизайнера. В конце мая я договорилась с бывшим коллегой, который тогда как раз фрилансил. На первую встречу я взяла свои наброски дизайна, где подробно расписала функциональность, которую хочу видеть в приложении.
Визуализировать идеи мне помогла техника сторифреймов , когда ты сначала набрасываешь экраны словами в блокноте. Править текст быстрее, чем рисунки, а еще сразу понятна общая картинка экрана и логика.
Дизайнер все понял, ушел и вернулся в июле ровно с тем, что было нужно. За несколько встреч мы закончили дизайн.
Проблемы, которые вскрылись потом
1. Мы не обсудили дизайн с разработчиком. Я удивилась, но тот круг навыков, который нарисовал дизайнер, по времени и разработке стоил как все остальное приложение. Поэтому обсуждайте дизайн, идею и детали реализации с разработчиками сразу же, чтобы не сесть в лужу со стоимостью и сроками проекта.
2. Дизайн приложения нужно делать отдельно для iOS и для Android. Дело в том, что на Android нужны менее скругленные элементы и другие иконки. Мы же сделали дизайн только для iOS и решили, что под Android адаптируем позже.
Когда нам понадобился дизайн для Android, дизайнер уже был занят другими вещами. По моим ощущениям, в стоимость адаптации также вошло время дизайнера на попытки вспомнить, что он делал полгода назад.
3. У нашего дизайнера была почасовая оплата. Почасовая работа хороша для исполнителя — сделал, получил оплату за отработанные часы и свободен. А формат проектов выгоднее заказчику. Есть уверенность, что исполнитель никуда не денется и всегда ответит на твои вопросы.
Когда пошла разработка, дизайнеру уже было не так интересно заниматься проектом. До него стало сложно достучаться, да и час работы стоил больше 25$. Мне было дешевле и проще самой научиться рисовать в Figma и поправлять мелочи в дизайне.
Разработка: сентябрь 2019 — декабрь 2019
Разработка, которая ни к чему не привела
Разработчик получил дизайн и начал работу. Мы встречались с ним несколько раз и в основном обсуждали проект в Telegram. Я не контролировала его работу: раз он делает и бэк, и фронт, то нет смысла просить показать процесс. Я доверяла его словам и ждала что-то готовое.
Это было моей ошибкой. Не важно, насколько ты доверяешь человеку, всегда нужно договариваться про отчетность. Потом вы сможете вместе сесть и посмотреть на проделанную работу.
Прошел сентябрь, октябрь, а показать все еще было нечего. Когда стало очевидно, что процесс не идет, разработчик начал оправдываться, что у него много дел на основной работе. Я все еще не отказывалась от его услуг, ведь он взялся за проект бесплатно, был погружен в детали и обещал все доделать.
Тем не менее, в ноябре я поставила ультиматум: или он показывает результаты работы и мы движемся дальше по четкому графику, или я ищу других разработчиков. На это я получила ответ: “О, если у тебя кто-то есть, то лучше попроси их, а то у меня совсем нет времени”.
Так мы потеряли три месяца.
Новая команда
Нам нужно было заново набирать команду разработки: Android, iOS и бэк. На фуллстак-разработчика больше не хотелось полагаться, да и не было таких знакомых.
От того, чтобы забросить приложение, удерживали три вещи: мое обещание Тимуру, потраченные деньги на дизайн и желание реализовать идею.
Разработчиков было найти не так трудно. Но была проблема с бюджетом. Прошлый разработчик все делал бесплатно, так что мы не рассчитывали много тратить на разработку.
Оказалось, что даже нашу простую идею реализовывать долго и дорого. Мы выделили на разработку 3000$. А у всех разработчиков одна только реализация на iOS стоила 2500$. Мы не могли себе этого позволить. Пришлось искать тех, кого интересовали не только деньги.
У нашего прошлого фуллстак-разработчика была полная свобода в выборе языка программирования. В этот раз я подходила с заделом на будущее и выбирала разработчика, который пишет на популярных языках, чтобы в будущем без проблем поддерживать приложение.
В итоге мы нашли команду:
1. Двух братьев Android-разработчиков. Всю работу делал менее опытный младший брат, а старший контролировал и давал фидбек.
2. IOS-разработчика, который хотел научиться работать с видео и заинтересовался нашими тренировками.
3. Бэк-разработчика, который решил помочь, потому что ему просто понравилась идея.
В декабре мы начали разработку. Я проговорила с разработчиками архитектуру, а дальше мы работали над видео. Это заняло большую часть времени. Мы прикидывали, с какого расстояния и ракурса лучше снимать, разрабатывали экраны с видео, пробовали и корректировали видео разного формата.
Проблемы, которые вскрылись потом
1. Я хотела работать с крутыми специалистами и буквально уговаривала некоторых людей поучаствовать в проекте. Потом было больно: до дизайнера не достучаться, с первым разработчиком не получилось работать, второй ушел с середины проекта (но красиво, об этом расскажу дальше). С третьим разработчиком дело двигалось медленно. Я потратила много моральных сил на мотивацию и пингование.
Если человек не уверен насчет свободного времени или видно, что ему не очень интересно, лучше найти кого-то другого и не убеждать оставаться.
2. Нужно было сделать награды внутри приложения. Я попросила нового дизайнера нарисовать их, имея только механику раздачи, например, “7 тренировок подряд”, “Тренировка рано утром”.
В итоге, ачивки получились красивыми, но достаточно абстрактными — медальки, солнышки. Только когда мы заносили их в приложение, поняли, что нужно было сначала дать им названия и описания, а потом уже просить дизайнера их рисовать.
Например, у ачивки, когда дважды проходишь один и тот же уровень, описанием была цитата Брюса Ли. Мы хотели связать название с описанием, но не смогли, потому что в качестве картинки к этой ачивке у нас был леденец на палочке.
Проверка работоспособности программ: январь 2020
За декабрь мы поняли, как правильно снимать видео, и отсняли несколько программ тренировок с разными уровнями сложности. После этого мы решили протестировать, насколько хорошо люди воспринимают наши видео и комментарии к движениям. Ведь в приложении нет звука — записывать 750 видео с объяснениями на трех языках нереально долго и сложно.
Нужно было понять, достаточно ли будет коротких комментариев к каждому видео. Не слишком ли сложная, простая или скучная программа? Будут ли по ней тренироваться 21 день подряд?
Чтобы проверить тренировки, мы объявили в группе нашей школы, что ищем по 5-6 новичков и опытных капоэйристов для участия в новом марафоне. Я не успела вовремя остановить набор, и пришло 17 человек.
Условия были такие: каждый день я присылаю в WhatsApp несколько последовательных упражнений с названиями и комментариями. После выполнения тренирующийся пишет “сделано”, и я высылаю задание для следующего дня.
Дни тренировок можно было пропускать, но сам марафон длился всего два месяца, чтобы была мотивация не пропускать.
В итоге, мы выяснили следующее:
1. Нашей разминки оказалось недостаточно. Для некоторой акробатики требуется сложная и специфическая разминка (мостики, длительный разогрев). На нее уходит много времени, и такое видео весит очень много. Если уровень в приложении весит 50 мб, то разминка добавляет к нему еще 70-100 мб. Мы не могли добавить ее в приложение.
Мы пришли к компромиссу — убрали разминку и вставили перед каждой тренировкой онбординг: “Тщательно разминайтесь перед каждой тренировкой. Попрыгайте, побегайте в течение 10 минут”.
2. Программы оказались достаточно удобными. У пользователей не возникло вопросов по комментариям к упражнениям.
3. Многие на марафоне занимались не каждый день и заканчивали его за 30-40 дней вместо 21. Мы поняли, что люди не будут тренироваться в приложении ежедневно, и нужно поменять механику выдачи достижений.
На тот момент мы выдавали достижения за пройденные дни тренировок: «10 тренировок”, “5 дней подряд”. Если бы пользователь усердно занимался 100 дней подряд, а потом заболел и пропустил один день — счетчик бы обнулилися. После такого хочется выругаться и удалить приложение.
Чтобы не демотивировать пользователей, мы заменили “n дней подряд” на “n недель подряд”. Теперь можно было заниматься хотя бы один раз в неделю и не прерывать путь.
Продолжение разработки: февраль-март 2020
Смена разработчика бэка
В разгаре разработки сменился разработчик бэка. Помню, у меня был отпуск, сижу в кафе в Вене. Вдруг приходит перевод денег назад от разработчика. Я начинаю спешно просить у официанта WiFi и придерживать дергающийся глаз, вспоминая разработчика, с которым мы не сработались в октябре.
Этот разработчик ушел, но поступил в высшей степени красиво. У него была уважительная причина, и главное, он нашел человека себе на замену и все ему объяснил. Вернул деньги, хотя сделал большую часть работы. Мне кажется, это пример того, как нужно поступать в таких ситуациях.
Работа с контентом
Мы отсняли 3 из 25 модулей и начали думать, как эти видео сжимать. Мы зацикливали видео, если движение длилось 5 секунд. Но 30-секундные видео весили больше, и их нужно было сжимать.
Мы перепробовали кучу программ, и практически никакая не сжимала вертикальное видео без преобразования его в горизонтальное. Да и скрипта, чтобы сжать все разово, не существует.
В итоге, мы сжимали каждое видео через Adobe, очень долго подбирали параметры: чтобы и весило мало, и смотрелось не пиксельно. Все это мы делали с разных компов, чтобы не покупать полную версию.
Мы не понимали всего масштаба работы по контенту и думали, что снять и сжать видео, написать и перевести комментарии — секундное дело. Мы были неправы. Нам помогала моя 14-летняя сестра, сжимая три модуля несколько ночей подряд.
Поиск хостинга
Для меня тема хостингов и доменов — темный лес, и эта часть настройки была самой сложной. Мы зарегистрировали домен на том же аккаунте, где располагался сайт школы, и стали пускать запросы через новый домен, пока через локальный компьютер разработчика в Екатеринбурге.
В марте случилась пандемия, и мы перестали снимать видео. Дома неудобно, на улице холодно, а в зал не пускают. Это время мы посвятили разработке приложения и написанию программ тренировок.
Альфа-тест: апрель 2020
За март-апрель мы сделали большую часть разработки на Android. Нам не терпелось протестировать приложение на пользователях, а не только на разработчике, который стал тренироваться по нему дома.
Чтобы проверить больше программ, мы все-таки отсняли несколько модулей дома. Всем, кто принимал участие в январском марафоне, я предложила первыми попробовать приложение. Единственное условие — участники пройдут первую тренировку при мне.
Это было небольшое UX-тестирование: я звонила по зуму или скайпу с включенным видео, кидала участникам установочный файл приложения и смотрела экран их телефона через TeamViewer и QuickSupport. Таким образом, я видела и реакцию людей, и их действия в приложении.
Интервью и отзывы альфа-тестеров помогли обнаружить несколько проблем и получить инсайты:
1. Нажатие на уровень означало перейти в него и посмотреть описание внутри. А люди думали, что нажатие означает установку уровня для тренировки. Мы это исправили.
2. Экран гаснул через какое-то время после начала тренировки. Приходилось постоянно тыкать в телефон, чтобы снова посмотреть видео. Это мы тоже исправили.
3. Люди всегда стараются делать упражнения синхронно с человеком на экране, даже если он просто показывает технику выполнения. Мы поняли, что нужно записывать видео со скоростью, комфортной для повторения движений.
4. Чтобы не тренироваться в тишине, люди ставят фоновую музыку. В нашем приложении ее не было, и при проигрывании видео отключалась любая музыка на телефоне. Мы это исправили, и теперь можно поставить трек и одновременно открыть нашу тренировку.
5. У некоторых людей не открывалось видео в приложении. Мы долго пытались понять, почему, и выяснили две проблемы:
— Какие-то видео были сняты на другой телефон с 60 fps вместо 30 fps. Некоторые встроенные плееры не тянули такое видео. К счастью, видео не пришлось переснимать — только заново сжать с другими параметрами.
— Некоторые плееры не поддерживали загрузку нескольких видео одновременно, а мы тянули в тренировке сразу три: предыдущее, текущее и следующее для быстрой загрузки.
Fun fact: В какой-то момент альферы засигналили, что все сломалось. Это у разработчика бэка кончилась оплата за интернет в квартире, где стояла локальная машинка.
Доработки: май 2020
Разные языки
Чтобы выпустить приложение на трех языках, мы начали искать переводчика. С английским нам бесплатно помогала наша тренер по капоэйре, переводчик по профессии.
А вот с португальским были проблемы. У Тимура португальский был свободный, но он не был уверен в своей грамматике. Мой португальский был и несвободный, и грамматически неправильный.
Я попросила помощи у репетитора по португальскому. Она посчитала стандартную плату за слова, получилось 1500$ за перевод приложения. Мы сказали, что как-нибудь справимся сами.
У нас была еще одна знакомая-тренер. Она вызвалась помочь и перевела интерфейс и два модуля. Ей было сложно переводить, так как она не была нейтивом. Поэтому я договорилась со знакомой бразильянкой, которая учится в Москве на переводчика. Она перевела все примерно за 150 $ , так как ей было интересно и хотелось сделать вклад в развитие капоэйры.
Настройка аналитики и покупка аккаунтов в Google Play и App Store
Мы настроили аналитику в Amplitude, чтобы отслеживать действия пользователей. С этой системой я работала раньше, поэтому с аналитикой все было достаточно просто.
Теперь надо было загрузить приложение в сторы. Если в Android можно ставить приложение на любое устройство, просто пересылая файл apk, то с Apple так не получится. Чтобы раскатить версию на тестировщиков, нужен аккаунт. Сначала мы все делали через аккаунт нашего разработчика, но потом решили, что пора купить свой.
Я купила аккаунт, привязала карту, отправила оплату, и Apple ее отклонил. Я попробовала еще, но оказалось, что у них не работает автооплата. Две недели подряд мы с Тимуром звонили в поддержку каждый день: долго разговаривали, делали покупки с Apple ID, присылали подтверждения и коды, что мы не мошенники.
В какой-то раз я уже сказала Тимуру, чтобы он не вешал трубку, пока о ни не решат наш вопрос. В итоге, нас связали с сеньор саппортом, который вручную протолкнул снятие оплаты.
Чтобы добавить свое приложение в App store, нам потребовалось 2 месяца, 3 аккаунта, несколько покупок в App store и тонна переписок с поддержкой. Когда мой друг столкнулся с такой же проблемой, я написала для него инструкцию по регистрации аккаунта, которая сэкономила ему силы и время.
В итоге, мы купили аккаунты в Google Play и Apple. В мае уже можно было снимать видео в зале, и мы активно доснимали программы.
Бета-версия и доработки: июнь — август 2020
Запуск приложения в Google Play и App Store
В июне мы выпустили бета-версию в Google Play и App Store, и пригласили учеников школы протестировать приложение. По программе стали тренироваться более 100 человек, и многие из них были детьми. Мы достигли вау-эффекта: бесплатное приложение с крутыми тренировками в разгар пандемии.
Ведение аккаунта в Instagram
Мы запустили приложение, теперь его нужно было продвигать. Среди капоэйристов мы написали уже всем друзьям из всех стран. Теперь нужно было делать аккаунт в Instagram, оформлять его и таргетировать.
Нам вызвалась помочь девушка-тренер, но вскоре стало понятно, что ей это не особо интересно, а меня не устраивали качество и скорость работы. Несмотря на то, что она помогала бесплатно, было стыдно, когда в шапке вместо слова “Team” появился гугловский автоперевод “Command”.
Какое-то время мы продолжали вести аккаунт, давали на него ссылки и рекламировали в группах капоэйры. Благодаря продвижению у нас было много скачиваний, но мы с тренером не хотели заниматься Instagram. Да и та девушка отвалилась. Так что мы просто забили.
Важно, что изначально мы договорились, что я довожу проект до продакшна, помогаю в начале, а дальше тренер делает с ним, что хочет. Я не хотела поддерживать приложение, не приносящее мне какой-то доход.
Бесплатный курс по продакт-менеджменту
За 3 дня вы научитесь мыслить как продакт и успешнее справляться с задачами на работе и в жизни
Релиз оставшихся программ: сентябрь — октябрь 2020
В сентябре и октябре мы выложили последние программы, отправили пользователям пуши и выложили последнюю версию iOS-приложения.
В какой-то момент я очень устала работать с контентом, но мне очень хотелось поскорее выпустить оставшиеся программы. Поэтому несколько месяцев я проверяла программы тренировок Тимура на корректность и переводила часть модулей на английский, когда наша переводчица заболела. Я правила опечатки на русском, английском и португальском, а потом заливала все видео на облако и в БД. До восьми я работала на основной работе, а потом до двух-трех ночи правила контент для приложения.
Мы получали очень много отзывов . Пользователи активно ставили оценки, писали на почту, в Instagram и участвовали в жизни приложения.
Кто-то помогал тестировать разблокировку на Украине, находил опечатки и некорректные переводы в приложении. Один пользователь предложил помощь в доработке оффлайн-доступа, а другой вызвался перевести контент на испанский.
На данный момент
1. У нас больше 10 тысяч скачиваний на Android и 18 тысяч скачиваний за все время.
2. 1.5 тысячи скачиваний на iOS. В Бразилии соотношение пользователей iOS/Android примерно 10/90.
3. 110-150 скачиваний в день (20-30 остаются, но большинство удаляет).
4. 250 человек в день начинают тренировку, а 150 — заканчивают.
5. Ретеншн открытия приложения и прохождения тренировок держится стабильно весь год на плато в 7-8% на тридцатый день. Я считаю, раз есть плато, значит есть и product-market fit 🙂
6. Больше всего тренирующихся — новички из Бразилии.
7. Думаем про подписку на оффлайн-доступ. Не с целью заработать (мы все равно не окупим затраты), а для того, чтобы поэкспериментировать с монетизацией. Если появится монетизация, займемся и продвижением. Тем более, текущий результат достигнут только через сарафанное радио.
Проблема, которая вскрылась потом
Разработчик на iOS закопался в личные дела, и с октября мы не выпускали новых версий. В итоге, в приложении на iOS нет половины функциональности. Мы заметили, что на Android намного больше пользователей, и решили приостановить работу. Разработчик сказал, что все равно доделает приложение для себя, поэтому версия на iOS все еще разрабатывается, а я не переживаю за сроки.
Pet Project: что это и как начать свой собственный проект
«Pet project»(пэт проект или пет проджект) — это проект, который вы создаете для себя, не для работы или для клиентов, а именно как свой собственный проект. Его целью может стать получение новых знаний, опыта или просто удовольствия.
Приходите на наш бесплатный вебинар по разработке без кода, чтобы задать вопросы, узнать больше про зерокодинг и попробовать себя в новой профессии!
Как начать свой pet project
Если вы хотите начать свой собственный pet project, то первым шагом будет выбор темы, которая вам интересна и позволит вам развиваться в нужном направлении. Например, это может быть проект, связанный с веб-разработкой, мобильной разработкой, созданием игр, робототехникой, искусственным интеллектом или любой другой областью, которая вас привлекает. Пользуясь случаем хотим порекомендовать вам курс “Веб-разработчик на Зерокодере” для освоения знаний в этой сфере.
Когда вы выбрали тему, нужно определиться с целями, которые вы хотите достичь с помощью своего проекта. Они могут быть разными: от изучения новых технологий до создания полноценного продукта. Важно поставить себе реалистичные цели, которые вы сможете достичь в рамках своих возможностей. Также не стоит забывать и о времени, которое вы можете уделить своему проекту.
Далее, вам нужно выбрать инструменты, которые вы будете использовать для создания проекта. Это может быть язык программирования, фреймворк, библиотека, платформа и т.д. Важно выбирать те инструменты, которые соответствуют вашим целям и уровню ваших знаний и опыта.
Кроме того, для успешного выполнения pet project необходимо составить план работы и следовать ему, определять промежуточные цели и достигать их по мере продвижения в проекте. Важно также уметь оценивать свой прогресс и корректировать план при необходимости.
Не стоит забывать о важности коммуникации и общения с другими людьми в процессе создания pet project (пэт проект). Это может быть коллега по работе, друг, сообщество людей с интересами, схожими с вашими, или даже профессиональное сообщество, которое может предоставить вам необходимые ресурсы и знания.
Наконец, pet project может быть не только полезным, но и веселым. Не бойтесь экспериментировать, пробовать новое и не останавливаться на достигнутом. Pet project — это ваша возможность проявить себя, раскрыть свой потенциал и получить удовольствие от проекта.
Каковы риски и вызовы при работе над pet project (пэт проект)
Помимо радости и удовлетворения, работа над pet project также может быть вызовом и иметь свои риски. Некоторые из них включают в себя:
- Недостаток времени. Создание и управление пет проект может быть дополнительной нагрузкой, если вы уже заняты работой или учебой. Убедитесь, что вы можете уделить достаточно времени на свой pet project, чтобы он не стал дополнительным источником стресса.
- Финансовые риски. Pet project может потребовать дополнительных финансовых вложений, таких как оплата хостинга или покупка домена. Убедитесь, что вы понимаете, сколько денег потребуется и готовы к этому.
- Недостаток опыта. Если вы новичок в своей области, создание pet project может столкнуть вас с новыми вызовами и проблемами, которые могут оказаться сложными для решения без помощи более опытных людей. Убедитесь, что вы обладаете достаточными знаниями и навыками, чтобы начать свой проект.
- Риск неудачи. Pet project может не принести желаемых результатов. Он может не найти достаточное количество пользователей, не привлечь финансирование или не стать прибыльным. Убедитесь, что вы готовы к неудачам и готовы учиться на них.
- Конкуренция. Если вы создаете pet project в области, где уже есть много конкурентов, вы должны быть готовы к тому, что вам придется выделяться из толпы и делать что-то особенное, чтобы привлечь внимание пользователей.
- Безопасность. Если ваш pet project требует доступа к личным данным пользователей, вы должны быть уверены, что обеспечиваете достаточный уровень безопасности и защиты данных.
- Ответственность. Если ваш pet project вызывает интерес и привлекает большое количество пользователей, вы должны быть готовы к тому, что возможно, вам придется отвечать за его содержание и обеспечивать соответствие законодательным нормам.
В заключении хотелось бы подчеркнуть, что создание своего собственного pet project может стать интересным и увлекательным опытом, который поможет развить навыки в выбранной области и даст возможность попробовать свои силы в реальной работе. Однако, необходимо помнить о возможных рисках и вызовах, таких как недостаток времени, средств и опыта, а также конкуренцию на рынке. Важно не зацикливаться на создании идеального продукта, а вместо этого стремиться к постоянному улучшению и развитию. Помните, что создание pet project — это путь к самосовершенствованию и достижению своих целей.
Пет проект что это
Программ для расчета искомых величин может быть огромное количество. Например, создайте приложение, определяющее заработок работников в зависимости от его навыков, стажа, опыта, показателей работы, бонусов, локации и других факторов, влияющих на оплату труда.
Чему вы научитесь:
Вы узнаете, как выполнять вычисления в применяемом вами языке программирования, используя математические и другие операторы. Поймете, как преобразовывать один тип данных в другой и отображать на экране.
2. Боты
Это могут быть биржевые и игровые боты, веб-боты, чат-боты и боты поисковых систем. Бот – компьютерная программа, способная взять на себя роль человека, выполняющая за него определенные действия.
Кто знает, может быть вам удастся придумать ИИ, который сможет пройти тест Тьюринга и вы получите Нобелевскую премию. Тест представляет собой проверку способности машины демонстрировать интеллектуальное поведение, эквивалентное человеческому или неотличимое от него.
* Продукт Meta, деятельность признана экстремистской, запрещена на территории России.
3. Трекеры
Трекеры бывают разные. Трекер расходов покажет, сколько вы потратили. Биткойн-трекер отслеживает текущий курс биткоина. Фитнес-трекер указывает суточное потребление калорий. Трекер отношений нужен для отслеживания вашей социальной жизни (темы разговоров, события, настроение и т. д.). Все они могут иметь интеграцию с календарем и другие встроенные функции.
Чему вы научитесь:
Создавать приложение, которое содержит различные сведения о состоянии. А поскольку данные будут меняться, они должны иметь функциональность CRUD.
4. Генераторы
Существует довольно много различных видов генераторов. Давайте перечислим, какие из них можно попытаться создать в качестве собственного проекта.
4.1. Генератор пиксельной графики
Помните Microsoft Paint? Можно сделать нечто подобное, но более пиксельно! Добавьте возможность впоследствии сохранить свою работу в формате .jpeg или .png .
4.2. Генератор случайных API
Веб-сайт, который случайным образом генерирует API в зависимости от вопросов, которые вы задаете или данных, которые вводите, с возможностью экспорта данных в различные типы файлов (CSV, JSON, GraphQL и т. д.).
4.3. Генератор тем для поддержания беседы
Приложение, случайным образом создающее потенциальные темы для разговора для тех, кто беспокоится о неловком молчании на собеседовании или первом свидании. Его можно настроить и отфильтровать по теме, уровню, глубине познаний собеседника.
4.4. Генератор рандомных плейлистов
Приложение, случайным образом генерирующее список песен для вашего плейлиста. С фильтрами, отслеживающими ваши предпочтения, год, жанр и длительность композиции.
4.5. Платформа генератора брендинга
На основе полученных ответов из теста, платформа создает цвет бренда, набор случайно сгенерированных логотипов SVG, рекомендации по типографике и т. д.
5. Игры
Вы можете взять в разработку любую мини-игру будь то 2D или 3D (тетрис, змейка, аркады). Воссоздать популярную карточную игру, такую как блек-джек и покер. А можете создать собственную с уникальным сюжетом и геймплеем.
Чему вы научитесь:
Вы узнаете нюансы работы в геймдев-индустрии, познакомитесь с игровыми движками.
6. Мессенджеры и соцсети
Эта категория приложений является самой востребованной у пользователей. Конечно, переплюнуть известные миллионные платформы будет сложно, ведь за ними стоят огромные команды разработчиков. Но замахнуться на простой и полезный сервис для обмена сообщениями и смайлами – вам вполне по силам. Кто знает, может вы будущий Цукерберг.
Чему вы научитесь:
Как заставить людей общаться друг с другом с помощью такой технологии, как WebSocket API. Функции приложения можно расширить, добавив способ отправки медиафайлов, голосовых вызовов и других форм контента.
7. Учебники и журналы
Если вы сильны в какой-нибудь из технологий, научных дисциплин или просто божественно готовите борщ и хотите поделиться этим со всем миром – сделайте информационно-познавательный ресурс-учебник. Оформите его в своем вкусе и добавьте интерактивности.
8. Магазины
Сделайте имитацию интернет-магазина на одном из популярных фреймворков (Opencart, Shopify и пр.), который показывает сетку продуктов с указанием описания и цены товара и кнопкой добавления в корзину.
9. Поисковик
Создайте платформу для поиска разработчиков в Twitter или LinkedIn по технологическому стеку с фильтрацией по основным качествам и навыкам.
Разрабатывая проект, вы узнаете, как получать данные из API и отображать их на странице, научитесь обходить DOM и использовать карты, сортировку и фильтры для изменения данных внутри массива объектов.
10. Портфолио
Создать себе портфолио – священная обязанность каждого начинающего (и не только) разработчика. Грамотный дизайн, простая структура, ненавязчивая подача информации, несколько ссылок на лучшие проекты и форма для обратной связи в конце заставят любого работодателя пригласить вас на собеседование.
11. Клоны известных сайтов и приложений
Найдите действительно хороший сайт и попробуйте сделать его клон. То же касается и приложений, установленных у вас на смартфоне, но не имеющих нужных вам функций. Попробуйте его переделать на свой лад и добавить туда необходимый вам функционал.
12. Ежедневник (Todo list)
Самый популярный пет-проект среди новичков – это приложение для планирования личных дел, заметок и прочих записей с подгрузкой календаря и цветными стикерами.
13. Библиотеки
Приложение для книголюбов с рейтингом, комментариями и возможностью скачивания понравившихся электронных изданий с базы данных.
14. Тесты, викторины, анкеты
Реализуйте функционал по решению тестов, головоломок в форме словесной игры с вопросами и ответами на любую тему. Реализуйте в ней своеобразную таблицу лидеров, чтобы каждый мог видеть статистику других игроков.
15. Гайд-сайты
К этой категории можно отнести платформу с советами и дополнительными файлами по прохождению какой-нибудь определенной компьютерной игры или даже целого жанра. Приложение может быть настолько простым или продвинутым, насколько вы захотите.
Чему вы научитесь:
Вы узнаете, как создать интерактивный веб-сайт.
16. Проекты с Arduino и Raspberry Pi
Raspberry Pi – это линейка компактных но и довольно мощных одноплатных компьютеров, применяемых для разработки «умных» вещей и устройств IoT.
Если вы «на ты» с электроникой и железом, то эта категория пет-проектов прекрасно вам подойдет.
Пет-проекты от «Библиотеки программиста»
- Создаем рекрутинговый портал на Django: часть 1, часть 2, часть 3
- Django с нуля. Пишем многопользовательский блог для клуба любителей задач Python: часть 1, часть 2, часть 3
- Создаем аналог LiveLib.ru на Flask: часть 1, часть 2
- Flask за час. Создаем адаптивный сайт для GitHub Pages: часть 1, часть 2
- Как сделать сайт на Python за 5 минут с помощью SSG-генератора Pelican
- Пишем Тетрис на Python с помощью библиотеки Pygame
- ️ Пишем кейлоггер на Python для Windows за 5 минут
- Моделируем игру в кости на Python с помощью метода Монте-Карло
- Raspberry Pi начеку: делаем за час охранную систему с помощью датчика расстояния и камеры
- Переносим треки из Яндекс.Музыки в Spotify с помощью Python
Материалы по теме
- 40 проектов на Python для новичков и продвинутых разработчиков
- 6 проектов на Python, которые можно завершить за выходные
- 11 проектов, которые должен разработать каждый питонист
- Идеи для проектов для практики навыков программирования
- 6 open-source проектов для практики новичка
- 8 идей проектов для практики веб-разработки