Сегодня я запустил свое первое мобильное приложение. Вот что я узнал

1662325235 segodnya ya zapustil svoe pervoe mobilnoe prilozhenie vot chto ya

от Harshita Arora

Недавно я немало написал на Medium, поделился ценными знаниями о дизайне и разработке, которые получил во время работы над своим первым приложением, Crypto Price Tracker, которое я запустил сегодня, 28 января.

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

Немного предыстории обо мне: я 16-летний домашний школьник. Я изучаю цифровой дизайн и программирование из 13 лет. Зимой 2016 года я был самым молодым стажером в Salesforce в Бангалоре.

Я посетил летнюю программу MIT Launch летом 2017, где мы со своей командой запустили Universeaty. Тогда я впервые попробовал свои силы в приложениях для iOS и мне понравилось, как быстрее можно создавать ощутимые продукты и видеть результаты своей работы при создании мобильных приложений. Внедрять свои идеи в программное обеспечение было гораздо легче и веселее!

Я начал изучать разработку приложений Swift и iOS по онлайн-курсам Treehouse, Udemy, смотрел видео на YouTube и практиковался в создании базовых приложений. Это заложило мои базы программирования. Я начал создавать более серьезные и сложные программы после нескольких недель обучения и практики.

Приблизительно 20 ноября 2017 года я решил, что хочу работать над приложением для отслеживания цен на криптовалюту, уведомлений и управления портфелем. Я поделился здесь небольшой историей своей мотивации. Недавно я понял, что поделиться своей историей и некоторыми уроками, которые я извлек во время своего путешествия, действительно полезно другим!

РЕКЛАМА

Начинаем

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

Я публиковал сообщения на Reddit, в группах Facebook, Quora и спросил несколько друзей, которые инвестировали и интересовались криптовалютами. Я получил несколько уверенных отзывов об этой идее и был намного более образованным по поводу потребностей моих целевых пользователей.

Следующим шагом был дизайн программы. Я начал с рисования диаграмм потоков пользователей и каркасов. Затем я перешел на использование программного обеспечения для создания макетов и прототипа. Я написал другую историю о разработке мобильных приложений с нуля, и я поделился фотографиями каждого этапа разработки Crypto Price Tracker.

И конечный результат этого процесса был следующим:

1*yUKmN6_dAlYalYjlsu57_w
Великолепный дизайн 🙂

РЕКЛАМА

Разработка Crypto Price Tracker

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

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

Я написал сетевой код для отображения данных по API, которые я использовал, и создал основной интерфейс своей программы. Затем я перешел в функцию «Список желаний» программы. Теперь, чтобы хранить данные локально в телефоне пользователя, вам нужно создать модели основных данных – то, с чем я никогда раньше не работал. И появилось больше технических пробелов и проблем.

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

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

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

Следующим шагом, который я планировал, было локализовать свое приложение на 10 языках. Я думал, что это легко, потому что моя программа не содержит много текста. Мальчик, я ошибся! Локализация – очень трудоемкий процесс для программ. Я пишу отдельную историю, чтобы объяснить, как технически локализовать.

В конце 8 недель (с того дня, как я начал исследовать рынок) я полностью спроектировал и разработал приложение, показывающее в реальном времени цены более 1000+ криптовалют из 18 бирж в 32 фиатных валютах. Имелись графики цен (показывающие исторические цены за 1 день, 1 неделю, 1 месяц, 3 месяца и 1 год), управление портфелем, оповещение на основе времени и пороговых значений. Он был локализован на 10 языках. Я тоже оптимизировал свое приложение для iPhone X.

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

РЕКЛАМА

Тестирование и отправка программы

Я очень гордился своим приложением и был очень рад опубликовать его на TestFlight и пригласить всех своих друзей и пользователей протестировать его! После долгого двухдневного ожидания проверка бета-версии программы была наконец одобрена. Я пригласил своих друзей испытать его, и им понравилось приложение. Все они поделились отзывами, идеями о функциях, которые можно добавить в будущие обновления, и многое другое. В приложении не было ни одного сбоя!

Версия версии 1.0 была готова к представлению. Мои 100 скриншотов (5 скриншотов для iPhone 5,5 дюймов и 5 для iPhone 5,8 дюймов для каждого языка) были готовы, мои метаданные также локализованы, а предварительный просмотр видео сделан.

При загрузке предварительного просмотра видео возникли некоторые неожиданные проблемы, поскольку кадры в секунду (кадры в секунду) были слишком высокими. К этому моменту я вырос, чтобы воспринимать неожиданные вызовы и мог эффективно с ними справляться. Я сумел завершить все и отправить приложение на проверку вовремя.

Через два дня, в 4 утра, я получил электронное письмо об отказе.

