Направио сам Прогресивну веб апликацију и објавио је у 3 продавнице апликација. Ево шта сам научио.

Месец рада, неколико стотина долара и много бирокрације.

Недавно сам објавио Цхавах Мессианиц Радио, музички плејер сличан Пандори, као Прогресивну веб апликацију и послао га у 3 продавнице апликација (Гоогле Плаи, иОС Апп Сторе, Виндовс Сторе).

Процес је био болан и просветљујућ. Ево шта сам научио.

Зашто?

Прво, можда се питате: „Зашто уопште стављати своју апликацију у продавнице апликација? Само живите на отвореној мрежи! “

Укратко, одговор је зато што су ту корисници . Обучили смо генерацију корисника да проналазе апликације у власничким продавницама апликација, а не на бесплатној и отвореној мрежи.

За моју веб апликацију постојала су два велика разлога да уђем у продавницу апликација:

  1. Потражња корисника
  2. Ограничења веб апликација које врше Аппле непријатељске мобилне платформе

Захтев корисника: Моји корисници ме годинама питају: „Постоји ли апликација за Цхавах? Не видим у продавници. “

Они то траже јер смо обучили кориснике да траже апликације у власничким продавницама апликација.

Мој одговор мојим корисницима је до сада био,

„Ау, не треба вам апликација - само идите на веб локацију на телефону! Функционише!"

Али некако сам лагао.

Праве веб апликације само некако функционишу на мобилним уређајима. Што ме доводи до другог разлога: ограничења веб апликација од стране Аппле непријатељских мобилних платформи.

Продавачи мобилних платформи, попут Аппле-а, потпуно су цоол са апликацијама које у потпуности користе ваш телефон. Приступите својој локацији, репродукујте звук у позадини, набавите ГПС координате, репродукујте више ствари одједном и још много тога.

Аппле је потпуно кул са тим.

Али само ако Аппле привилегирате 99 УСД годишње.

Ако желите да урадите било коју од тих ствари у обичној старој веб апликацији, па, госхдарнит, Аппле вам неће само ускратити ове ствари, већ спречава да чак и тражите дозволу .

За моју апликацију музичког плејера сличну Пандори, ова ужасна сломљеност показала се на бројне начине.

Од мањих ствари попут „иОС Сафари вам неће омогућити репродукцију звука без претходне интеракције са страницом“ до главних, заустављајући ствари попут „иОС Сафари вам неће дозволити да пустите следећу песму ако је ваша апликација у позадини или ако је екран искључен. “

Ох, плус чудне визуелне аномалије попут куцања у оквир за текст и приказивања вашег текста негде другде на екрану.

Дакле, да би моја музичка апликација ХТМЛ5 заиста била функционална и радила на мобилним уређајима људи, било је потребно да мој ПВА претворим у апликацију у продавници апликација.

Баријере за улазак

У идеалном свету објављивање веб апликације у продавницама апликација изгледало би овако:

  • Ваш хост за веб / Цлоуд или добављач континуиране интеграције
  • Објавили сте Прогресивну веб апликацију. Желите ли да објавите у продавницама апликација?

Сторе иОС Апп Сторе

☑ Гоогле Плаи

Сторе Виндовс продавница

(Или наизменично, док Мицрософт експериментише, ваш ПВА ће се аутоматски појавити у продавници апликација док га Бинг индексира.)

Али авај, ми не живимо у овом идеалном свету. Уместо тога, морамо да се бавимо свим врстама власничких матичних БС-а да бисмо наше веб апликације ставили у продавнице.

Свака од продавница апликација има препреку за улазак: колико је тешко узети постојећу веб апликацију и то у продавници апликација.

У наставку наводим неке од препрека.

Трошак

  • Аппле : 99 УСД годишње да би ваша апликација била наведена у иОС продавници апликација.
  • Гоогле: Једнократна накнада од 25 УСД за стављање листе апликација у Гоогле Плаи продавницу.
  • Мицрософт: Бесплатно!

Немојте да вас присиљавам да вам платим да моју апликацију учиним доступном вашим корисницима. Моја апликација обогаћује вашу платформу. Без добрих апликација ваша платформа ће бити напуштена.

Аппле је ово некада разумео. Када је први пут представио иПхоне, Стеве Јобс је био упоран да је ХТМЛ5 будућност и да ће апликације једноставно бити само веб апликације. Није постојао изворни иПхоне СДК за независне партнере. Аппле је од тада напустио ову визију.

Гоогле је тражио једнократну накнаду од 25 УСД. Вероватно да би избегли нежељену пошту и спречили улазак заиста нежељених апликација у продавницу.

