У чым розніца паміж HTML5, Native і гібрыдным дадаткам? Што лепш?


адказ 1:
  • Роднае прыкладанне: прадастаўляецца праз Play Store, App Store і Microsoft Store. Вы можаце атрымаць доступ да родных бібліятэк, такіх як камера, геолокация, кантакты, якія захоўваюцца на прыладзе, файлавая сістэма, акселерометр і г.д. Выдатная прадукцыйнасць і плыўная анімацыя праз прамы доступ да графічнай бібліятэцы прылады. Патрабуе больш часу і ведаў для распрацоўкі. Android: JavaiOS / macOS: Дадатак C / SwiftWindows: .Net Framework. Для абнаўлення прыкладання нам давядзецца зноў абнавіць пакет і зрабіць яго даступным у адпаведнай краме прыкладанняў. Вэб-дадатак: прадастаўляецца праз браўзэр. Доступ да некаторых родных функцый, такіх як камера, мікрафон. Мае больш нізкую прадукцыйнасць у параўнанні з роднымі прыкладаннямі. Аднак прадукцыйнасць залежыць і ад версіі браўзэра, якую мы выкарыстоўваем. Браўзэр прапануе больш высокую прадукцыйнасць. Неабходныя навыкі распрацоўкі: HTML, CSS і JavaScript Для абнаўленняў прыкладання мы можам прадаставіць іх непасрэдна на серверы, і нашы карыстальнікі могуць атрымаць абнаўленні неадкладна без неабходнасці самастойна абнаўляць прыкладанне. Просты дэ-дэ, але код можна звесці да мінімуму праз працэс мінімізацыі кода. Гібрыднае прыкладанне: прадастаўляецца праз Play Store, App Store і Microsoft Store. Забяспечвае доступ да родных бібліятэк, такіх як Native App Роднае прыкладанне. Неабходныя навыкі распрацоўкі: як у інтэрнэт-дадатку, але дадатковыя навыкі, такія як Кордова, PhoneGap і г.д. Лёгка расшыфраваць, але код можна звесці да мінімуму праз працэс мінімізацыі кода. Што лепш: залежыць ад платформы. Вэб: Web AppStore: мудры гібрыд NativeDevelopment.

адказ 2:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 3:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 4:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 5:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 6:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 7:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 8:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 9:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 10:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 11:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 12:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 13:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 14:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 15:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 16:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 17:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 18:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.


адказ 19:

Я бачу шмат непаразуменняў у адказах тут.

Па-першае, азначэнні:

  • HTML5 - гэта тэхналогія, якая (часткова) вызначае знешні выгляд сайта. HTML5 можа быць прадастаўлены вэб-сайтам і прадстаўлены як "вэб-дадатак" на вашым тэлефоне. Ён таксама выкарыстоўваецца ў гібрыдных дадатках для адлюстравання візуальных частак (элементаў кіравання і г.д.). Кожнае прыкладанне, якое вы можаце апублікаваць у краме, - гэта роднае прыкладанне. Калі людзі кажуць "роднае прыкладанне", яны часта азначаюць "не гібрыд", але існуе няправільны няправільны падзел паміж "родным" і ўсім астатнім, хоць на самай справе існуе мноства варыянтаў. HTML5 і JavaScript кіруюць большасцю гібрыдных прыкладанняў.

Я мяркую, што вы сапраўды параўноўваеце "вэб-прыкладанне", "прыкладанне, напісанае на Java для Android і Objective C або Swift для iOS" і "дадатак, напісанае ў Cordova / PhoneGap". Аднак гэта не адзіныя тры варыянты, таму я хацеў бы дадаць яшчэ некалькі варыянтаў для параўнання. Кароткі змест варыянтаў, пра якія я думаю, можна знайсці ў наступнай табліцы:

