AndroCAD: Rise to Power. Електронщики і Android

Колись один чувак сказав: “Держава — це я. Мене немає — немає і держави". Це було 300 років тому. Людвіг №16, Король-Сонце. Чесно, без підданих він — ніхто.

На Хабре часто миготять success story «одинаків». Про те, як одному хлопцеві стукнула в голову ідея, і він вирішив створити програму/сервіс/сайт. Він накопичив мульен/взяв кредит, зібрав команду/найняв компанію, покерував півроку/рік. І ось, ВІН зробив проект! Ай, маладца!

Я розповім про проект цього одинаки, з нуля до… Сам не знаю. Ні суксесса, ні фейла не спостерігається. Загалом, цікаве чтиво для загального розвитку.

image

Далі: ДУЖЕ БАГАТО БУКВ.

«AndroCAD — це я»
Звучить скромніше, і правдиво на все 146. Я — хлопець «на всі руки від нудьги», по-російськи — фул-стек девелопер. Електронник (схемотехніка/проги для мікропроцесорів) і програміст C++/C#). Глибоких знань немає ні в одній області, але, мої софто-хардові проекти широко використовуються у вузьких колах.

І захотілося мені знову чогось дивного
Минулого разу, в 2007, я ледь не відрізав шматок ринку, створивши перший мобільний оффлайн довідник Москви. В той час, 2GIS блукав у Великому заМКАДье. Інші (Яндекс, Mail.ru, Google тощо) тільки почали створювати довідники, і всі запити у них робилися онлайн.

Нагадати заманухи тих років? “Суперпропозиція! GPRS всього за $0.49 за 1 МБ". Тому, мої «Жовті сторінки Москви для Pocket PC» мали всі шанси на успіх.

Я розпорошив 2 телефонних довідника для ПК і сграбил 2 сайту. Зробив саморобну базу даних на 90 000 організацій (т. к. SQLite моторошно гальмував). Сграбил Google, Mail.ru і сляпал растрові карти по 100 МБ, з прив'язкою до GPS і адресами. Передбачив рубричные рекламні банери і інші хитроѕһор-ості, щоб фірми сплачували за перші місця. Все було швидко і шикарно, враховуючи комунікатори 2000-х (ARM 400 МГц, 3").

Стати мільйонером завадив мені Білл Гейтс, власною персоною. Він закрив Windows Mobile за баги і технічну відсталість. А я пиляв проект по вихідних і під настрій. Це розтягнулося на 2 роки, замість 4х місяців інтенсиву. Я банально запізнився до роздачі слонів. Викладати свою першу і останню програму для вмираючої платформи я не став.

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

Осінь 2014
Мені захотілося чогось схожого, чого-то монументального. Обрана домінуюча платформа Android, я в ній повний нуль. Але ось тематика… Ринок переповнений «фаппи-краппі-бердс», про яких забувають через тиждень. Глянув на монітор — побачив системи проектування для електронщиків: Altium, Mentor, Cadence. Спільне в них тільки одне — кінцевий результат праці. Проекти експортують у формат Gerber-274, отримані файли передають на виробництво друкованих плат і техніки.

Формат Gerber-274X домінує на світовому ринку електроніки.

image

Ідея знайшлася. Звичайно, це не свистілка-тарахтелка з мільйоном установок, а нішевий продукт на 100500 людей. Але гідну рядок у резюме він забезпечить. Компанія Ucamco (створила Gerber), виклала в мережу 150-сторінкову специфікацію. З англійською проблем немає — орав на буржуїнів у московському R&D.

Залишалося всього лише побудувати
image

Першим ділом потрібно було вийти на IPO і розпиляти бабло придумати назву проекту, придбати для нього домен і зробити сайт. Що і як — знав тільки в теорії.

Назва проекту.
Тепер мені ясно, звідки у пристойних компаній такі ідіотські імена — Tumblr, Flikr. Гребанные кіберсквотери! Домени з мого списку 15 пунктів були зайняті, не використовувалися і були «припарковані». Багато з контактним милом і ціною. Юх їм з маслом! Ні копійки здирникам! Нехай їх діти голодують! Вільним був тільки AndroCAD.com. Втім, ім'я відображало суть: Android+CAD, за аналогією з Automotive+CAD (AutoCAD).