Чини се да је Мицрософт одлучан да само повећа укупан број апликација у својој продавници апликација, без обзира на квалитет.

Победник: Мицрософт. Тешко је победити на слободи.

Додавање изворних могућности

У идеалном свету не бих морао да напишем ни један додатни ред кода да би се моја веб апликација интегрисала у ОС. Или, како је Стеве Јобс рекао 2007. године,

„Комплетни Сафари мотор налази се у иПхонеу. И тако можете да напишете невероватне Веб 2.0 и Ајак апликације које изгледају тачно и понашају се баш као апликације на иПхонеу. А ове апликације могу се савршено интегрисати са иПхоне услугама. Они могу да упуте позив, могу да пошаљу е-пошту, могу да потраже локацију на Гоогле мапама. “ -Стеве Јобс, 2007

За мене то значи да моја веб апликација репродукује звук у позадини користећи стандардни ХТМЛ5 звук; који добро функционише на свим ОС-има.

Моја веб апликација изјављује шта се аудио репродукује, а оперативни системи то прихвате и приказују информације о песми која се тренутно репродукује на закључаном екрану.

Моја апликација контролише звук користећи стандардни ХТМЛ5 аудио АПИ; ОС то прихвати и на закључаном екрану пружа контроле репродукције / паузе / следеће / јачине звука / траке на траци.

Али нажалост, ми не живимо у овом идеалном свету. Све горе наведене ствари заправо не функционишу на све 3 платформе.

Моја веб апликација мора да репродукује звук у позадини. И учитајте УРЛ адресе са мог ЦДН-а. Звучи разумно, зар не? И бонус, шта кажете на приказ информација о песми која се тренутно репродукује на закључаном екрану? А управљање звуком (репродукција / пауза / следеће, итд.) Са закључаног екрана? Колико је тешко?

Овде су узета три врло различита приступа:

  • Аппле : Не дајемо веб апликацијама начин да изјаве такве могућности; мораћете да напишете изворни омот (нпр. са Цордовом) да бисте комуницирали са ОС-ом.
  • Гоогле : Веб ФТВ! Створимо нови веб стандард који приказује звук и контроле са закључаног екрана. Звук у позадини? Наравно само напред!
  • Мицрософт: Убризгаћемо свој заштићени АПИ, виндов.Виндовс. *, У ваш ЈаваСцрипт глобални простор имена, а ви то можете да користите за обављање ствари које желите.

Улазимо у више детаља овде за сваку продавницу:

Да ли у иОС продавници апликација треба да репродукује звук у позадини? Користите додатак Цордова. Требате ли приказати песму која се тренутно репродукује на закључаном екрану? Користите додатак Цордова. Треба да контролишете песму која се тренутно репродукује са закључаног екрана? Користите додатак Цордова. Схватили сте идеју. У основи, Цордова превари Аппле да помисли да сте изворна апликација. А с обзиром на то да нисте бедна веб апликација, Аппле вам омогућава да радите све оно што матичне апликације могу. Потребни су вам само трикови - додаци за Цордова - да бисте то дозволили.

За Гоогле Плаи је лепо што могу само да напишем ЈС код да би ово успело; овде нису потребни додаци за Цордова. Наравно, тај ЈС неће радити било где осим Цхроме-а на Андроиду ... али хеј, можда ће једног дана (у идеалном свету!) Сви мобилни прегледачи применити ове веб АПИ-је ... и свет ће живети као један. Скоро сам спреман да разбијем неке мелодије хипика о утопији Јохна Леннона.

Да ли у Виндовс Сторе желите да репродукујете звук у позадини? Извињавам се! Односно, осим ако своје намере не изјавите у нашој датотеци манифеста сопствених могућности (лако) И ако имплементирате овај власнички интерфејс медија користећи виндов.Виндовс.СистемМедиаТранспортЦонтролс (не тако лако). У супротном ћемо вас искључити када ваша апликација пређе у позадину.

Победник : Гоогле. Желим да могу само да напишем ЈаваСцрипт и допустим ОС-у да покупи знакове из моје апликације.

Другопласирани : Виндовс. Још увек могу да напишем обичан стари ЈаваСцрипт, али морам да разговарам са заштићеним Виндовс ЈС АПИ-јем који је убачен у мој процес док сам радио на Виндовс-у. Није страшно.

