[Dev Story] Как создавалось приложение Cardmone

Нам пишут разработчики приложения Cardmone

Утро. 9 часов. Я уже в «Макдоналдсе», занял 2 столика. Мы хотим развить в Нижнем Новгороде сообщество Lean Coffee. Собираться по утрам, обсуждать разные темы, связанные с разработкой ПО. Самая проблема — собрать народ, а уж если соберешь, обсуждение пойдет.

47

В 9:10 подошли мои коллеги, с которыми мы все это организовываем. В 9:20, о чудо, пришел один человек. Один, всего лишь. Ну да ладно, вчетвером обсудить можно много чего интересного. Понеслась. Обсуждали мотивацию девелоперов, думали про Скрам-Мастера в аренду (забавный, кстати, вариант IT-услуг).
Cardmone

Час прошел незаметно, а по его завершении состоялся традиционный атрибут подобных встреч. Обмен контактами. Запись телефонов, имейлов, скайпов. Руками. Вбивали в телефон. Что за ужас-то в XXI веке. Давайте хотя бы QR код сгенерим для своих контактных данных. Поискали приложения. Нашли полторы штуки. Сразу пришла в голову мысль, мы же и на конференциях выступаем, не только в формате Lean Coffee. Представьте, там ведь аудитория-то существенно больше. И как обычно делятся контактами? Кладут визитки на стол, делают слайд с контактами, а предприимчивые слушатели фотографируют его на телефон. XXI век, не забыли?

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

Подумали-сделали. Первый наш проект, который был действительно полностью своим. Ни внешних инвесторов, ни сторонних наблюдателей. Все свое, для решения своих же проблем. Поскольку у всех айфоны, выбор пал на iOS, как на первую платформу для разработки. Поскольку опыт у нас большой на .NET, решили пробовать Monotouch и Xamarin Studio. Откровенно признаюсь, следующий проект попробуем на Objective C, хочется ощутить разницу и понять ограничения Monotouch.

Сначала приложение вырастало в какого-то монстра. Обмен контактами, своя записная книжка, синхронизация, автоматические обновления контактов, Bump и т.д. Получался проект на немаленькую команду, а нас было всего двое, да и то работали после 8 часов на основной. Кстати, есть один момент. Забавным можно считать тот факт, что всю разработку мы провели будучи на Кипре. Тепло, уютно, в кафешку заглянул, посидел, чай/кофе, любимый киприотам фраппе. Ну так вот, возвращаясь к функционалу, понимали, что получается какой-то монстр. Стоп. Все же знают про MVP в стартапах и прочее. Так давайте ответим на простой вопрос — какую проблему мы решаем? Мы решаем проблему передачи контакта с iPhone на любое другое устройство так, чтобы получателю даже программу устанавливать не нужно было. Отлично, к черту полетели все записные книжки и синхронизации. Приложение начало формироваться во что-то более адекватное, и выделили 5 способов передачи:

  • AirDrop (доступен в iOS 7, iPhone 5)
  • Sms (на случай недоступности интернета)
  • Email (классика)
  • QR-код (благо, сейчас их умеют читать все телефоны)
  • Cloud Sharing

i5-02

Вот последняя опция, пожалуй, привлекает больше внимания, чем все остальные. Первые три подключены, что называется, «из коробки», QR кодом нынче тоже никого не удивишь, а вот собственный Cloud совсем другое дело. В App Store есть несколько приложений, позволяющих обмениваться контактами через собственное облако, но у них есть одно ограничение — приложение нужно ставить и отправителю, и получателю. Мы постарались обойти это ограничение и сделали, пожалуй, самый простой вариант.

Итак, контакт загружается в наше «облако» сроком на 1 день (впоследствии можно будет выбрать срок размещения). Помимо самих контактных данных, у пользователя спрашиваем разрешение на использование геолокации, чтобы понять, откуда он загрузил свой контакт. Далее любой, кто хочет скачать, идет на https://get.cardmone.net, и в случае, если он находится близко к человеку, опубликовавшему свои данные, их можно будет скачать. Близко — понятие растяжимое, пока ограничиваемся одним городом, т.е. контакт, опубликованный в Нижнем Новгороде, в Москве виден не будет. Это заметно упрощает хождение по сайту и поиск нужного контакта. Мы опробовали это уже несколько раз на своих тренингах, очень удобно получилось.

С технической стороны вроде все понятно, реализация прошла успешно, но забывать о UX никак нельзя. Параллельно с поддержкой различных опций мы старались сделать приложение таким, чтобы им было просто пользоваться любому человеку: докладчику-профессору в возрасте 65 лет; молодому амбициозному специалисту, первый раз приехавшему на конференцию; опытному пользователю всяких гаджетов; матерому презентеру. Надеемся, что получилось, отзывы потихоньку прибывают. Практика показывает, что через 5 секунд работы с приложением пользователям становится понятно, как его использовать.

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

11 декабря чудо случилось, приложение благополучно добралось до App Store. Пока оно доступно только для России, Украины и Белоруссии, но к нему уже есть интерес от некоторых людей из Германии и США, поэтому выход на весь App Store — лишь вопрос времени.

Сейчас мы продолжаем заниматься этим проектом, увеличиваем точность геопозиционирования и добавляем еще 2 способа передачи своих контактов. Они будут не просто функциональными, но еще и чертовски забавными. Как говорят наши зарубежные коллеги, Stay tuned. А приложение можно загрузить по этой ссылке.

Pages_
Если вам есть, чем поделиться с другими читателями нашего сайта, пишите на advert@appleinsider.ru и не забудьте указать свое имя или ник. Мы внимательно читаем входящие письма и публикуем ваши самые интересные истории.

Обзоры приложений для iOS и MacРазработка приложений для iOS