Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fire fine rammeverk, én topp app

Fire fine rammeverk, én topp app

Hvilket mobilt rammeverk er best? Vi har laget samme app 4 ganger med 4 forskjellige rammeverk slik at du slipper. SwiftUI, Xamarin, React Native og Flutter slåss alle om utviklernes gunst, men kanskje er det andre aspekter enn valg av rammeverk som er viktigst?

Runar Ovesen Hjerpbakk

August 26, 2021
Tweet

More Decks by Runar Ovesen Hjerpbakk

Other Decks in Programming

Transcript

  1. Fordeler - Apples foretrukne måte å skrive apps på -

    Integrert miljø og designer i Apples IDE Xcoce - Kan lage «samme» app for iOS, iPadOS, macOS, watchOS og tvOS - Bruk pakker fra Swift Package Manager, CocoaPods eller Carthage - Swift som språk har er faktisk ganske naise - Enkelt å kombinere med UIKit - Swift og ObjectiveC kan mikses og matches ved behov
  2. React Native import React from 'react'; import { Text, View

    } from 'react-native’; const App = () => { return ( <View style={{ flex: 1, justifyContent: "center", alignItems: "center”, backgroundColor: "#000" }}> <Text style={{ color: "#fff" }}> Hei 👋 </Text> </View> ); } export default App;
  3. Expo vs React Native Cli – hvilken velger jeg?? Expo

    React Native Cli Enkelt å komme i gang ✔ - Støtter integrasjon av native modules - ✔ Bygging Tar seg av byggeprosedyren i skyen - Veldig store filer ut - Ofte lang kø i skyen Du må deale med ting selv ✔ Mindre filer (halve? ish) Teste på iOS uten Mac ✔ -
  4. Fordeler - Spesielt kjapt å lære om man kommer fra

    React og Javascript - Stort community – også i Bekk! - Raskt å komme i gang med - God dokumentasjon
  5. Fordeler - C# er et moderne feature-rikt språk i stadig

    forbedring - Visual Studio er et fantastisk IDE med debugging-muligheter uten sidestykke - .Net har pakker på Nuget for det aller mest - MVVM-mønstret gjør testing enkelt - Hot Reload for XAML (og snaaart C# kode også) - Xamarin Forms / MAUI og native iOS/Android kan brukes om hverandre - Lett å dele kode og modeller mellom app og server
  6. import 'package:flutter/material.dart’; void main() { runApp( const Center( child: Text(

    'Hei 👋', textDirection: TextDirection.ltr, style: TextStyle(fontSize: 34), ), ), ); }
  7. React Native import React from 'react'; import { Text, View

    } from 'react-native’; const App = () => { return ( <View style={{ flex: 1, justifyContent: "center", alignItems: "center”, backgroundColor: "#000" }}> <Text style={{ color: "#fff" }}> Hei 👋 </Text> </View> ); } export default App;
  8. Fordeler • Dart ligner på C# og Java i syntaks

    • Raskt å komme i gang • Veldig god dokumentasjon • Kommer med masse ferdige komponenter • Tusenvis av pakker
  9. «Dokumentasjon, API-design, utviklermiljø.» - Anonym «De kunne godt fjernet mer

    legacy, åpnet ting litt mer opp. Gjennomgang av utviklerverktøy.» - Anonym SwiftUI
  10. Xamarin «Csharp. Bra community. Ofte oppgraderinger. Bra dokumentert. Open source.»

    - Anonym «Enklere måte å skrive platform spesifikke renderers. Blir bra i MAUI.» - Anonym
  11. «Kryssplattform. Skrive i React. Er du kjent med React så

    går det veldig raskt å produsere kode. Stort community.» - Anonym «Burde vært enklere å oppdatere versjon. Per nå er det mye arbeid i platformsspesifikke byggfiler.» - Anonym React Native
  12. «Alt fungerer ut fra boksen, det er god performance, språket

    (Dart) er ganske enkelt, det finnes mange gode komponenter, man slipper den jææææævla XAML-dritten fra Xamarin (btw et av de verste rammeverkene jeg noensinne har jobbet med noensinne, sorry Runar).» - Anonym «Det skulle vært enda enklere med byggingen av layout» - Anonym Flutter
  13. Spørreundersøkelse 📊 0 5 10 15 20 25 30 React

    N ative Flutter iOS - Swift Xam arin Android - Kotlin N ativescript Blazor Client (PW A) Ionic Pwa, selvutviklet 🤷 SDL2 Android - Java Cordova/PhoneGap Vue Bruk av mobile rammeverk Hvilket rammeverk bruker du i dag? Hva ville du valgt ved nytt prosjekt i dag?
  14. -100 100 Ville du anbefalt en kollega eller venn å

    bruke rammeverket på sitt neste prosjekt? 🤔 12 -100 100 -100 100 -100 100 24 50 85
  15. Konklusjon 🎯 - Kun iOS? SwiftUI fungerer fint - Teamet

    kan C# og har kanskje .Net backend? Xamarin - React-webside eller web-skillz? React Native - Greenfield? Flutter er enkelt å starte med for hvem som helst - Alle rammeverkene har fordeler. Og ulemper. - Velg rammeverk basert på teamets og organisasjons kompetanse og målsetninger - Fokuser på hva appen skal gjøre, for hvem og hvorfor. Når det er gjort, kan den lages uansett valg av rammeverk