Губитник : Аппле. Њих није брига за веб апликације. Заправо је и горе од тога. Чини се да су они заправо непријатељски расположени према веб апликацијама. иОС Сафари је нови Интернет Екплорер 6. Заостао је у скоро свим веб стандардима, посебно око Прогресивних веб апликација. Ово је вероватно из пословних разлога: веб апликације ометају њихов рекет за куповину у апликацији од 99 долара годишње + 33%. Дакле, да би моја веб апликација радила на њиховој платформи, морам у основи да се претварам да сам изворна апликација.

Регистрација продавнице апликација

Да бисте предали свој ПВА у продавницу апликација, потребна су регистрација, верификација предузећа и више бирокрације. Ево како су прошле 3 продавнице апликација:

  • Аппле : Морате доказати да сте легално, регистровано предузеће. Ову верификацију не радимо ми, већ трећа страна која може или не мора знати за ваше предузеће.
  • Гоогле : Желите ли своју апликацију у нашој продавници? Цоол код нас.
  • Мицрософт : Желите ли своју апликацију у нашој продавници? Цоол код нас.

Највећа бол за мене било је то што ме је Аппле верификовао као правни посао.

Прво сам отишао на локацију и регистровао се за Апплеов програм за програмере. Попунио сам своје име и податке о компанији. (Поред: Претпостављам да вам Аппле неће дозволити да предате апликацију ако немате регистровану правну компанију?)

Кликнем даље.

„Подаци које сте унели не подударају се са вашим Д&Б профилом.“

Мој шта?

Мало гуглања показало је да су „Д&Б профил“ Дун и Брадстреет. Никада раније нисам чуо за ову групу, али сазнајем да их Аппле користи за верификацију детаља ваше правне компаније.

И очигледно се мој Д&Б профил није подударао са оним што сам ставио у своју регистрацију за Аппле Дев.

Још мало прогуглам и пронађем Аппле дев форуме препуне сличних постова. Нико није имао добар одговор.

Контактирам подршку за Аппле Дев. 24 сата касније, контактирали су ме е-поштом и рекли да бих требало да контактирам Д&Б.

Одлучио сам да их контактирам ... али Аппле каже да ће требати неколико дана да одговоре.

У овом тренутку размишљам да напустим целу идеју.

Док чекам да ми се Д&Б подршка јави, одлучујем да одем на Д&Б локацију, потврдим свој идентитет и ажурирам податке о својој компанији које су, претпостављам, преузели из евиденције државне управе.

Јесам ли споменуо колико је ово лоше? Само желим да наведем своју постојећу веб апликацију у продавници. Плз помоћ.

Идем у Д&Б да ажурирам свој пословни профил. Изненађење! Они имају ЈаваСцрипт грешку у својој логици провере која ме спречава да ажурирам свој профил.

Срећом, ја сам вешт програмер. Кликнем ставим тачку прекида у њихов ЈаваСцрипт, кликнем на пријаву, променим заставицу исВалид у труе и воила! Ажурирао сам свој Д&Б профил.

Повратак на Аппле Дев -> покушајмо поново. Региструјте моју компанију…

„Грешка: Подаци које сте унели не подударају се са вашим Д&Б профилом.“

АРЕИОУФРЕАКИНКИДДИНГМЕ.

Поново разговарајте са Аппле-ом. „Ох, можда ће требати 24–48 сати да ажуриране информације о Д&Б уђу у наш систем.“

Знате, јер дигиталним информацијама треба два дана да пређу са сервера А на сервер Б. Уздах.

Два дана касније, покушавам да се региструјем ... коначно успева! Сада сам у програму Аппле Девелопер и могу да подносим апликације на преглед.

Победник : Гоогле и Мицрософт; обојици је требало пет минута да се региструју.

Губитник : Регистрација програмера за Аппле је била спора и болна. Требало је отприлике недељу дана да се стварно региструју за њихов програм за програмере. Било ми је потребно да контактирам подршку из две различите компаније. И захтевало је да током извршења отклоним грешке у ЈаваСцрипт коду на веб локацији независних произвођача само да бих могао да прођем њихову проверу грешке на страни клијента, тако да ће моје информације прелазити у Аппле, како бих своју апликацију могао да пошаљем у продавницу. Вау, само ... вау.

Ако овде постоји било каква штедња за Аппле, то је да имају непрофитни програм 501ц3, где непрофитне организације могу да се одрекну својих 99 УСД годишње накнаде. То сам искористио. И можда је овај додатни корак закомпликовао ствари.

Паковање апликација, израда, слање