Купівля домену
Читав, що домен потрібно купувати подалі від дивних людей нагорі. Одним не подобається Github і Wiki. Іншим — #Крымнаш і «Севастопольський проспект». Результат: косо глянеш на кого — і тю-тю, доменчик. Особливо цим славиться GoDaddy. Мій реєстратор (InternetBS), поклав на всіх роутер і тримає великий російський торрент. Була альтернатива — реєстратор wikileaks.

Безкоштовне розміщення сайту
З цим туго, незважаючи на десятки варіантів. Деякі дають на 3 місяці. Деякі часто недоступні. Деякі подгружают рекламу. Одного я зловив на підвантаження чужий Google-аналітики до моїм сторінкам. Для чого? Х. III. Мій нинішній хостер (50webs.com) стабільний, має безкоштовний тариф на рік. Багато обмежень, але для простого сайту зійде. Через рік повідомили, що дають ще один безкоштовний рік.

Щоб сайт з'явився в інтернеті, потрібно у хостера прописати ім'я свого домену, а у реєстратора ввести DNS хостера. Вже через годину сайт доступний всьому світу. Контент написав сам (сподіваюся вийшло не гірше, ніж у міністра спорту).

Середовище програмування
Кілька років тому я намагався долучитися до Android, але не впорався з квестом «Збери студію розробки з різних сайтів, без мануала від Гугл»:

  • Вибір Eclipse і Java з десяти варіантів, в назвах жодного слова про Android;
  • Ручна прописка системних шляхів (який зараз рік???);
  • Докачка модулів з неробочих https (ніде ні слова, що треба замінити на http);
  • Помилки, збої, і т.д, і т.п.

Здавалося б, мільярдна корпорація, кинь сотню килобаксов на свою Visual Studio, щоб людина запустив экзешник і через півгодини почав кодити! Але в перші роки Google так і не обзавівся фірмової Студією.

З-за цієї «developer-friendly» атмосфери я охолов до Android до 2014 р. До того часу, Гугл став викладати напівфабрикат «Eclipse+Android» з інструкціями. На ньому я і працюю. Зараз Гугл закинув «E+A» і просуває «Android Studio». Перші версії Studio не могли навіть правильно встановитися і не перетравлювали приклади для Eclipse.

Можливо, Studio пофиксили, коли дехто відірвався від читання «How Google Tests Software» і перестав задавати питання, про кількість м'ячиків в автобусі і як вибратися з міксера.

UPD: В сусідній темі про Android Studio бачу, що анонсували новий емулятор і зміна коду при налагодженні. Круто, якщо й справді працює.

Власне розробка
Я використовую соту частину можливостей Android. Без «патернів», без «дерев», без «сортувань». Нічого з того, чим люблять валити на співбесідах. Програма повинна стабільно працювати, а більше вона нікому нічого не повинна.

Через 2 місяці я зробив Demo Version. Ще через місяць я думав, що готовий продавати Pro. Але от захист кульгала. Я спробував обфускатор ProGuard. Він замінює імена змінних на короткі «a,b,c та оптимізує АПК. Як небудь загляньте всередину. APK каже: та я захищений, але бачиш клас „SecretGenerator“? Поковыряй його! І ще подивися активність „Validate“ з кнопкою „Access“ та малюнком „Відкривається“.

заради Забави, я написав „Dummy Obfuscator“

Він рандомно перейменовує класи, активності і ресурси.

image

Dummy — примітивна програма, але ускладнить роботу хакерів в рази. Цікавий побічний ефект — через зміни імен, всі ресурси отримують нові integer-ID і перемішуються при складанні АПК. Це як fingerprint, щоб відстежити піратів. Може довести Dummy до розуму і в продаж?

Але „Dummy“ не заспокоїв параною. Гугл використовує для перевірки покупок механізм LVL-захисту. Існують інструменти, які шукають в АПК сигнатури захисту і роблять їх підміну. Що вже говорити про хакерів? Їжаку зрозуміло, що ускладнити їм роботу може тільки перевірка на своєму ліцензійному сервері. В цьому я повний нуль, тому я відмовився від продажів через Гугл.

