Конференція Highload fwdays'19 — Autoscale, MySQL 8.0, Neo4j, Kafka and AWS Lambda | 05.10 | Київ

DOU Проектор: Cards — додаток для обміну цифровими візитівками

У рубриці DOU Проектор всі охочі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо взяти участь. Якщо ні — можливо, серія надихне на створення власного made in Ukraine продукту. Питання і заявки на участь надсилайте на editors@dou.ua.

Привіт! Я Ростислав, уже більше п’яти років працюю розробником програмного забезпечення. Розпочинав у компаніях Perfectial та InterLogic у Львові. Після цього переїхав у Південну Корею, де протягом трьох років отримував неймовірний досвід життя в Сеулі та роботи в головному офісі компанії Samsung Electronics. Зараз я є співзасновником і технічним директором компанії Cards.

У нас в команді є двоє засновників: Ігор — CEO, я — CTO, а також двоє працівників: розробник Олександр та маркетолог Марія.

Ідея

Наш проект Cards — це додаток для створення й обміну контактами у формі цифрових візитівок. По суті, це сучасна версія застарілих контактів на телефоні.

Бізнес завжди починається з проблеми та пошуку його вирішення. Наш стартап теж не є винятком і пройшов цей шлях. Коли ти живеш у Сеулі, обмін паперовими візитівками — це обов’язковий елемент ділового й особистого спілкування, особливо під час зустрічей. Неймовірно, але в століття швидкісного інтернету й мобільних технологій люди все ще обмінюються шматочками паперу. Саме бажання еволюціонувати процес привело нас до ідеї Cards.

Але все по порядку...

Як все починалося

Коли виникла ідея створити додаток для контактів, я вже другий рік жив у Сеулі. За два роки роботи в величезній корпорації вся новизна і ейфорія зникли. Натомість усвідомлення того, що ти — мізерна частина великої корпоративної машини, гнітило. Хотілося робити щось своє і відчувати важливість своєї роботи.

За кілька років життя в Південній Кореї я встиг звикнути до непритаманних нам особливостей робочої культури: молодші працівники повинні приходити раніше, ніж старші; співробітники перепрацьовують і засинають у вбиральні, а при знайомствах усі обмінюються візитними картками. Проте візитівки — така річ, яка має властивість губитися, втрачатися, їх часто не вистачає, щоб роздати всім кому треба. Коли їх багато, вони займають багато місця, інформація швидко втрачає актуальність. Власне саме тому у нас з Ігорем (іншим співзасновником) виникла ідея перенести цю архаїчну традицію в цифровий формат. Так і з’явились Cards.

Дивно, що в 2017 році корейці — дуже швидкі в освоєнні нових технологій — досі використовують паперові носії для передачі контактів та стандартну програму на смартфоні, яка суттєво не змінювалась з часів Nokia 3310. Тому ми вирішили зробити альтернативу — додаток, в якому можна створювати електронні візитівки, які ми назвали «живі картки», і ділитися ними з величезною кількістю людей водночас. Такий спосіб економить час на обмін інформації, запобігає втраті контактів завдяки хмарному сховищу, а також тримає контакти актуальними, адже «живі картки» самооновлюються в режимі реального часу. Відповідно, користувачі не зіткнуться з проблемою застарілих номерів.

Принцип роботи додатка доволі простий: користувач створює свою картку, яку може передати будь-кому за допомогою тимчасового 4-значного коду. Отримувачам необов’язково мати додаток Cards в себе на телефоні, достатньо відкрити веб-версію, але для того щоб синхронізовувати контакти на різних девайсах, треба зареєструватись. Далі користувач може імпортувати контакти з телефону та соцмереж, які відображаються у вигляді карток.

Для конференцій та інших івентів ми створюємо спеціальні стеки, куди усі учасники можуть додати свої картки і бачать контакти усіх інших, хто додався. Таким чином, якщо ви з кимось познайомились на конференції, вам достатньо знайти його контакти в додатку.

Крім цього, є екологічний аспект нашої роботи, адже щороку тільки в США витрачається 176 дерев на виготовлення візитівок. А ми дбаємо про навколишнє середовище і заощаджуємо гроші користувачів :)

Ми змінюємо застарілі уявлення про контакти