Једном када имате веб апликацију, морате на њу да покренете магију да бисте је претворили у нешто што можете да пошаљете на преглед у Апп Сторе.

  • Аппле : Прво купите Мац; не можете да направите иОС апликацију без Мац-а. Инсталирајте КСЦоде и ове алате и оквире за изградњу, набавите сертификат од нашег програмера за програмере, направите профил на засебној веб локацији званој иТунес Цоннецт, повежите га са сертификатом који сте генерисали у Аппле Дев центру, а затим пошаљите помоћу КСЦоде. Лако као један, два, три ... тридесет седам ...
  • Гоогле : Преузмите Андроид Студио, генеришите преко њега сигурносни сертификат, а затим га спакујте помоћу Студија. Отпремите пакет на веб локацију Андроид Девелопер.
  • Мицрософт : Генеришите .аппк пакет помоћу ових бесплатних алата за командну линију или Висуал Студио. Отпремите на веб локацију Мицрософт Дев Центер.

Добра вест је да постоји бесплатна алатка која чини чаролију претварања ваше веб апликације у пакете апликација . Тај сјајни бесплатни алат зове се ПВАБуилдер. Анализира УРЛ, говори вам шта треба да урадите (нпр. Можда додајте неке иконе почетног екрана у свој ПВА веб манифест). А у чаробњаку од 3 корака омогућава вам преузимање пакета који садрже сву чаролију:

  • За Виндовс заправо генерише .аппк пакет. Можете то дословно узети и послати на веб локацију Виндовс Дев Центер.
  • За Гоогле генерише омотач Јава апликације која садржи вашу ПВА веб апликацију. Из Андроид студија израђујете овај пројекат који генерише Андроид пакет који се може отпремити на локацију Андроид Дев Центер.
  • За Аппле генерише КСЦоде пројекат који се може направити са КСЦоде. За шта је потребан Мац.

Још једном је Аппле био најболнији од свих ових. Немам Мац. Али не можете да направите КСЦоде пројекат за свој ПВА без Мац-а.

Не желим да платим неколико хиљада долара за објављивање своје бесплатне апликације у Аппле-овој продавници апликација. Не желим да плаћам привилегију обогаћивања Аппле-ове иОС платформе.

Срећом, МацИнЦлоуд кошта око 25 УСД месечно и дају вам Мац машину са већ инсталираним КСЦодеом. У њега се можете удаљити помоћу Виндовс удаљене радне површине или чак путем веб интерфејса.

Није било довољно само направити КСЦоде пројекат и послати га. Морао сам да генеришем безбедносни сертификат на веб локацији Аппле Девелопер, а затим креирам нови профил апликације на засебној веб локацији, иТунес Цоннецт, где заправо предајете пакет.

И то није било све: пошто је Аппле непријатељски расположен према веб апликацијама, морао сам да инсталирам неке посебне оквире и додам додатке Цордова који омогућавају мојој апликацији да ради ствари попут репродукције звука у позадини, додавање тренутне песме на закључани екран, контролишите јачину звука песме и статус репродукције са закључаног екрана и још много тога.

Требало је најмање недељу дана да се доврши апликација да би моја апликација постала исправно, пре него што бих је могао послати у продавницу апликација.

Победник : Мицрософт. Замислите ово: можете да одете на веб локацију која генерише пакет апликација за вашу веб апликацију. А ако то није ваша ствар, можете преузети алате за командну линију који ће обавити посао. ГУИ особа? Бесплатни Висуал Студио ће радити.

Другопласирани : Гоогле. Захтева Андроид Студио, али је бесплатан, покреће све и био је довољно једноставан.

Губитник : Аппле. Не бих требало да купујем власнички рачунар - Мац од неколико хиљада долара - да бих направио своју апликацију. Аппле Дев Центер -> запетљавање иТунес Цоннецт чини се као покушај менаџера без додира да иТунес натера на програмере. То би једноставно требало да буде део веб локације Аппле Девелопер Центер.

Тестирање апликација

Једном када сте коначно обавили све чаробне уроке да своју постојећу веб апликацију претворите у пакет мобилне апликације, вероватно ћете желети да је пошаљете тестерима пре него што пустите апликацију на неопране масе.

  • Аппле : За тестирање, морате да вам тестери инсталирају Тест Флигхт на њихов иОС уређај. Затим додајте е-пошту тестера у иТунес Цоннецт. Тестер ће добити обавештење и моћи ће да тестира вашу апликацију пре него што постане доступна у продавници апликација.
  • Гоогле : У Андроид Дев Центер додајете адресе е-поште тестера. Једном додани, они могу да виде вашу алфа / бета верзију у Апп Сторе-у.
  • Мицрософт : Ја ово заправо нисам користио, па нећу то коментарисати.