Я помістив в маркеті тільки Gerber Demo.

Хто цікавився — йшов на сайт AndroCAD і бачив там на продаж Gerber Pro, з прив'язкою до одного пристрою. За місяць китайці та американці купили кілька ліцензій. Платили Skrill і PayPal. PayPal НЕПРИЄМНО розчарував, коли з $100 у мене виявилося $70, а потім $50. В чому фішка? Коли почалася четверта девальвація рубля, Пайпал заборонив російським мати валютні рахунки. Прийшли до вас бакси вони конвертят в рублі, і кожен день перераховують з них ваш баксовый рахунок. Рубль падає на 40% — баксів у вас менше на 40%. Гаразд у мене $100, а у кого було $10000??? У Skrill цієї підлості немає, але він займає всього 20% продажу.

Спочиваючи на лаврах, я прикидав, назбираю я до літа на пристойний відпустку або доведеться #КрымНаш, в компанію 1 500 000 невиїзних чиновників, поліцейських і військових? Жуть.

We need mooore gold, ТЕРМІНОВО!
Я вмонтував в сайт кнопки платіжних систем, але зрушень не відбулося. Написав про програму на десятці зарубіжних форумів – нульове зростання продажів.

Локалізація програм
У статистиці Гугл зазначено, що основні інсталли Gerber Demo йдуть з США та Індії, Росія-на шостому місці. З першої п'ятірки, Pro купували тільки американці. Я читав, що переклади сильно збільшують приплив юзерів. Я натрапив на замітку про колективні безкоштовних перекладах crowdin.com і cucumis.org. Ніби як, народ переводить чужі тексти в обмін на переклад своїх.

Я вирішив отримати німецький і італійський переклад. Я якісно перевів десятки рядків в іграх і прогах (EN->RU). У відповідь — вухо від сельдя. В цей час до мене підкотив Алконост на англицком мовою, хотіли контакти того, хто в AndroCAD знімає відео і робить рекламу. Але я не видав себе, та й платити $0.10 за кожне слово — це непорядно. Я ж не контракт про продаж батьківщини нафти хочу перевести!

Я розмістив оголошення, що за переклад подарую Gerber Pro. Відгукнулися Італія, Франція, Аргентина. Коли я заливав переклад в Плей, то запідозрив недобре і попросив скріншоти, як це виглядає у авторів. У них — латинський алфавіт з дрібкою нативних символів. При перенесенні вони спотворюються або пропадають. Я змінив „мову за замовчуванням“ в блокноті і браузері і все співпало. Переклади не вплинули на „інсталли“, так і залишилося по 2-3% на країну. Висновок — нісенітниця все це.

В очікуванні Великого Бабла
Я потихеньку пиляв Gerber Viewer і інші переглядачі. У світі існує 25 CAD/CAM/EDA/САПР систем і кожна експортує Gerber як хоче. Зараз без помилок відображається 80% схем з дикого інтернету. Можна пофіксити ще 10% і це межа, т. к. в Android існує баг відтворення.

Тим часом, у відділі продажів настала тиша. 10 ліцензій на місяць – це не бізнес! Гугл повідомляв, що 20% користувачів дивляться відео AndroCAD на Youtube. 40% відвідують мій сайт. Число установок Demo щотижня зростає на 7%. Але, де гроші, Зін? Де фідбек?

Юзери не хочуть говорити, що їх не влаштовує?
Треба їх насильно ощасливити! Я впровадив в проект аналітику Flurry. Інші сервіси хочуть грошей вже за трекінг 1000 юзерів, Flurry безкоштовний для 100 000. Є 2 підходи: Google дає „середня по лікарні“, Flurry дає поведінка кожного юзера.

Поважаючи платних юзерів, я вмонтував в Pro тільки антипіратські маячки. В Demo надсилається аналітика на кожен чих: які кнопки тиснуть, які активності показуються, які файли відкриваються.

image
Big brazza is watching ya!

Виявилося, що Flurry втрачає чверть користувачів і повідомлень. Іноді оновлення даних відбувається із затримкою в день. Але все-таки Flurry допоміг. Дивлячись в логи я зрозумів, що переоцінив людство. Що може знати про англійську людина з локалізацією „es_MX“, „en“, „nb_NO“ або „vi_VN“? Таких 70%. Як вони зможуть сказати мені „Hey, I wana yo Gerber Pro“? Ніяк!