Это меня очень волновало. Столько мнений промелькнуло в моей голове, прежде чем я прочитал причины отказа. Apple отклонила приложение, поскольку дизайн не выглядел хорошо во время просмотра на iPad. Я понятия не имел, что приложения только для iPhone также должны быть совместимы с iPad. В течение следующих нескольких часов я прочитал несколько инструкций и исправил все ограничения и проблемы с автоматическим макетом, протестировал программу на симуляторе iPad, и она сработала. Я снова подал сборник на проверку.

Через день я наконец-то получил одобрение! Это было облегчение, и теперь я мог снова сосредоточиться на продукте. Я получил массу отзывов и сообщений об ошибках от тестировщиков. Я сделал эти небольшие исправления ошибок и некоторые изменения перевода, а также скачал окончательный сборник. Его одобрили всего за 12 часов! Теперь мое приложение стало гораздо лучше, и я рад, что столько людей протестировали его и сообщили об ошибках, которые иначе были бы включены в обзоры взбешенных клиентов.

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

РЕКЛАМА

Некоторые уроки, которые я усвоил

  1. Локализация – отличная идея. До сих пор я жалел о своем решении локализовать свою программу на 10 языках. Я написал несколько ответов Quora о том, что это была наиболее трудоемкая задача, которую я делал для своего приложения, и я бы не советовал ни одному независимому разработчику без бюджета передавать локализацию аутсорсинга. Но сейчас мое мнение изменилось. Локализация вашего приложения на 10–12 языков с помощью Переводчика Google и поручение друзьям проверить его – отличный способ охватить большую аудиторию вашего приложения. Apple также больше любит локализованные приложения. Вы не всегда можете сделать все правильно и локализовать каждую возможную строку. Но вы можете получить 80% результатов (т.е. переведенный текст) за 20% работы.
  2. Люди гораздо больше готовы помочь вам, чем вы думаете. Я очень благодарен за ряд друзей и наставников, которые мне очень помогли на этом пути. Но я был просто удивлен, как многие незнакомые люди отозвались на меня, когда я к ним обратился и помог мне. В самом начале своего путешествия, когда у меня был только маленький прототип основного интерфейса моей программы, я обратился к Карли Уайт после прочтения ее удивительной книги. Она наставляла меня и помогала своими советами по программе. Когда я локализовал свою программу, мне нужны были корректора для каждого языка, чтобы убедиться, что переводы (сделанные с помощью Google Переводчика) качественные и зависят от контекста. Паскаль прокомментировал мою историю на Medium, предложив свою помощь по немецким переводам. Я обратился к нему, и в очень короткие сроки он действительно отредактировал мои немецкие переводы! И еще многие совершенно незнакомые люди предложили свою помощь.
    Один важный вывод из этого: люди готовы вам помочь. Обратитесь к ним, будьте откровенны, и они помогут вам чем смогут! 😀
  3. Отзывы пользователей на ранней стадии очень важны. Не только добрые слова от ваших поклонников или верующих мотивируют вас, но и многие ваши первые пользователи дадут вам идеи относительно функций, улучшения дизайна и многих других ценных отзывов. Одной из моих ошибок было очень позднее тестирование. Я загрузил свою сборку для тестирования TestFlight только за 1 неделю до запланированного запуска, когда программа была почти готова, и я не мог внести серьезные изменения. Если бы я попросил своих пользователей начать тестирование несколько недель назад, когда у меня был только основной интерфейс, я бы получил много отзывов и улучшил бы его. И повторил, что для каждой главной функции мое приложение было бы гораздо лучше. Многие тестировщики вспоминали вещи, которые можно было бы исправить за 2–3 дня, если бы я отправил сборник на тестирование раньше. Поэтому мой совет всем: предоставьте свою программу пользователям, пусть они как можно быстрее ее протестуют и получат отзывы!

РЕКЛАМА

Некоторые полезные инструменты, которые я использовал

  1. AppLaunchPad для более быстрого создания нескольких наборов скриншотов (для многих локализаций).
  2. какапоноги. SwiftyJSON и Alamofire для написания лучшего сетевого кода, диаграммы для создания графиков цен. Почти для всего есть какапод!
  3. Firebase для сервера push-уведомлений и сервера кэширования для хранения цен каждые 5 минут для обновления графиков цен.
  4. Два API для цен: cryptowatch и CoinCap. Это API для курсов валют для конвертации.

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

Если вам понравилось это читать и у вас есть отзыв или какие-либо мысли, которыми можете поделиться, не стесняйтесь написать мне по адресу harshita@harshitaapps.com. И если вам нравится мое приложение, вы можете скачать ее из App Store здесь. 🙂

Если статья была полезна, напишите ее в Twitter.

Добавить комментарий

Ваш адрес email не будет опубликован.