Победник : Бацање. Апплеова апликација Тест Флигхт је једноставна и поједностављена. Можете да контролишете алфа / бета истицање једноставно на администраторској страни. Гоогле није заостајао много; било је прилично безболно, чак није захтевала ни засебну апликацију.

Апп Ревиев

Када апликација буде спремна за ударно време, подносите је на преглед. Преглед се врши и помоћу програмске контролне листе (нпр. Имате ли икону за покретање?) И од стварних људи („ваша апликација је клон Кс-а, ми је одбијамо“)

  • Аппле : Пре слања, КСЦоде вас упозорава на потенцијалне проблеме током израде. Преглед апликације за људе траје око 24–48 сати.
  • Гоогле : Има ли кога код куће? Андроид Студио ми није рекао о потенцијалним проблемима и моја апликација је одобрена у року од неколико минута од слања. Мислим да стварно људско биће није гледало моју апликацију.
  • Мицрософт : Након подношења, брзи програмски преглед ухватио је проблем који се односи на погрешне формате икона. Након проласка, човек је прегледао моју апликацију у року од 4 дана.

Победник : Аппле.

Сигурно ми се као програмеру свиђа чињеница да је моја апликација тренутно била у Гоогле Плаи продавници. Али то је само зато што, претпостављам, то човек заправо није прегледао.

Аппле је имао најбрже време за стварни преглед људи. Ажурирања су такође прошла преглед у року од 24 сата.

Мицрософт је овде погођен или промашен. Почетни преглед трајао је 3 или 4 дана. Касније ажурирање трајало је 24 сата. Затим је за још једно ажурирање, где сам додао КСБок платформу, требало још 3-4 дана.

Закључак

Болно је и кошта новац узимати постојећи ПВА и омогућити им да буду функционални на мобилним платформама и наведени у Апп Сторе-у.

Победник : Гоогле. Олакшали су им улазак у продавницу апликација. Омогућило је најлакшу интеграцију у матичну платформу, покушавајући да стандардизују веб АПИ-је које ОС платформе могу покупити (здраво, љупки навигатор.медиаСессион)

Другопласирани : Мицрософт. Олакшали су вам посипање ваше веб апликације магијом, претворивши је у пакет који можете послати у њихову продавницу. (То се може учинити бесплатно помоћу странице ПВАБуилдер!) Интегрисање са њиховом платформом значи коришћење аутоматски убаченог прозора.Виндовс. * ЈаваСцрипт простор имена. Није лоше.

Губитник : Аппле. Не захтевајте да купим Мац за израду иОС апликације. Не приморавајте ме да користим изворне омотаче за интеграцију са вашом платформом. Не захтевајте од мене да се зезам са безбедносним сертификатима; нека ваши алати за израду направе мене за мене и аутоматски их ускладиште на мом налогу за Дев Центер. Не терајте ме да користим две различите локације: Аппле Дев Центер и иТунес Цоннецт.

Завршне мисли: Веб увек побеђује. Победио је Фласх. Убио је Силверлигхт. Уништио је изворне апликације на радној површини. Прегледник је богата клијентска платформа. ОС је само покретач претраживача и хардверски комуникатор.

Веб ће победити и на мобилним уређајима. Програмери не желе да граде 3 одвојене апликације за главне платформе. Компаније не желе да плате за развој 3 апликације.

Одговор на све ово је веб. Можемо да правимо богате веб апликације - Прогресивне веб апликације - и да их пакујемо за све продавнице апликација.

Аппле посебно има перверзни подстицај да заустави напредак веба. То је исти подстицај да Мицрософт је крајем 90-их година и почетком 2000-их: жели да буде платформа за добре апликације. ПВА то подривају; трче свуда.

Моја софтверска мудрост је следећа: ПВА ће на крају победити и престићи матичне мобилне апликације. За 5–10 година, изворне иОС апликације биће уобичајене као и Вин32 Ц. Аппле ће ударати и вриштати, држећи иОС Сафари иза криве, блокирајући ПВА напредак тамо где могу. (Чак и њихова недавна „подршка“ за ПВА у иОС Сафари 11.1 заправо осакаћује ПВА.)

Мој предлог платформама за мобилне апликације је да прихвате неизбежно и аутоматски додају квалитетне ПВА-ове у вашу продавницу апликација или омогућавају програмерима да лако (нпр. Бесплатно и са 3 клика или мање) предају ПВА у вашу продавницу.

Читаоци, надам се да је ово био користан поглед на ПВА-ове у продавницама апликација у 2018. години.

Да ли сте послали ПВА продавници апликација? Волео бих да чујем ваше искуство у одељку за коментаре. И можете прочитати више мојих постова на блогу на мом блогу.