У процесі реалізації додатка завжди приходять нові ідеї, які б могли вдало вирізнити нас з-поміж конкурентів. Багато наявних проектів передбачають видалення дублікатів, синхронізацію карток у хмарному середовищі, сканування паперових візитівок і машинне розпізнавання символів. Але це лише точкові вирішення проблем. Ми ж хочемо повністю змінити принцип: люди не повинні думати про оновлення всіх контактів, а натомість дбати лише про свої особисті, що дуже спрощує процес та вирішує багато інших проблем.

У пошуках виходів на світові ринки ми сфокусувались на заходах, що проводяться, та коворкінгах, адже наш додаток допомагає людям налагоджувати контакти. Для великих подій та конференцій ми створюємо групи, куди кожен відвідувач може додати свою візитну картку, яка буде доступна усім присутнім на конференції. Індивідуальні користувачі завдяки цьому наперед планують потенційні знайомства, проглянувши список відвідувачів. Організаторам подій Cards дозволяє отримати список відвідувачів, яких можна буде запросити на подію наступного разу. Ці можливості ми вже втілили в життя: Cards став офіційним додатком конференції ASIABEAT Seoul 2017, де всі відвідувачі змогли обмінятися контактами та залишитися на зв’язку завдяки Cards.

Користувачі Cards можуть створювати багато персональних карток та робити різні варіанти візитівок — особисті, ділові, для друзів тощо. Для того, щоб краще реалізувати цю можливість, ми розробили різні шаблони дизайнів: мінімалістичні, яскраві, ілюстровані, з можливістю додавання фото та лого. Всі дизайни зроблені у векторному форматі із застосуванням розробленої нами бібліотеки React Colorizer. Завдяки цьому користувачі можуть змінювати кольори, щоб вони виглядали гармонійно. Важливо те, що ми усвідомлюємо: люди часто мають декілька проявів особистості (робота, друзі), і надаємо їм можливість не лише виразити свою ідентичність, а й обрати, яку інформацію кому давати.

Компанію Cards було засновано 1 квітня в Сеулі, і з того часу ми маємо суттєвий прогрес. У червні ми отримали грант від уряду Сеула на розробку додатків. У серпні компанія Cards стала одним з 50 найкращих стартапів з усього світу, відібраних для участі в програмі K-Startup Grand Challenge 2017, що фінансується Міністерством МСБ та стартапів та Національним агентством з просування ІТ-індустрії.

Реалізація

Найперше, що цікавить наших користувачів, — як відбувається обмін контактами.

Наразі коли люди обмінюються контактами, вони вимушені вручну набирати довгі номери телефонів та імена. У Cards ми фокусуємося на спрощенні та пришвидшенні цього процесу обміну контактів між людьми. Також дуже важливо забезпечити максимально однаковий досвід використання мобільної, веб- та десктоп-версії Cards. Саме тому, враховуючи технічні обмеження підтримуваних платформ, ми зупинились на рішенні з 4-цифровим тимчасовим кодом, який дозволяє обмінятися контактом з однією людиною чи багатьма людьми одночасно.

Мобільна версія, веб та десктоп? Відповідь проста: Node.js + React + React Native + Electron.

Мені довелося працювати в Samsung Electronics у відділі Software R&D, і цей досвід кардинально змінив мої попередні уявлення про технології ПЗ. Там ми завжди пробували щось нове і не боялися експериментувати. Я розпочав активно використовувати Twitter, цікавитися новинками і дискутувати про технології зі співробітниками. До Node.js та React я працював з .NET та PHP та різними фреймворками. Перехід на нові технології й open-source змінили моє уявлення про те, що потрібно довго чекати, поки технологія «освоїться», щоб її використовувати. Свій досвід роботи у Samsung Electronics я переніс у Cards, де ми отримали максимальну гнучкість і мобільність розробки. Це дозволяє нам швидко рухатися з достатньо невеликою командою. Ми завжди віддаємо перевагу набору бібліотек над фреймворком, який рідко оновлюється.

Насправді все почалося з веб-версії на React. Розробка додатків на React Native зайняла близько двох місяців без попереднього досвіду розробки під iOS та Android. В цей час ми навіть створили власні кросплатформні компоненти та реалізували нашу концепцію дизайну.

