Hybridappar. Utveckla mobilappar i HTML, Javascript och CSS



Relevanta dokument
INTRODUKTION TILL ANGULAR JS

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

Mobile Cross Development

Webbutveckling med AngularJS

INSTALLATIONSGUIDE TILL ANDROID UTVECKLINGSMILJÖ

<script src= "

KARTLÄGGNING OCH JÄMFÖRELSE AV MULTIPLATTFORMSUTVECKLINGS- VERKTYG FÖR SMARTPHONES

Vis it. jquery jquery används lite överallt i appen på olika sätt. Det främsta användningsområdet är vid selektering och manipulering av HTML element.

Android - En översikt samt titt på utvecklingsmiljö. Kalle Prorok 12 nov 2013

Välkommen! SA S PSA S Im I puls s Mobilite t t e 8 1

TDP013 Node.js, JSCoverage, Mocha. Marcus Bendtsen Institutionen för Datavetenskap

Collector en Android-app för att samla saker. Kim Grönqvist (kg222dk) Slutrapport

Android översikt. TDDD80 Mobila och sociala applikationer

Alla rättigheter till materialet reserverade Easec

EXAMENSARBETE. Utveckling av en lättförvaltad mobilapplikation. Irina Malaya Filosofie kandidatexamen Systemvetenskap

Hybridapputveckling med Ionic Framework

Webbappar med OpenLayers och jquery

Android och iphone. Kalle Prorok April 2011

Mina listor. En Android-applikation. Rickard Karlsson Rickard Karlsson - rk222cu Linnéuniversitet rk222cu@student.lnu.

Snabbstart för Novell Vibe Mobile

Sim Goods Reception Utveckling av plattformsoberoende mobilapplikation Examensarbete inom data- och informationsteknik

Verktyg och Utvecklingsmiljö. Föreläsning 2 Eclipse

Exemple på Tentauppgifter Webbprogrammering

STADSLEDNINGSKONTORET SOA SDK IT-AVDELNINGEN VERSION 2.1. Läs mig först. Stockholms stad SOA-plattform. Sida 1 (5)

Lektion 2, Grundläggande funktioner i ASP.NET

Sitecon En utvärdering av en mobilapplikation.

Undersökning av olika tekniker för tillgång till native funktionalitet i mobila enheter

Samsung NVR SRN-473S/873S/1673S Quick guide till web/app anslutning

Välkommen till Dropbox!

Webbplats analys emreemir.com

Arbetsuppgift 1: På virtuell maskin med Ubuntuserver, skapa katalog och skapa Dockerfile. Skapa ny katalog i din hemmakatalog, med namnet webbserver.

On-line produktion TDDC61

A" utveckla kartor med responsiv design. Johan Lah8 Geografisk IT- utvecklare Stadsbyggnadskontoret, Malmö stad

CMS. - Content management system

Utvärdering av app-ramverk

Mål. Uppdrag. NuvoAir, Stockholm Oktober 2017 Februari Spotify, Stockholm Februari 2017 September 2017

TDP013. Node.js, Mocha, Istanbul. Anders Fröberg Institutionen för Datavetenskap

Cross-Platform Application Development for Smartphones Is cross-platform development environment the future of mobile application development?

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

Sidan kommer inte läggas upp någonstans utan du redovisar den för mig på något handledningstillfälle.

Välkommen till Dropbox!

Utvärdering av multiplattformsutvecklingsverktyg för smarta mobiler

Micro Focus Vibe Snabbstart för mobil

API:er/Mashup. Föreläsning 4 API:er och Mashups. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Bambusermanual - Plattformen distans

Mobila applikationer och trådlösa nät

SHAPELINK FÖRETAGSMOTION

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

JavaScript in SharePoint and not just for Apps. Wictor Wilén

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Joakim Jonsson jj222kc. Minesweeper. Individuellt Mjukvaruprojekt Joakim Jonsson

Institutionen för datavetenskap Department of Computer and Information Science

