Vad behöver webbutvecklare veta om Internet of Things?
# Webbutveckling uppstod i början av Internetåldern, när vi började få snabbare, kraftfullare datorer att prata med varandra över telefonlinjer. Allt eftersom internet blev mer sofistikerat; webbutvecklingen blev mer teknisk och mer professionell. Nu lämnar vi Internetåldern bakom oss och går in i Internet of Things (IoT) Age, där enheter som aldrig ansågs vara datorer kan prata med varandra, med användare och med servrar på ett sätt som vi precis kan tänka. Idag går vi inte nödvändigtvis in på webbsidor på datorskärmar för att köpa saker. Istället ber vi Alexa att köpa något genom vårt röstaktiverade Amazon Echo. Vi väntar inte bara tills vi är hemma med att byta termostaten. Vi länkar vårt Nest till vår smartphone och säger åt den att slå på värmen när vår telefon känner av att vi är cirka 30 minuter från huset. Just nu tycker vi att den här anslutningsnivån är ganska bekväm, men allt eftersom Internet of Things Age fortskrider kommer vi att upptäcka att våra enheter synkroniseras över arbete, lek och hem på ett aldrig tidigare skådat sätt. IoT kommer att vara så störande för våra liv som vi känner dem att det är svårt att exakt föreställa sig hur framtiden kommer att se ut, men det finns en sak vi vet säkert. IoT har redan haft en enorm inverkan på webbutveckling, och dess inverkan kommer bara att växa. Det betyder att alla webbutvecklare kommer att behöva överväga IoT någon gång. I syfte att komma före kurvan har vi beskrivit allt webbutvecklare behöver veta om Internet of Things. ##### Webbutveckling och Internet of Things Now Det här är vilda västern-dagarna för IoT-utveckling. Det finns mycket spekulationer och experiment, med lite standardisering för tillfället (minst fem stora organisationer arbetar med IoT-standarder samtidigt). Så vi vet inte exakt hur det kommer att gå. Men vi kan se att vissa områden dyker upp om och om igen när experter diskuterar IoT:s inverkan på webbutveckling idag. ##### Effekten av IoT på webbutveckling nu – **Baksidan finns överallt** : Just nu är varje enhet byggd i sin egen lilla värld. Varje företag har sitt eget sätt för enheter att ansluta och prata med varandra. Varje enhet samlar in sin egen typ av data och varje enhet använder sina egna typer av kommandon för att fungera. Det betyder att många apputveckling fokuserar på att helt enkelt få din app att passa ihop med andra redan etablerade appar. Node.js hjälper till med detta, eftersom det har dykt upp som ett ledande ramverk för att etablera kommunikation mellan IoT-enheter. Ändå är problemet knappast löst. – **Gränssnitt behöver enkelhet** : Ingen har tid att lista ut komplexa kommandon när det kommer till apparater, så det finns inget utrymme för bristande tydlighet i en kaffebryggares kontrollpanel. Med andra ord måste användargränssnitten vara lätta att plocka upp och lyhörda. Alla verktyg i ditt användbarhetsbälte kommer att användas när du designar användargränssnitten för IoT-enheter, särskilt eftersom de flesta företag vill att deras produkter ska styras från såväl smarta telefoner som från enheternas egna skärmar. Kontrollerna ska vara lika tydliga på telefonen som de är på maskinen. Komplexiteten ska bara komma in bakom kulisserna. Vad användaren behöver se är en ren, logisk design. – **Minska för nätverkslatens** : När du trycker på en knapp på din skrivare förväntar du dig att den ska börja skriva ut direkt. Men med IoT-enheter går kommandot från skärmen till servern till enheten, snarare än från skärmen direkt till enheten. Det extra steget kan skapa en buffert mellan kommandot och åtgärden, särskilt med långsamma nätverksanslutningar. Användare kommer att se en produkt som antingen är långsam eller ineffektiv, vilket de inte vill ha i sina liv. Så IoT-utvecklare måste designa appar som kan och kommer att hantera långsamma och till och med avbrutna anslutningar, så att användarna får vad de vill ha från sina enheter. – **Tänk på makten** : Vi älskar alla att tänka på makt, eller hur? Förhoppningsvis är svaret ”ja” eftersom IoT-utvecklare måste tänka på hur mycket datorkraft deras appar tar upp vid varje punkt. Varför? Eftersom de flesta IoT-enheter är batteridrivna, trådlösa och inte har mycket utrymme för omfattande minneskretsar. Ju mer komplex appen är, desto mer ström kommer chipet att behöva förbruka under längre tid, vilket kommer att förbruka batteriet och leda till besvikna kunder som ber om pengarna tillbaka. Kort sagt, varje del av en app design bör använda den absolut minimala mängden ström. – **Sekretess och säkerhet**: Det här området är lite svårt eftersom integritet och säkerhet är så subjektiva. Idéer om vad som är säkert och vad som bör hållas privat förändras hela tiden, särskilt när vi byter dem för bekvämlighets skull. Till exempel känner de flesta av oss oro över implanterbara sensorer som gör att våra arbetsgivare kan spåra våra rörelser, men anställda på svenska startupen Epic entre får gärna injektionerna – och till och med anordna fester för andra som frivilligt också vill ha implanterbar teknik. De nämner bekvämligheten med implanterbara ID-enheter som deras främsta motivation. Tänk också på alla rädslor kring onlineshopping i början av 2000-talet. Många av dessa farhågor har besannats, inklusive identitetsstöld och omfattande bedrägerier, men de flesta av oss byter gladeligen ut vår säkerhet mot bekvämligheten att handla från våra hem. Fortfarande, kriminella vet att att ha fler enheter anslutna till genomträngliga nätverk innebär fler möjligheter att lura och stjäla. Det är därför identitetsstöldskydd samt övergripande säkerhet och integritet måste byggas in i både själva nätverken och i apparna som enheterna använder. Ju fler murar som måste brytas in, desto mindre incitament och möjligheter har kriminella. – **Att hålla fast vid det du vet kommer inte att rädda dig** : Även om du bestämmer dig för att du inte vill arbeta med IoT-utveckling, måste du ändå överväga IoT när du utvecklar något. Tänk på det så här: uppskattningsvis 35,6 miljoner människor har röstaktiverade högtalare i sina hem. Just nu tenderar de att använda dem för att komma åt företagets egna webbplatser (som Amazon Echo-användare som beställer saker från Amazon). Men den här kapaciteten kommer att utökas, och användare förväntar sig att kunna komma åt vilken webbplats som helst från nästan vilken IoT-enhet som helst. Så det är bara en tidsfråga innan man, som responsiv design innan den, måste anta att en stor del av en webbplats användare kommer från en IoT-enhet och bygger därefter. ##### Språken du behöver kunna nu Så utvecklingen av IoT är i princip oundviklig, och du måste börja använda vissa språk när du börjar utveckla för IoT. Det finns många programmeringsspråk som används idag, men dessa är de som används mest av IoT-utvecklare. – **C** : Det här är ett vanligt val just nu, bara för att det är ett strömlinjeformat språk som fungerar bra med enheter som har begränsat minne. När enheterna blir mer avancerade kommer dock funktionerna i C att överträffas. – **C++** :Detta är det mest komplexa av de vanligaste språken nu, eftersom det är kraftfullt men ändå ganska smidigt. Tyvärr betyder dess komplexitet att den inte används för brett, eftersom de flesta IoT-enheter inte kan hantera det för tillfället. Så det kan innebära att det inte kommer att antas i framtiden heller, eftersom utvecklare kommer på sätt att hantera utvecklingsproblem med högre nivåer och mer vanliga språk. – **Java** : Java är bland de vanligaste utvecklingsspråken, så nästan alla vet hur man använder det. Dessutom, även om det inte är lika kraftfullt som C++, är det ändå lättare för de begränsade minnena av dagens IoT-enheter att hantera. Kombinera dessa två saker – dess breda användning och dess lämplighet för de flesta aktuella utvecklingsbehov – och du har ett av de mest populära utvecklingsspråken. – **Python** : Detta är det andra stora språket i IoT-utveckling just nu, av många av samma anledningar som Java. Det är väletablerat, brett lärt ut och flexibelt. En stor sak för det är Raspberry Pi. Som Pi:s huvudsakliga programmeringsspråk är Python central för IoT-utveckling. Pi:s kraft, ringa storlek och låga pris betyder att den är idealisk för elever och experimenterande, och den används nu i allt från robotforskning till att bygga ganska enkla rörelseaktiverade kameror. ##### Framtiden för IoT och webbutveckling Detta kan vara en tid av experiment och vilda spekulationer, men det finns fortfarande några tydliga förändringar precis vid horisonten. Webbplatser kommer inte att vara den enda platsen där konsumenter efterforskar och köper produkter. Lagerstyrande appar och sensorer som spårar kontorsanställdas effektivitet kommer att bli lika vanliga i människors vardagliga aktiviteter som smarta värmare och internettillgängliga babymonitorer. Inom IoT-området måste Google och Apple antingen lära sig att spela tillsammans, eller så kommer det ena att äta upp det andra, för så småningom kommer allt att fungera sömlöst. Experter är dock ganska säkra på att den största utmaningen för webbutvecklare i synnerhet kommer att vara förändringen i tankesättet. Istället för att tänka på enskilda enheter och hur de kan använda internet, kommer utvecklare att behöva använda omfattande användardata för att forma tjänster, nästan oavsett produkt. ##### Där IoT sannolikt kommer att påverka webbutvecklingen i framtiden – **Appar för nätverk, inte bara enheter**: Just nu fungerar appar för IoT-enheter som skräddarsydda lösningar för dessa specifika produkter. Utvecklare tänker på en häftig sak som de vill att en enhet ska göra, och de började bygga instruktionerna för det. I framtiden kommer dock IoT-utvecklare att behöva börja tänka bredare. Istället för att komma med appar för enstaka enheter måste du kunna skapa appar som fungerar över ett nätverk. Tänk på det så här: för tillfället kopplar nätverk som Wink ihop alla IoT-enheter i ett hem under en huvudfjärrkontroll, men de flesta appar som samlar in data, delar information eller utför instruktioner finns fortfarande inom de enskilda enheterna. I framtiden kommer IoT-anslutning att se de mest kraftfulla apparna i nätverket, inte i enheterna. På sätt och vis kommer nätverket att bli mer intelligent, – **Allt mer personliga webbplatser** : Eftersom enheter kan samla in och dela mer data mellan varandra, kommer du att upptäcka att surfupplevelsen på internet kommer att förändras. Webbplatser kommer automatiskt att kunna ge kunderna en skräddarsydd tjänst, baserad på data som genereras av deras IoT-enheter och produkter. Detta kunde se att deras anslutna kylskåp, tvättmaskin och andra apparater skickade data till deras favoritbutik på nätet, så att när du öppnade webbplatsen visade den automatiskt häftklamrarna de hade ont om. Detta skulle naturligtvis kräva en del sofistikerad back-end-utveckling, eftersom livsmedelsbutikens webbplats måste kunna kommunicera med alla märken och typer av apparater på marknaden. Och tills branschstandarder är fastställda kommer det verkligen att vara en mycket hög ordning. – **Integration på alla nivåer** : I framtiden kommer företag att vilja kunna svara direkt på kundernas krav. Till exempel kommer produktionslinjer att reagera dynamiskt på en ökning av webbplatsköp. Det betyder att alla appar du utvecklar måste integreras i hela produktionslinjer och leveranskedjor. Faktum är att denna omfattande integration är anledningen till att standardisering är en så stor utmaning just nu. – **Skärmar är inte det enda sättet** : I framtiden kan många enheter mycket väl prata med varandra utan mycket i vägen för användarinteraktion. Precis som med Nest kan användare endast interagera med en enkel kontrollpanel, och resten av data kommer att samlas in av sensorer och appar som användarna inte kommer att interagera direkt med. Det betyder att front-end-designen blir enklare och allt annat kommer att bli mycket mer komplicerat. – **Nya testöverväganden** : När du testar en IoT-applikation måste du tänka på helt nya koncept. Kommer användare att kunna styra sin IoT-enhet om nätverket släpar efter? Vad händer om nätverksanslutningar, både mellan användaren och enheten och mellan enheten och servern, långsammare eller avbryts? Finns det något sätt att behålla appens funktionalitet men minska strömförbrukningen? Detta är bara några av de saker som utvecklare ständigt måste fråga sig själva i teststadiet. ##### Språken, operativsystemet och protokollen du kanske behöver känna till Det är här förutsägelser kan bli riktigt otydliga. Om utvecklingen av programmeringsspråk i det förflutna har lärt oss något så är det att vi inte kan anta att morgondagens teknik kommer att ha mycket gemensamt med dagens. Ändå har vi några anledningar till att tro att dessa verktyg kommer att vara användbara. – **JavaScript** : Det är redan populärt och används redan, så många tror att JavaScript, och särskilt Node.js-miljön, kommer att fortsätta att växa i popularitet. Åtminstone kommer det att vara en av de mest användbara pilarna i ditt IoT-utvecklingskover. – **Weave** : Weave är mindre ett språk och mer ett maskin-till-maskin-kommunikationsprotokoll. Weave arbetar med Googles Brillo OS för att tillåta enheter att prata med varandra billigt och snabbt. Brillo är i grunden en avskalad version av Android, vilket gör den mer användbar för enheter med begränsad kapacitet. Det kräver mindre ström än Android också, vilket gör det till ett billigare och mer attraktivt alternativ för IoT-utveckling. – **Swift** : Detta är Apples språk med öppen källkod. Det fungerar med iOS, MacOS och HomeKit (operativsystemet som Apple använder för att ansluta alla sina IoT-enheter). Om du vill komma in på bottenvåningen med Apples IoT-universum måste du känna till det här. – **Språken som inte har uppfunnits ännu** : vi kan bara spekulera i vad dessa kommer att vara, och om historien är något att gå efter, kommer vi i stort sett ha fel i alla våra förutsägelser. ##### Slutsats Att komma in på Internet of Things Age är spännande och utmanande i lika mått. Det finns saker vi kan lära oss och göra nu, men egentligen finns det mycket mer att lära och ta reda på i framtiden. Vi vet att vi går till en mer sömlöst uppkopplad värld, där massor av data och nätverksanslutningar formar varje del av våra liv, men hur det faktiskt ser ut är någons gissning. Vi vet att JavaScript är användbart nu och kan växa till att utgöra ryggraden i IoT-utveckling, men det betyder inte nödvändigtvis att det kommer att göra det. Vi vet att varje ny möjlighet skapar nya utmaningar, och varje ny lösning skapar sina egna möjligheter och utmaningar, sådana som vi inte ens kan börja förutse. Naturligtvis är utmaningen att lära sig och uppfinna nya lösningar det som drar de flesta utvecklare till området, så det kommer att finnas mycket som håller dig intresserad – och sysselsatt – i decennier framöver. Och det är förmodligen det viktigaste för webbutvecklare att veta om Internet of Things.