Весь сервіс хоститься на AWS. Ми виграли декілька конкурсів стартапів і отримали кредит від Amazon Activate. Не думаю, що тут потрібно багато розказувати, адже Amazon фактично домінує на цьому ринку. Якщо ви розробляєте стартап, рекомендуємо шукати можливості отримати безкоштовний кредит від Amazon або Azure, щоб тимчасово забути про фінансування серверів та сфокусуватися на продукті.

Проблеми, з якими ми стикалися

1. Навігація та UX

До недавнього часу наш додаток виглядав зовсім по-іншому, але далеко не завжди первинний задум авторів спрацьовує для аудиторії.

Така ситуація була й у нас: початковий інтерфейс, який відповідав нашому естетичному баченню, виявився складним і незрозумілим для тестових юзерів. Крім того, перший варіант створював певні технічні складності, які вдалося вирішити переосмисленням інтерфейсу. Перед ASIABEAT, конференцією в Сеулі та нашим першим клієнтом, на якій була презентована перша бета-версія Cards, ми повністю оновили вигляд додатка і цим полегшили взаємодію користувачів з програмою. Звичне меню хоч і не виглядало по-особливому, але, коли йде мова про додаток для великої кількості користувачів, варто робити ставку на простоту у використанні та мінімалізм.

Цей момент нас багато чому навчив. Спочатку всі, кому ми показували додаток — від інвесторів до звичайних користувачів — казали, що все виглядає дуже круто, але коли йшла мова про використання, то ніхто не знав, що робити. З часом ми зрозуміли, що на етапі створення нового продукту фактично невідомій компанії важко змінити звички користувачів. Більшість людей очікує завантажити додаток і одразу у ньому орієнтуватися.

2. React Native та споживання пам’яті

Ця проблема була і залишається актуальною на Android. Навіть завантаження картинки розміром 30 МБ для фотографії профілю користувача створювало проблеми зі споживанням пам’яті. Ми були здивовані, але розуміли, що ми не перші, хто з цим стикнувся. Вирішили зменшувати фото перед тим, як користувач відредагує саме ту частину, яку він хоче використати в якості фотографії профілю.

3. Велика кількість маленьких дрібниць :)

Насправді я не можу сказати, що були якісь дуже серйозні проблеми. Багато нюансів вирішуються пошуком в Google. Мабуть, допомогло те, що ми завжди старалися думати стратегічно і планувати розробку наперед. Це допомогло уникнути багатьох проблем та зекономити час. Ми намагаємося йти нога в ногу з технологіями і завжди пробувати щось нове, навіть якщо обмежені часом.

Результати і плани на майбутнє

Зараз наш сервіс працює в публічній беті. До кінця року плануємо вихід стабільної версії. Процес є доволі складним, адже в нас лише 2 розробника, а потрібно постійно підтримувати і розробляти версії на Android та iOS, веб-версію, а також додатки на macOS, Windows та Linux.

Найближчим часом ми плануємо покращити якість додатка та розробити нові функції:

  • спільні групи карток;
  • автоматичний обмін живими картками між людьми, які вже знайомі;
  • створення та керування подіями.

Плануємо багато всього, але поки що не афішуємо, щоб підтримувати інтригу :)

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

Запрошуємо вас завантажити наш додаток. Будемо раді почути, що подобається, вислухати конструктивну критику та поради.

Додавайте мене у Сards.

LinkedIn

12 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.

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

Для передачи карточек между телефонами можете попробовать Google Nearby messages. Оно работает, но ваш ReactNative может составить вам проблему

Если хотите — могу поделиться опытом использования, для решения идентичной задачи

Дякую за коментар і за ідею щодо Google Nearby messages. Ми плануємо спробувати нові способи обміну карток, зокрема, offline через декілька тижнів, буде цікаво почути про ваш досвід!

Скажіть будь-ласка чи плануєте робити легкий доступ до карток без вашого додатку.
Наприклад через QR код на екрані чи надрукований на візитці?
А також чи плануєте робити downloadable vcf?

В нас є можливість зробити картку публічною, наприклад: https://try.cards/card/1de25490-33c7-11e7-b8f7-a1d8208b6df3 Лінк вже можна подати у вигляді QR коду. Або вставити як iFrame, як у нас на сайті: https://try.cards/about Я правильно зрозумів запитання?
Завантажувати vcf не плануємо, в такому випадку втрачається доцільність нашого додатку бо дані старіють і втрачають актуальність. У вас певна мотивація робити саме експорт в vcf?
Дякую!