Quick Start Guide Snabbguide

TDP003 Projekt: Egna datormiljön

1 Kravspecifikation Snake App

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Mobilanpassning

Home Storage Manager

Open Source-utveckling för kommuner. Allemanskod den nya svenska modellen?

Metod Rapporten är baserad på egen erfarenhet av marknadsföring on-line samt studier av aktuell forskning, rapporter och webinars.

Bevaka vetenskapliga tidskrifter med hjälp av RSS

Välkommen till Capture.

Bild 1. Bild 2. Bild 3. Etrappa. Gävle-Dala E-marknad 2013

KVANTITATIV PRESTANDA I NATIVE OCH HYBRID APPLIKATIONER

AVR Studio 4 Och AVRFLASH

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

BEYOND: Two Souls BEYOND Touch Appen

Innehåll. 1 Dokumentbeskrivning 3. 2 Användarinformation 3. 3 Installations anvisning Starta upp enheten 5

Testramverk och Model based testing med java i praktiken

Guide Ett FitNesse-test

Radio R 4.0 IntelliLink Vanliga frågor

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Vad är Atea Register? Hur navigerar jag till Atea Register? Manualens syfte

Lathund för sökning i

Komma igång med OneD. Allt på en plats

UTVECKLINGSVERKTYG. Praktiska tips för PUM-projekten

Att bygga enkla webbsidor

Spelprogrammering med XNA och MonoGame

Guide TES-Mobil. BYOD för externa utförare. Örebro kommun orebro.se

Guide för fjärråtkomst av Gigamedia IP-kamerakit

Manual till DIKO

Innehållsförteckning Förutsättningar... 2 Installation av Google Authenticator på iphone... 3 Installation av Google Authenticator på Android...

Projektuppgift.

MIGRATION AV APPAR TILL WINDOWS PHONE 8 MIGRATION OF APPS FOR WINDOWS PHONE 8

Del 1 och 2 HTML/CSS. Webbutveckling Laboration 1 Nicklas Bostedt

Curriculum Vitae. Systemutvecklare/konsult. Kontaktuppgifter. Sammanfattning. Uppgifter hos Pulsen. Stefan Elvestål. Född: 1973 Nationalitet: Svensk

Guide till RefWorks Skapa ett RefWorks-konto Under Citera och referera > RefWorks Hjälp funktioner i RefWorks Help Tutorial Help

Adobe Flash Professional CS6

Verktyg och Utvecklingsmiljö. Jochim von Hacht

Entreprenöriell programmering TDP028

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

Delta i undervisning online via Zoom

Kom igång med Etikettskrivaren 1. Ladda ner följande installationsprogram Ladda ner Drivrutiner för etikettskrivare Zebra

En medicinsk söktjänst. Lathund. En lathund framställd av

On-line produktion TDDC61

Agil användbarhetsutveckling för handhållna enheter. Per Lind

Kodtimmen med Swift Playgrounds

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

Yanting Larsen. Mjukvaruutvecklare. Cybercom Group

Android (BYOD) -Installera mstart -Kom igång manual

Transkript:

Hybridappar Utveckla mobilappar i HTML, Javascript och CSS Presenterat av Erik Tufvesson, Presis i Lund AB

Kort om mig Erik Tufvesson Systemarkitekt och utvecklare på Presis! Brinner för utveckling av mobilappar!

Presentationen och all kod jag visar idag finns tillgänglig på GitHub bit.ly/presis1512

Vad ska jag prata om idag? Vad är en hybridapp? Komma igång Val av ramverk Ionic Framework React Native Ionic2 Efter varje huvudavsnitt blir det paus för frågor

Vad är en hybridapp? Består av både Native- och icke-nativekomponenter Vanligtvis en webbapp som visas i en inbyggd webbläsare (WebView) Kan kommunicera med telefonens mjukvara/hårdvara via plugins Utvecklas i HTML5/CSS3 och JavaScript Gemensam kodbas för Android/iOS Kompileras till ett installerarbart/distribuerbart paket

