Indholdsfortegnelse:
Har du hørt? HTML5-apps ændrer alt, sandsynligvis næste år. Det er i det mindste hvad den ene side af debatten om HTML5 versus native apps har sagt i et stykke tid. Det er en besked, der kommer vej til rampelyset nu og da, og den vil være sådan for evigt. Eller i det mindste indtil det faktisk sker, og alle de bedste apps er HTML5-apps. Det er ikke usædvanligt at se udviklere have disse slags debatter og fortalere på hver side, der forklarer, hvordan deres version er den bedre version, men når ting går ud over en udviklerdiskussion og ind i mainstream, hvor du og jeg hører dem, kan de gøre os følelsesløse. Bør vi virkelig bekymre os om det, vi hører?
I dette tilfælde, ja. Mens utopien, hvor hver app er skrevet i HTML5 og hver bruger har den samme oplevelse, stadig er en god måde at gå af på, hvis det nogensinde sker, er HTML5 i en hybridform allerede en ret stor aftale. Vi bør vide og forstå alt, hvad det er en ret stor aftale.
Hvad er en HTML5-app?
Første gang de fleste hørte HTML5 blive nævnt var da Steve Jobs fortalte os, at det ville være fremtidens internet, og Flash ville ikke. Hans erklæring blev sandt delvist fordi Apple blokerede adgangen til enhver form for Flash-afspiller på iOS, men det krævede ikke en visionær af nogen art at vide, at dette kom, fordi HTML5 har meget mere at gøre for det end Flash nogensinde gjorde. Og det sker bare så, at fremtiden for internettet også er en ret god måde at kode applikationer på.
HTML står for HyperText Markup Language, og vi er ved den 5. revision af standarden. Men når du hører udtrykket HTML5-app, uanset om det betyder en web-app eller en app, du kan installere på din telefon, har du virkelig at gøre med tre typer koder.
- HTML giver en ramme, hvor udviklere kan sætte deres kode, og en applikation kan forvandle den til noget, vi kan se og interagere med.
- CSS giver en måde at layout, hvordan individuelle kodestykker ser ud, når de er gengivet og vises på vores skærm.
- JavaScript er det, der gør det hele interaktivt og kunne "gøre" noget.
Det, der gør HTML5 godt, er, at alt forstås af en applikation, som en appudvikler ikke har brug for at vedligeholde, og det hele fungerer på enhver enhed med en skærm, der har sin egen version af den app. Vi taler om en webbrowser, men ikke selve webbrowser-appen. Komponenten i en webbrowser, der kan tage al denne kode og gengive den til noget, vi kan bruge på farten, er ret bærbar og en del af en masse apps, som du allerede bruger som webvisning.
En Mozilla-ingeniør sagde engang "Kode, når en gang køres hvor som helst betyder ikke at løbe væk. Optimering er nøglen." Smarte fyre, disse Mozilla-ingeniører.
Hvad dette betyder er, at en udvikler kan skrive sin kode og finjustere den og derefter implementere den overalt. Det er meget anderledes end at skrive separat kode til Android, iOS, macOS, Windows og HTML til webOS og BlackBerry 10. En udvikler kan skrive kode ved hjælp af uanset udviklingsmiljø, de vælger, hvad enten det er Notepad eller noget komplekst som Visual Studio eller Adobe Dreamweaver, debug og finjuster det i den browser, de vælger, og det fungerer stadig bare overalt.
Det inkluderer også din telefon. Vi har alle set HTML5-apps bruges som en webside. Steder som Twitter eller mobilversionen af Gmail er fremragende eksempler på HTML5 på arbejdspladsen. Men da HTML5 kan gengives af en webvisningskomponent, er det nemt og hurtigt at droppe et vindue i en grundlæggende appramme for at oprette en app, du faktisk installerer på din telefon. Der er endda tredjepartsværktøjer, der gør alt det arbejde for dig, som Apache Cordova. Dette hjælper nye udviklere med at bringe deres ideer til alle såvel som erfarne udviklere, der nu har tid til at drømme op ting, vi ikke har set før. HTML5, der er integreret i en indbygget app, kan køre koden og bruge aktiver, den får fra internettet, men en udvikler kan også installere disse lokalt og pege koden der for ærlige-til-godhed-native apps til offline.
Men ikke alt er godt ved HTML5.
Virkeligheden af HTML5-apps
Her kan tingene blive forvirrende. Når vi tænker på en webside, glemmer vi ofte, at en webside kun sender sin kode til en browsermotor, og det er vores enhed, der gør arbejdet. Det betyder ting som geolocation, real-time lyd og videochat, 3D-accelereret grafik og meget mere er ikke kun mulige, men enkle for en udvikler at implementere ved hjælp af HTML5. Det skyldes, at et standardorgan har sagt: "Hej fyre, vi er alle nødt til at gøre denne bestemte ting på denne særlige måde, og en udvikler kan bede os om at gøre det på denne måde."
Det er alligevel målet. Virkeligheden kan være lidt anderledes, og vi behøver kun at se på videoafspilning for et godt eksempel på hvorfor. Hver browser, du gerne vil bruge, understøtter HTML5: Chrome, Opera, Internet Explorer, Edge, Firefox og Safari er HTML5-browsere og understøtter videoafspilning, når en udvikler kun skriver et par ord, der peger på en video. Enhver type bærbar webvisningskomponent, som disse apps har, vil gøre det samme, fordi de bruger den samme gengivelsesmotor.
Når du ikke håndhæver regler, bliver de forslag; dem, som ingen ønsker at følge.
Men de understøtter ikke alle den samme type video, fordi HTML5 er tværplatform, åben og ikke proprietær, så ingen tvinger dem til at støtte alle formater. Ogg Theora er et populært videoformat, som enhver browser understøtter bortset fra Internet Explorer, som tilfældigvis er standardbrowser på mange computere. H.264 er endnu mere populær, men det er ikke åbent eller gratis at bruge, så Firefox ikke understøtter det. VP8 og WebM er gratis at bruge og åbne, og enhver browsermotor understøtter dem, men Internet Explorer og Safari kræver, at brugeren henter og installerer support. Teknisk understøtter HTML5 HD-videoafspilning og er super let for en udvikler at implementere den. I den virkelige verden understøttes kun den rigtige type video.
YouTube spiller al video med HTML5, fordi Google har penge til at konvertere de videoer, du uploader.
HTML5 afhænger også af den hardware, der er i brug, og hvor dygtig udvikleren er, når det kommer til at skrive koden. Valg af forkert JavaScript-bibliotek kan muligvis stadig give det samme resultat, men det kan også føre til hukommelseslækager og håndtering af DOM-manipulation (Dokumentobjektmodel - oprettet, når en side eller app indlæses, og inkluderer hvert element på siden eller i appen som et separat "dokument") dårligt kan gøre en HTML5-app frustrerende langsom på selv den bedste hardware. På telefoner, der ikke er så dygtige, fører det hurtigt til, at brugere afinstallerer din app.
Det er ikke det eneste problem. Når du bygger en HTML5-app, der trækker alt fra internettet, er du nødt til at håndtere indlæsningstider. Det tilføjer en brugers forbindelseshastighed på listen over ting, der kan få din app til at køre langsomt sammen med de fysiske egenskaber på hardwaren (mange telefoner bruger processorer, der ikke er nøjagtigt hurtig) og kodeoptimering. Hvis det tager et sekund at få vist din kode på en brugerenhed og 10 sekunder at hente den fra internettet, vil du have en masse ulykkelige brugere.
Facebook-appen er et eksempel på, hvad der er galt med HTML5, ligesom Instagram er et eksempel på, hvad der er rigtigt.
Der er et fremragende eksempel på dette tilgængelige, og dets næsten alle af os har været utilfredse med uanset hvilken type telefon vi bruger: Facebook-appen. Facebook-appen er dybest set en webvisning, der er integreret i en ramme, der indeholder knapperne og hjælper med at administrere dine kontooplysninger eller skubbe meddelelser på en måde, som operativsystemet godkender. Alle de ting, der sker inde i appen, er udført med HTML5, og det er bare for meget til at håndtere det, når du først er med til at hente alle dens data fra internettet. Udviklere tilføjer stadig mere og mere til Facebook, og brugerne lægger store filer, der er vært hos steder uden for Facebook, og der er millioner og millioner af mennesker, der rammer Facebooks servere på én gang, døgnet rundt. Det gør apps langsomt til at opdatere, meget magt sultne og genstand for en masse klager.
Facebooks mobilwebsted er også skrevet i HTML5, men det er designet til at være lite på ressourcerne, fordi det er til mobil brug. Det gør det hurtigere at indlæse det indhold, du vil se, selvom alt dette indhold ikke vises så godt som det er i fuld visning. Det er også grunden til, at mobilwebsite og Facebook "lite" -apper, der refererer til det fungerer så meget bedre end Facebooks officielle app. Og dette er ikke kun et Facebook-problem - der er masser af apps, der ville have alle deres funktioner understøttet ved hjælp af HTML5, men er lige så komplekse (et godt ord til oppustethed, fordi de har været i et stykke tid og konstant ændrer sig) som Facebook og ville handle på samme måde.
Så vil jeg se flere HTML5-apps eller ej?
Ja! Men ikke alle apps.
HTML5 er virkelig god til en masse ting og er en fantastisk måde for en udvikler at bruge sin tid til at tænke på kreative ideer i stedet for at rodfæste gennem en Objekt-C eller C ++ referencemanual. Men nogle gange er den stive struktur i udviklingssprog, der tvinger en udvikler til at gøre tingene på en bestemt måde, det, der får slutresultatet til at fungere bedre på vores telefoner.
HTML5-apps kan være et mareridt, som vi ser fra Facebook-appen, eller de kan være temmelig fantastiske, som vi ser fra det mobile Gmail-websted. Eller Uber. Eller Instagram. Eller en af de hundreder af HTML5-apps, vi bruger hver dag. Det er ikke noget, vi skulle være nødt til at bekymre os om, men det er totalt en ting for udviklere at uendelige debattere. Og nu, mens de diskuterer og forsøger at overbevise dig om, hvad der er bedre, ved du lidt om, hvorfor de siger de ting, de siger.
Vi tjener muligvis en provision for køb ved hjælp af vores links. Lær mere.