Другим ударом стала лог використання Gerber Demo. Лише 20% юзерів прямо лізуть в файловий діалог і працюють з проектами. Найчастіше програмою намагаються відкрити… JPG файли. Потім йдуть mp3, pdf, zip/rar з Герберами. 10% намагаються відкрити схеми якихось CAD-ів. 50% юзерів взагалі безцільно бродять по файловій системі.

image

Електронники є каркасом цивілізації. Але як же вони дурні! Не знають, з якими файлами працюють на роботі? Думають, що після установки Demo станеться диво і на планшеті з'являться їхні проекти? Дивом можуть зникати тільки годинник з фотографій! Я зрозумів, зйомки місяцеходів і марсоходів роблять в Голлівуді моя концепція продажів PROвалилась.

Я помістив .APK тестові файли Gerber, вони копіюються на карту пам'яті при першому запуску. Навіть після цього, 50% юзерів не змогли відкрити хоча б тестовий файл. Деякі наполегливо тикали в %holiday%.JPG і %manual_androiddevice%.PDF. Прикро і завісу.
Хабралюди можуть нарадити, що потрібно поставити фільтр файлів, а не обси чорнити людей. Основні CAD-и дали мені 40 розширень файлів. Читаючи логи з усього світу, я зрозумів що імена шарів робляться лівою ногою або за рішенням З'їзду Партії XXVIII Скликання. Є навіть TXT, однобуквені і без розширень.

Зроблені на той момент висновки
1. Gerber Viewer працює стабільно. Залишилося допилити парсер.
2. Моя програма мимоволі стала тестом цього IQ.
3. Потрібно продавати через програму Google Play, інакше грошей мені не бачити.

Довелося спуститися з небес на землю, розкрити клавіатуру, обрізати Gerber Pro до Gerber Light і написати ліцензійний сервер
Ага. Прожект манагер, дизайнер, програмер, тестер, перекладач, бухгалтер. Все в одному флаконі. Тепер до цієї гоп-компанії додався бекенд девелопер. Ну че, де наша не пропадала?

Власний сервер з нуля – це круто. Деплой, имажес, маппінг, Лінукс, ВДС, ПХП та інше. Я зібрався витратити на вивчення місяць, але випадково побачив, що є простий вихід.

Деякі „хмарні сховища“ можуть виконувати ваші скрипти на своїй стороні (модний BaaS — backend as a service). Правда, ваш код і дані будуть доступні стороннім. Якщо там прогавлю вухами, ваші дані зіллють хацкери. Ви також можете лопухнуться, якщо не продумаєте „клієнт-сервер“ і доступ до таблиць.

Повертівши безкоштовні варіанти, я зупинився на Cloud Code від Parse.com. У Parse можна безкоштовно обслуговувати середній проект: 20ГБ під бази, 30 запитів/секунду.

Бекенд писав на уродском JavaScript. Кожна змінна — „var“. Де»string"? Де «integer»? Чому для рядків можна використовувати одинарні та подвійні лапки???

На жаль, хмари не дають готової середовища розробки. Потрібно мудрувати самому. Eclipse, Webstorm, Sublime Text відмовлялися перевіряти мої потуги. Ніякого «autocomplete», тільки хардкор! Я писав JS-код в NotePad++. Дебагера у Parse немає. Код відправляється в хмару, на тій стороні — перевірка синтаксису. Потім Android-клієнт робить запити і відловлює помилки від сервера.

Техпідтримка Parse — ніяка, мої питання по роботі і безпеки залишилися без відповіді. Спершу я думав, що там роздувають щоки від ЧСВ, але зараз вважаю, що вони не дуже компетентні. Табличний decrement() у них не працює, а це базова функція будь-якої БД. Нещодавно їх інструмент (parse.exe) перестав працювати і зажадав автообновиться до самої нової версії. Нова теж вважала себе старою. Робоча версія знайшлася лише в закутках їхнього сайту. І з цим зіткнулися всі, хто пише для Cloud Code!