Komma igång

Android Android Platform Guide (Cordova) Java Development Kit (JDK) 7+ Android SDK (Android Studio) Android-emulator (t.ex. Genymotion)

ios ios Platform Guide (Cordova) OSX Xcode ios-emulator (npm install -g ios-sim)

Vilka ramverk finns det? Apache Cordova (tidigare PhoneGap) Ionic Framework Sencha Touch Appcelerator React Native (Facebook) NativeScript (Telerik) Xamarin (C#)... och många fler

Paus för frågor

Ionic Framework

Ionic Framework http://ionicframework.com/ Cordova AngularJS (v1.4) Byggt för att se ut och kännas som Native Fokus på enkelhet och prestanda Enkelt att kommunicera med Native plugins (ngcordova) Bra dokumentation Stor community Över en miljon appar byggda med Ionic Mogen kodbas (v1.0 lanserades maj 2015)

Hur fungerar Ionic? Angular Directives och Services UI Router ngcordova (kommunicera med plugins) Eget CLI (Command Line Interface)

Ionic CLI > # kör i din webbläsare > ionic serve > # lägg till en platform till din app > ionic platform add [android ios] > # kompilera din kod till android/ios > ionic build [android ios] > # starta din app i en emulator > ionic emulate [android ios] > # kör din app på en fysisk enhet (telefon) > ionic run [android ios] > # installera en plugin > ionic plugin add...

Sätta upp ett nytt projekt i Ionic > npm install -g ionic cordova > # installerar ionic och cordova globalt på din dator > ionic start MyAwesomeApp > # skapar upp en ny app med ett default-utseende > cd MyAwesomeApp > # en ny mapp skapas för appen > ionic serve > # startar upp appen i din webbläsare

Kodexempel tab-cats.html <ion-view view-title="cats with Hats"> <ion-content class="padding"> <div ng-repeat="cat in cats"> <img ng-src="{{cat.url}}" alt="cat"> <button ui-sref="tab.cat-detail({id: cat.id})"> <i class="icon ion-eye"></i> </button> </div> </ion-content> </ion-view>

Kodexempel cats.js angular.module('app.cats', []).controller('catsctrl', function ($scope, Cats) { Cats.get().then(function(cats) { $scope.cats = cats; }); }).factory('cats', function($http, $q) { return { get: function() { var deferred = $q.defer(); $http.get('https://kittenapi.herokuapp.com/cats/hats/100').then(function(res) { deferred.resolve(res.data); }); return deferred.promise; } } });

Android ios Cats with Hats Cats with Hats Hats About Hats Länk till källkoden

Andra features i Ionic

Ionicons ionicons.com Ikon-font med 700+ ikoner för både Android och ios.

Ionic Resources Skapa App-ikon och Splash screens mycket enkelt Skapa en bild (.png,.ai,.psd) för din ikon och en för din splash screen. Placera dem i mappen "resources" döpta till "icon.png" resp "splash.png". Kommandot nedan skalar om dina bilder till alla varianter du behöver. > ionic resources > # Klart! Länk till dokumentationen

Ionic Creator creator.ionic.io Skapa design-mockups med drag-n-drop.

Ionic Lab lab.ionic.io Desktop-app som hjälpmedel vid utveckling. (Istället för att köra via kommandoprompten.)

Ionic View view.ionic.io Dela och testa din app utan att publicera den. > ionic upload > # Uploading app... > # Saved app_id,... > # Successfully uploaded (0e7bf062) > # Share your beautiful app with someone: > ionic share your@email.com

Exempel på färdig app WTHR (VÄDR) Källkod: github.com/eriktufvesson/ionweather Play store: play.google.com/...se.presis.wthr Väderapp skriven i Ionic Framework Använder mobilens GPS för att hitta din position Hämtar väderdata från yr.no baserat på din position Använder Google Maps API för att hämta uppgifter om ortsnamn samt att söka efter andra orter

Paus för frågor

React Native

React Native https://facebook.github.io/react-native/ Byggt av Facebook React JS ES6/ES7 Använder inte Cordova Ingen HTML React JSX kompileras till Native-element Logik körs i en egen tråd (JavaScriptCore) Inte 100% samma kodbas till ios/android

Sätta upp ett nytt projekt > npm install -g react-native-cli > # Installerar React Natives CLI globalt på din dator > react-native init MyAwesomeReactNativeApp > # Skapar upp en ny app med ett default-utseende > cd MyAwesomeReactNativeApp > # En ny mapp skapas för appen > # Starta en emulator, t.ex. Genymotion, nu. > # Alternativt anslut din telefon med USB. > react-native start > # Startar React Natives paketeringstjänst > react-native run-android > # Startar appen i emulatorn eller på din telefon

Kodexempel React Native Component

Styling Delmängd av CSS Flexbox för positionering

Kodexempel React Native Styling

Tap to Play Tap to Play

React Native Playground rnplay.org

Paus för frågor

Ionic 2

Ionic 2 http://ionic.io/2 Alpha release Angular 2 Webpack Förbättrad prestanda Material Design för Android ES6/TypeScript

Sätta upp ett nytt projekt > npm install -g ionic@alpha > # installerar ionic (v1 och v2) globalt på din dator > ionic start MyAwesomeIonic2App --v2 > # skapar upp en ny app med ett default-utseende > cd MyAwesomeIonic2App > # en ny mapp skapas för appen > ionic serve > # startar appen i din webbläsare

Kodexempel Ionic 2 - cats.html <ion-navbar *navbar primary> <ion-title>funny Cats</ion-title> </ion-navbar> <ion-content padding> <div *ng-for="#cat of cats"> <img [src]="cat.url" alt="cat"> <button primary (click)="viewcat(cat)"> <icon eye></icon> </button> </div> </ion-content>

Kodexempel Ionic 2 - cats.js import {Page, NavController} from 'ionic/ionic'; import {Http} from 'angular2/http'; import {CatDetail} from '../cat-detail/cat-detail'; @Page({ templateurl: 'app/cats/cats.html' }) export class Cats { constructor(http: Http, nav: NavController) { this.nav = nav; this.http = http; this.cats = []; } oninit() { this.http.get('https://kittenapi.herokuapp.com/cats/funny/100').map(res => res.json()).subscribe(data => { this.cats = data; }); } viewcat(cat) { this.nav.push(catdetail, {cat: cat}); } }

Funny Cats Android ios Funny Cats CATS ABOUT Länk till källkoden Cats About

Ionic 2 CLI Alla funktioner från Ionic v1 + > # Lägg till en ny sida i din app > ionic generate page min-sida > # Skapar en ny mapp med ett nytt skal för en sida > # - app > # --- min-sida > # ----- min-sida.html > # ----- min-sida.js > # ----- min-sida.scss

Tips för debugging Aktivera Source Maps i Webpack // webpack.config.js... module.exports = { entry: [...], output: {...}, module: {...}, resolve: {...}, sassloader: {...}, /* Add this line */ devtool: 'source-map' };

Kom ihåg Ionic 2 är fortfarande Alpha Mycket saknas och annat kan ändras innan det är färdigt för produktion

Paus för frågor

Rekommenderade länkar Ionic Framework ionicframework.com Ionic Forum ionic.io 230+ Ionic Framework Resources React Native Official site reactnative.com React Native Playground Facebook: How we built the first cross-platform React Native app Ionic 2 Ionic 2 Docs Building cross platform apps with Ionic 2 Adam Bradley (youtube) Exempel-app från presentationen ovan

Kodkväll! Kom och koda tillsammans med oss! Vi bjuder på mat och dryck! Datum meddelas senare

</html> bit.ly/presis1512 erik.tufvesson@presis.se