Як бачыце, "родныя" і "гібрыдныя" - не адзіныя варыянты. Cordova / Ionic - гэта гібрыдныя тэхналогіі: візуалізацыя адбываецца ў WebView, хоць вы можаце выкарыстоўваць родныя функцыі прылады, недаступныя на вэб-сайце (камера, апавяшчэнні і г.д.).

Вы можаце ствараць міжплатформенныя прыкладанні з роднай прадукцыйнасцю. У большасці гульняў ужо шмат гадоў выкарыстоўваюцца метады распрацоўкі міжплатформавых плат, і гульні больш адчувальныя да прадукцыйнасці, чым большасць прыкладанняў.

Ёсць Unity3d, Cocos2d-x і многія іншыя міжплатформенныя асяроддзі распрацоўкі, якія даюць вам поўную прадукцыйнасць для вашай гульні (у некаторых выпадках лепш, чым "родную"), і вы павінны пісаць толькі адзін раз.

Аднак гульнявыя рухавікі не ідэальныя для агульных прыкладанняў. Якія ў нас варыянты?

"Гібрыдная" распрацоўка была шмат даганяльнага ў апошнія гады. Цукерберг адметна сцвярджаў, што гібрыд проста "недастаткова добры". Але тады Sencha Mobile стварыў клон Facebook на базе WebView, які даказаў, што на самай справе гэта можна зрабіць дастаткова хутка. Прачытайце пра гэта ў "Стварэнне хуткай кнігі": гісторыя кахання HTML5.

Такім чынам, вы можаце выкарыстоўваць гібрыд, і Cordova / PhoneGap - верагодна, самая спелая платформа, на якой можна пабудаваць. Акрамя таго, ёсць і іншыя варыянты: Ionic Framework заснаваны на Cordova і прапануе вам дадатковыя элементы кіравання платформай, каб ваша прыкладанне выглядала на Android або iOS, сумяшчальным з адпаведнай платформай. З дапамогай Meteor вы можаце ствараць поўныя стэкі прыкладанняў, якія падзяляюць код, і вы можаце арыентавацца на iOS, Android, вэб-прыкладанні і код сервера на тую ж базу кода.

Але я пералічыў больш варыянтаў у табліцы вышэй, чым Кордава. Часам вы хочаце, каб кіраваць элементамі кіравання, і пры дапамозе некалькіх вышэйпералічаных варыянтаў вы можаце стварыць убудаваныя элементы кіравання са свайго кросплатформавага прыкладання.

З дапамогай React Native і Xamarin вы можаце ствараць родныя элементы кіравання, ствараючы розныя шляхі кода для кожнай платформы: для канкрэтнага элемента кіравання вызначыце, як гэта выглядае на Android і iOS.

NativeScript і Tabris.js не ўтрымліваюць агульных элементаў кіравання, таму вы можаце вызначыць свой макет адзін раз і выкарыстоўваць яго на абедзвюх платформах. Ёсць больш новая функцыя Xamarin, з якой вы можаце працаваць, хоць я не чуў, наколькі добра гэта працуе.

Kivy не выкарыстоўвае натыўныя элементы кіравання, гэта своеасаблівая гульнявая машына, якая проста дае інструменты, якія звычайна патрэбныя для напісання прыкладання. Замест таго, каб выглядаць як прыкладанне для Android або iOS, больш верагодна, стварыць нешта, што падобна на цалкам наладжанае прыкладанне. Прадукцыйнасць не павінна быць вузкім месцам, але вам можа і не спадабацца стыль.