Щоб трохи обламати тих, хто суне ніс в мій бекенд, я використовував обфускатор JavaScript. На ринку їх повно, але все або погано працюють або вимагають грошей. Є безкоштовна бібліотека Yahoo.Yui.Compressor .NET, вона видаляє всі коменти і перейменовує нутрощі. Потрібно всього 3 рядка в проекті C#.

Поки я возився з Parse, у мене виникла думка: раз 80% електронників не розуміють, як скопіювати проекти на Android, потрібно зробити місток між Windows і Android. Я зробив FastLane — примітивну програмку на C#. Вибрані файли стискуються, шифруються на компі і копіюються в хмару. Cloud Code видаляє файли, коли їх забирає Андроїд.

Parse відзначився і тут, вони випустили свій SDK під .NET 4.5. Хм. Уявіть, що Яндекс Диск або Google Drive дають вам програму на 2 МБ і кажуть: не забудьте встановити .NET 4.5 на 50 МБ. На забороненому Github я знайшов код .NET 2.0, працює через REST-запити, і пристосував його.

Думав, що юзери оцінять FastLane. Ага. Ніхто не просунувся далі натискання кнопки «Check status». Та й фіг з ним, зате тепер я гордий володар власного DropBox. Вау!

Нарешті, я зробив перевірку ліцензій у бэкенде, хмарні таблиці юзерів і піратів
Я виклав Gerber Light у продаж. «Літак з баром, басейном, кінотеатром, блекджеком і стюардесами». Так, я переборщив, але все ж, як злетить проект? Був впевнений тільки в одному — програму будуть купувати, поки існує Android.

Через два дні я заглянув на Parse і побачив реєстрацію першого юзера-Light. В Google Play грошова статистика була по нулях (відстає на 1-2 дні), але в Google Merchant я побачив 2000 песо від колумбійця. Виявляється, там роблять не тільки кокаїн і кави! Потім підтягнулася Америка і Європа. Через місяць набралося півсотні юзерів, з них 40% не сплатили покупку. Я думав, що у них порожні кредитки, тому платіж не пройшов.

Пролив світло на ситуацію японець. Він купив Light, але вона крашилась, хоча Demo працювала. Ієрогліфи не причому. Виявилося… @#$% Гугл! C Android 5.0 вони зробили «deprecated» bindService, який використовується у механізмі покупки! Тобто 5 років всіх все влаштовувало і тут на тобі. Я збирав проект з SDK Tools річної давності, для targetSdkVersion=«21» / Android 5.0.1 і ніде немає навіть ворнинга! Хто не тестував покупки на 5.0 — той непомітно потрапив на бабки.

Ще 10% юзерів відвалилося з-за того, що вони надсилають «license response» з додатком. Виявилося, що Гугл формує " response:extras(VT, GT, GR)", хоча за логікою має бути «response|extras(VT, GT, GR)». Гугл не дає прикладів і не пише про двоеточии. Мій BaaS, з-за message.split('|'), вважав юзерів піратами. При тестах, Гугл ніколи не пошле розробнику «response:extras». Розробник може лише випадково наткнутися на живого юзера з додатком (нагадаю, їх всього 10%).

Я пофиксил і почав статистику заново. Скільки м'ячиків поміститься в автобусі? Скільки електронників на планеті? Скільком знадобиться програма? Поки поле битви приховано warfog-ом.

Конкуренти
Нещодавно, у відгуку один американець написав, що з-за обмежень Light йому довелося купити Pro, але все одно він ставить 5 stars, т. к. інша програма не працювала коректно. Спершу я хотів відповісти «Сам… такий», але потім зрозумів, що він мав на увазі зовсім інше.

В Google Play знайшовся «Gerber Viewer for Android» від норвезького хлопця Нгу Йена. Розслідування показало, що його програма була в Google Play в 2013. Потім він вийшов з-за низького рейтингу. Тому я і не побачив конкурента! І ось в жовтні 2015 Ngu Yen повернувся. Його додаток розмальовує 30% семплів, ніяких змін з 2013 року. В Android відсутні деякі функції для десктопів, тому логіка і математика Gerber — нетривіальні. Я впевнений, що Нгуєн не просунеться, а скопіювати мої рішення… Я передбачав це.