Такий лінк трохи задовгий для QR, звісно можна скористатись іншим сервісом URL shortener, але це ускладнить використання такої фічі. Я на своїх візитках надрукував QR код при скануванні якого в телефон завантажується моя картка в форматі vcf. На Andoid її можна відразу додати до контактів. Все це робив руцями — і vcf картку і короткий лінк на неї і QR код. Якби був сервіс що зробив би це за мене — скористався б ним, але не знайшов.
Що до доцільності вашого додатку — то на мою думку його перевага має бути не в тому щоб «замкнутися» в ньому а щоб спростити обмін з іншим телефоном, на якому вашого додатка немає (з ймовірністю 0.999999...)

Дякую, за конкретний приклад з життя, ми подумаємо як можемо також таку ситуацію проробити!
Загалом, приклад базується на тому що контакт залишається таким який не оновляється. Всі XXX людей які його отримують додають собі в телефонну книгу до своїх YYY записів ще один який треба оновляти/видалити вручну. Це не зовсім те як ми бачимо майбутнє контактів/нетворку, і я впевнений що ніхто з нас не хоче оновляти цю всью купу контактів серез яких є біля 10% вже неправдивих.
Ми хочемо максимально спростити процес обміну та додавання контактів, але важливо щоб контакт не втрачав свою актуальність і оновлявся. Наразі не придумали варіанту як це зробити без нашого додатку.

Статью читал с большим интересом, идея понравилась. Обязательно, думаю, нужно скачать себе на телефон, посмотреть на этот дизайн, о котором так много упоминалось. Установил, ужаснулся от недоИОсовского дизайна (да еще в Android-приложении) и с миром удалил. Даже не стал регистрироваться. Я не понимаю разработчиков, которые хотят мне — стороннику линейки Google Nexus и Google Pixel — продать iOS стиль. Да еще такой глюченный, когда совсем нет плавности, и можно видеть как всплывающие снизу окна подтормаживают (на чистом Android 8.0). Я понимаю, что это всё проблема оптимизации React Native. И поэтому в моём понимании лучше на деньги инвесторов нанять нативных разработчиков под iOS и Android, которые понимают как работает ОС и какой стиль приложений каждая из них имеет.

В любом случае, ребята, желаю вам удачи :)

Сталкивался с полностью идентичным проектом года 4 назад. Даже стек был относительно похож (в том смысле что не нативные аппки, а жаваскрипт обернутый фонгепом/кордовой). И что бы вы думали? проект не взлетел именно из-за тормозного интерфейса. Поэтому совет

нанять нативных разработчиков под iOS и Android

очень даже дельный и правильный.

Я как раз и основатель того проекта (cardsaround). Есть несколько причин почему он не взлетел и это не UX. Вам предстоит 3 литра пота потратить чтобы понять с какими проблемами придется столкнуться и буду держать за Вас кулаки — желаю чтобы получилось.

Нет, упомянутый мной проект это не cardsaround.
Похоже, эта идея далеко не самая новая, но реализовать никому еще толком не удавалось. Так что да, я тоже держу кулаки за авторов. :)

Андрій, дякую за комент.
Ми ж не бачимо саме віртуальну визитівку як остаточний основний продукт, це більше як елемент на основі якого є інші, які вже вирішують конткретні проблеми користувачів. Тому ми беремо події і конференції як один з наших фокусів, місця де зустрічаються незнайомі люди які хочуть обмінятися швидко контактами. Спікериш часто хочуть дати свій контакт слухачам і для такого випадку теж поки нема справді зручного рішення. Та багато інших випадків де зустрічаються незнайомі люди які з різних країн, використовують різні месендери та соціальні мережі тощо. Та й не впадково у нас фокус на корейському ринку, де обмін візитівками відбувається в момент будь-якого знайомства, навідмінну від США чи Європи.

Дякую.
Насправді, майже все вище згадане стосовно стеку вирішується і на самому React Native. Деякі речі були виправлені до написання статті, але з певних причин додаток поки не оновляли. Проблема з перформенсом в деяких місцях не означає що це буде так завжди бо не вирішується, натомість є просто інші важливіші речі на даний момент. Це питання не лише девелопменту а й бізнесу.
Ще раз дякую за коментарі, ми звернемо увагу на всі деталі :)

Подписаться на комментарии