Innehållsförteckning:
Har du hört? HTML5-appar kommer att förändra allt, förmodligen nästa år. Det är åtminstone vad en sida av debatten om HTML5 kontra native apps har sagt ett tag. Det är ett meddelande som tar sig fram till rampljuset då och då, och det kommer att vara så för alltid. Eller åtminstone tills det faktiskt händer och alla de bästa apparna är HTML5-appar. Det är inte ovanligt att utvecklare har sådana slags debatter och förespråkare på varje sida som förklarar hur deras version är den bättre versionen, men när saker går utöver en utvecklare diskussion och in i mainstream där du och jag hör dem, kan de göra oss dumma. Bör vi verkligen bry oss om vad vi hör?
I det här fallet, ja. Medan utopian där varje app är skriven i HTML5 och varje användare har samma upplevelse fortfarande är en bra väg om det någonsin händer, är HTML5 i en hybridform redan en ganska stor sak. Vi borde veta och förstå allt som är ganska stort.
Vad är en HTML5-app?
Första gången de flesta hörde HTML5 nämns var när Steve Jobs berättade för oss att det skulle vara framtidens webben och Flash inte skulle göra det. Hans uttalande gällde delvis för att Apple blockerade åtkomst till någon form av Flash-spelare på iOS, men det krävde ingen visionär av något slag för att veta att detta skulle komma eftersom HTML5 har mycket mer åt det än Flash någonsin gjorde. Och det händer bara så att framtiden för webben också är ett ganska bra sätt att koda applikationer.
HTML står för HyperText Markup Language, och vi är vid den femte revisionen av standarden. Men när du hör termen HTML5-app, oavsett om det betyder en webbapp eller en app du kan installera på din telefon, har du verkligen tre typer av kod.
- HTML ger ett ramverk där utvecklare kan sätta sin kod och en applikation kan förvandla den till något vi kan se och interagera med.
- CSS ger ett sätt att utforma hur enskilda kodbitar kommer att se ut när de återges och visas på vår skärm.
- JavaScript är det som gör allt interaktivt och kunna "göra" vad som helst.
Det som gör HTML5 bra är att allt förstås av en applikation som en apputvecklare inte behöver underhålla och allt fungerar på alla enheter med en skärm som har sin egen version av den appen. Vi pratar om en webbläsare, men inte själva webbläsarappen. Komponenten i en webbläsare som kan ta all den här koden och göra den till något vi kan använda i farten är ganska bärbar och en del av en massa appar som du redan använder som webbvy.
En Mozilla-ingenjör sa en gång "Kod en gång kör någonstans betyder inte att fly. Optimering är nyckeln." Smarta killar, Mozilla-ingenjörerna.
Vad detta betyder är att en utvecklare kan skriva sin kod och finjustera den och sedan distribuera den överallt. Det är mycket annorlunda än att skriva separat kod för Android, iOS, macOS, Windows och HTML för webOS och BlackBerry 10. En utvecklare kan skriva kod med vilken utvecklingsmiljö de väljer, vare sig det är Notepad eller något komplex som Visual Studio eller Adobe Dreamweaver, felsöka och finjustera det i vilken webbläsare de väljer, och det fungerar fortfarande bara överallt.
Det inkluderar också din telefon. Vi har alla sett HTML5-appar som används som en webbsida. Platser som Twitter eller mobilversionen av Gmail är utmärkta exempel på HTML5 på jobbet. Men eftersom HTML5 kan återges av en webbvisningskomponent är det enkelt och snabbt att släppa ett fönster i en grundläggande appram för att skapa en app som du faktiskt installerar på din telefon. Det finns till och med tredjepartsverktyg som gör allt arbete åt dig, som Apache Cordova. Detta hjälper nya utvecklare ta med sig sina idéer till alla såväl som erfarna utvecklare som nu har tid att drömma upp saker vi inte har sett förut. HTML5 inbäddat i en inbyggd app kan köra koden och använda tillgångar som den får från internet, men en utvecklare kan också installera dessa lokalt och peka koden där för onödiga inhemska appar för offline-till-godhet.
Men inte allt är bra med HTML5.
Verkligheten för HTML5-appar
Här kan saker och ting bli förvirrande. När vi tänker på en webbsida glömmer vi ofta att en webbsida bara skickar sin kod till en webbläsarmotor och det är vår enhet som gör jobbet. Det betyder att saker som geolokalisering, realtidsljud och videochatt, 3D-accelererad grafik och mycket mer inte bara är möjliga utan enkelt för en utvecklare att implementera med HTML5. Det beror på att en standardorganisation har sagt: "Hej killar, vi måste alla göra den här saken på detta sätt och en utvecklare kan be oss att göra det så här."
Det är ändå målet. Verkligheten kan vara lite annorlunda, och vi behöver bara titta på videouppspelning för ett bra exempel på varför. Varje webbläsare du vill använda stöder HTML5: Chrome, Opera, Internet Explorer, Edge, Firefox och Safari är HTML5-webbläsare och stöder videouppspelning när en utvecklare bara skriver några ord som pekar på en video. Alla typer av bärbara webbvyskomponenter som dessa appar har kommer att göra samma sak eftersom de använder samma renderingmotor.
När du inte verkställer regler blir de förslag; de som ingen vill följa.
Men de stöder inte alla samma typ av video eftersom HTML5 är platt-plattform, öppen och inte proprietär, så ingen tvingar dem att stödja alla format. Ogg Theora är ett populärt videoformat som alla webbläsare stöder utom Internet Explorer, som råkar vara standardwebbläsaren på många datorer. H.264 är ännu mer populär, men det är inte öppet eller gratis att använda så Firefox stöder inte det. VP8 och WebM är gratis att använda och öppna och varje webbläsarmotor stöder dem, men Internet Explorer och Safari kräver att användaren hämtar och installerar support. Tekniskt stöder HTML5 HD-videouppspelning och är superlätt för en utvecklare att implementera den. I den verkliga världen stöds bara rätt typ av video.
YouTube spelar all video med HTML5 eftersom Google har pengar att konvertera videoklipp som du laddar upp.
HTML5 beror också på den hårdvara som används och hur skicklig utvecklaren är när det gäller att skriva koden. Att välja fel JavaScript-bibliotek kan fortfarande ge samma resultat, men det kan också leda till minnesläckor och hantering av DOM-manipulering (Document Object Model - skapad när en sida eller app laddas, och inkluderar alla element på sidan eller i appen som ett separat "dokument") dåligt kan göra en HTML5-app frustrerande långsam på även den bästa hårdvaran. På telefoner som inte är lika kapabla leder det snabbt till att användare avinstallerar din app.
Det är inte den enda frågan. När du bygger en HTML5-app som drar allt från internet måste du ta itu med laddningstider. Det lägger till en användares anslutningshastighet i listan över saker som kan göra att din app körs långsamt, tillsammans med maskinvarans fysiska kapacitet (många telefoner använder processorer som inte är exakt snabba) och kodoptimering. Om det tar en sekund att visa din kod på en användarenhet och 10 sekunder att hämta den från internet kommer du att ha många olyckliga användare.
Facebook-appen är ett exempel på vad som är fel med HTML5 precis som Instagram är ett exempel på vad som är rätt.
Det finns ett utmärkt exempel på detta tillgängliga, och det har nästan alla av oss varit nöjda med oavsett vilken typ av telefon vi använder: Facebook-appen. Facebook-appen är i princip en webbvy som är inbäddad i en ram som håller knapparna och hjälper till att hantera dina kontouppgifter eller trycka meddelanden på ett sätt som operativsystemet godkänner. Alla saker som händer inne i appen är gjorda med HTML5, och det är bara för mycket för att hantera när du väljer att hämta alla dess data från internet. Utvecklare fortsätter att lägga mer och mer till Facebook, användare lägger ut stora filer som värd på platser utanför Facebook, och det finns miljoner och miljoner människor som träffar Facebooks servrar samtidigt, dygnet runt. Det gör att apparna är långsamma att uppdateras, mycket hungriga och föremål för många klagomål.
Facebooks mobilwebbplats är också skriven i HTML5, men den är utformad för att vara lite på resurser eftersom den är för mobil användning. Det gör det snabbare att ladda innehållet du vill se även om allt detta innehåll inte visas lika trevligt som det är i hela vyn. Det är också anledningen till att mobilwebbplatsen och Facebook "lite" -apparna som refererar till den fungerar så mycket bättre än Facebooks officiella app. Och detta är inte bara ett Facebook-problem - det finns många appar som skulle ha alla deras funktioner som stöds med HTML5 men är lika komplexa (ett fint ord för uppblåsthet eftersom de har funnits ett tag och ständigt förändras) som Facebook och skulle agera på samma sätt.
Så vill jag se fler HTML5-appar eller inte?
ja! Men inte alla appar.
HTML5 är riktigt bra på många saker och är ett utmärkt sätt för en utvecklare att använda sin tid på att tänka på kreativa idéer istället för att rotera genom en Objekt-C eller C ++ referensmanual. Men ibland är den stela strukturen i utvecklingsspråk som tvingar en utvecklare att göra saker på ett visst sätt det som gör att slutresultatet fungerar bättre på våra telefoner.
HTML5-appar kan vara en mardröm som vi ser från Facebook-appen eller de kan vara ganska häftiga som vi ser från den mobila Gmail-webbplatsen. Eller Uber. Eller Instagram. Eller någon av de hundratals HTML5-apparna vi använder varje dag. Det är inte en sak som vi borde behöva oroa oss för, men det är helt och hållet en sak för utvecklare att oändligt diskutera. Och nu medan de diskuterar och försöker övertyga dig om det som är bättre, vet du lite om varför de säger sakerna de säger.
Vi kan tjäna en provision för inköp med våra länkar. Läs mer.