Іншыя меркаванні:

  • Важная асаблівасць, якую прапануюць некаторыя JavaScript-рашэнні, - гэта абнаўленне Live: Магчымасць адпраўляць новую версію прыкладання карыстальнікам, не чакаючы іх абнаўлення ў краме альбо для таго, каб крама ўхваліў абнаўленне. . Паколькі выпуск у Apple Store можа заняць некалькі дзён ці тыдняў, магчымасць адправіць патч для карыстальнікаў практычна адразу з'яўляецца вельмі магутнай. Гэта таксама азначае, што вам не прыйдзецца падтрымліваць старыя версіі API, калі ў вас ёсць, бо вы можаце гарантаваць, што прыкладанне выкарыстоўвае найноўшы кліент API. Native дае вам доступ да інструментаў распрацоўкі платформы, якія звычайна добрыя. У развіцці гібрыдаў вы атрымліваеце доступ да дзіўна добрых інструментаў адладкі Chrome і інструментаў Safari, якія дапамогуць вам адладжваць прыкладанне ў рэжыме рэальнага часу. Іншыя падыходы да JavaScript звычайна таксама прапануюць магчымасць падлучэння Chrome. React Native, у прыватнасці, падтрымлівае перазагрузку ў рэжыме рэальнага часу: змяніце аспект старонкі, якую вы праглядаеце, і яна будзе паўторна вынесена, як калі б вы перавялі ўсю старонку кода назад да гэтага моманту. Гэта як момант, калі вы перазагрузіце прыкладанне і прымеце тыя ж рашэнні. Родныя SDK звычайна шматслоўныя і раздражняюць заняцца нейкімі агульнымі справамі. Калі экасістэма ўбудовы даступная, гэта азначае, што даданне плацяжоў у дадатку ўжо не з'яўляецца праблемай, але таксама дадасць убудова і карыстацкі інтэрфейс. Тое ж самае і для ўваходу ў Facebook, апавяшчэнняў і г.д., убудаваная экасістэма Кордовы - адна з лепшых, але NativeScript выглядае ўражліва. NativeScript прапануе цікавую функцыю: яна абгортвае ўсе API аперацыйнай сістэмы з JavaScript, так што як толькі новы API будзе апублікаваны, вы можаце адразу ж атрымаць доступ да яго і выклікаць непасрэдна. Ад JavaScript. Без родных убудоў. Калі ў вас ёсць сур'ёзныя патрабаванні да апрацоўкі дадзеных, вы, верагодна, хочаце "сапраўдны" родны код, пад якім я маю на ўвазе C / C ++ / Go / Rust ці нешта падобнае. У большасці прыкладанняў гэтага не трэба, але ў гэтым выпадку вы можаце ўбудаваць свой родны код у дадатак практычна ў любой з вышэйпералічаных умоў. Аднак для пэўных платформаў можа спатрэбіцца падключыць кабель. Гэта не ўлічваецца ў малюнку "Эканомія" вышэй, бо гэта не тычыцца большасці прыкладанняў. Адзнакі ў прыведзенай табліцы - гэта толькі ацэнкі. Шмат хто (на маю памяць) узяты з таго, пра што сцвярджала каманда, якая распрацавала тэхналогію, але многія сапраўды здагадваюцца. Ваш прабег можа мяняцца. Калі для вашага прыкладання вам патрэбен іншы плагін, ён амаль напэўна даступны для iOS / Android, але не абавязкова для іншых прыкладанняў. Шмат убудоў даступна для Кордовы. Аднак, калі вы не хочаце выкарыстоўваць яго, вам трэба будзе дадаць дадатковыя выдаткі на стварэнне плагіна (альбо іншага ўбудовы) для Кордовы для гэтай тэхналогіі. Гэта таксама павялічвае выдаткі. Калі вам патрэбныя значныя часткі вашага кода, каб стаць убудовай, якую могуць выкарыстоўваць іншыя кампаніі, ёсць дастаткова людзей, якія распрацоўваюць натыўны код, таму вы, верагодна, больш не зможаце распрацаваць родны код.

Выснова: вельмі мала прычын, каб больш не развіваць уласны SDK платформы непасрэдна, і гэта каштуе амаль удвая. Калі вы не падзяляеце свой код як убудова для іншых, я настойліва рэкамендую знайсці і выкарыстоўваць кросплатформеннае рашэнне.

ЗДАБАЎСЯ, каб дадаць інфармацыю пра жывое абнаўленне ("Гарачае выпраўленне"), пра што згадваў Шай Алон у каментарах.