image

У листопаді, один нехороший чоловік поставив мені двійку і несправедливий відгук. За ті ж самі огріхи він поставив 5 зірок Нгу Ену. Дозвольте представити: Alan Royston, дружок Нгуєна. Солодка парочка окопалася в Sogeti. Даремно вони так…

Ну і наостанок, «потік свідомості»
Починаючи епопею AndroCAD, я хотів зайняти весь світовий ринок CAD-систем для Android. Я скромний хлопець, мені мало не треба. Я зробив начерки до кількох систем. Просунувся з Altium Designer і Eagle.

Альтиумисты — самі собі злісні буратіни. Файли схем і друкованих плат вони зберігають у п'яти форматах. Я зайнявся найпростішим — текстовий (ASCII). З'ясувався підступ — компоненти в схемах представлені макросами «намалюй мені тут коннектор», як малювати — не зазначено. Витратив багато часу, на GP виклав чорновий начерк. За инсталлам, Altium був майже дорівнює Gerber, але з аналітики Flurry, юзери Altium в рази дурніші юзерів Gerber. На кожному розі я написав, що необхідна конвертація ASCII. Але з тих, хто скопіював Altium-файли на Андроїд, 90% намагаються відкрити бінарні проекти. Якщо компанія Altium не допоможе, то краще пристрелити проект, щоб не мучився.

Друга система, Eagle має простий формат даних. Є навіть Android-переглядач від німця. Його проект був закинутий на рік, і я вирішив підім'яти під себе цей сектор. На жаль, взимку він виклав нову версію. Дефекти парсинга і відтворення залишилися. Я впевнений, що німець не зможе дописати математику, але я вирішив, що вдвох нам буде тісно, тому закрив проект.

Інші CAD-и мають складні структури. Деякі упаковують проекти різновиди zip і «файлові системи в одному файлі». Якщо є бажання — вперед і з піснями. Але, ІМХО, це не окупиться. У найбільших CAD-ів всього по 200000 користувачів. Тільки самі CAD-компанії можуть отримати прибуток, створивши проект для Android.

Трохи лірики
Завдяки Хабру, я дізнався про програму FbStart (Facebook Start).

image

Вони дають мобільним стартапам купони на платні послуги від спонсорів, їх список постійно росте. Якщо ви розробляєте не свистелку-тарахтелку, то є всі шанси отримати схвалення, т. к. це не конкурс, а підтримка цікавих проектів для iOS і Android. Сумнівів у перемозі не було, відповідь я отримав через тиждень. В рамках Bootstrap Track дали віртуальні послуги на $20000.

Серед іншого, безкоштовний грошовий процесинг від Braintree і Stripe на $50 000 кожен. Stripe не працює з Росією. Braintree не працює з приватниками. Загалом бесполезняк, потрібно якось позбутися за символічну суму. Найцікавіше — кредит Parse.com на $5000, але його можуть зажлобить. Я пройшов по посиланню на отримання кредиту та заповнив анкету на Фейсбуці, у відповідь тиша. Через тиждень заповнив ще раз і на наступний день — лист Parse, про те що гроші зараховані.

Підсумки
На AndroCAD витратив 4 місяці робочого часу, розтягнуті на рік. Прибуток? Мільйонером точно не стану, проект окупиться за 2-3 роки. Загалом, отполирую Gerber і почну шукати full-time job.

Які висновки з моєї писанини?
1. Не боги горщики обпалюють, а сонце. Є ідея і хочете її реалізувати? Використовуйте методологію JDTFJ.
2. І один у полі воїн. У листуванні я використовую: «We», «Our company», «We would like to enslave this world, but our team have only 3 developers», "Ім'я нам легіон, бо ми..." Ой! Зараз набіжать люди з ПГМ. По-перше, «Ми» звучить солідніше. По-друге, у мене список завдань для спеціалістів різного профілю. Я не пройду жодного співбесіди за цими професіями, але я зробив всю роботу, не влізаючи в нетрі. Я кажу «Ми» з повним правом. Але проти одинаки грають релятивізм і просторово-часовий континуум: що троє зроблять за один місяць, то один зробить за три місяці, ну і т. д.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.