Innowise oversigt over udvikling af mobilapps

Velkommen til Innowise mobile digest, din ultimative kilde til alt, hvad der har med mobiludvikling at gøre. I denne omfattende samling præsenterer vi dig for de seneste nyheder, grundige anmeldelser og uvurderlige vejledninger inden for den stadigt skiftende mobiludvikling. Udforsk cases fra det virkelige liv og succeshistorier, hvor revolutionerende løsninger har omformet virksomheder og brancher. Desuden omfatter vores håndplukkede udvalg af artikler forskellige indbyrdes forbundne emner, der giver indsigt i og perspektiver på fremtiden for Mobilteknologi.

Søger du et erfarent mobiludviklingsteam?

Stol på Innowise til at skabe en førsteklasses mobilapp, der matcher dine forretningsmål.

Pakken dev_pilot til oprettelse af et Flutter-projekt

Vi er glade for at kunne præsentere vores nyligt udgivne pakke "dev_pilot", som er udviklet af Innowise. Denne pakke har til formål at forenkle installationsprocessen for Dart-projekter, så udviklere kan sætte nye projekter op hurtigt og effektivt.

Til at begynde med fungerer dev_pilot som et værdifuldt værktøj for udviklere, der ønsker at fremskynde oprettelsen af Flutter-projekter. Den tilbyder en interaktiv kommandolinjegrænseflade (CLI), der guider brugerne gennem angivelse af projektoplysninger såsom projektnavn, funktioner og varianter. Derefter genererer pakken den nødvendige mappe- og filstruktur, hvilket effektivt sparer tid og reducerer indsatsen.

Koden til dev_pilot er skrevet i Dart, et moderne programmeringssprog, der i vid udstrækning bruges til at udvikle mobil- og webapplikationer. Koden overholder Dart-kodningskonventionerne og har en velorganiseret og letforståelig struktur.

For at udføre forskellige opgaver som I/O-operationer, logning og validering indeholder koden flere vigtige pakker og biblioteker, herunder dart:io, dcli, mason_logger og andre. Udnyttelse af eksisterende pakker og biblioteker viser pakkens fornuftige brug af tilgængelige ressourcer, så man undgår unødvendig genopfindelse.

Main-metoden er indgangen til pakken og fungerer som det centrale knudepunkt for alle operationer. Den starter med at verificere, om det angivne argument er "create". Hvis argumentet opfylder betingelsen, fortsætter pakken med at bede brugeren om yderligere projektoplysninger, såsom projektnavn, funktioner og tidligere nævnte smagsvarianter.

For at lette forskellige opgaver er pakken afhængig af forskellige tjenester som DirectoryService, FileService, InputService og andre. Brugen af disse tjenester bidrager til kodens modularitet og lette vedligeholdelse, da de er gennemtænkt organiseret.

Et andet bemærkelsesværdigt træk ved koden er brugen af "await" og "async" til at håndtere asynkrone operationer. Denne tilgang forbedrer kodens ydeevne og reaktionsevne betydeligt og viser et prisværdigt implementeringsvalg.

Dev_pilot forenkler processen med at oprette et nyt Flutter-projekt, så du nemt kan indarbejde funktioner, varianter, pakker og generere kodeskabeloner til forskellige projektkomponenter. Derudover indeholder pakken integrerede validatorer for at sikre korrekt brugerinput.

Her er en oversigt over, hvordan Dev_pilot fungerer:

Den kontrollerer, om det overførte argument er "create".

Pakken dev_pilot til oprettelse af et Flutter-projekt

Den kontrollerer, om det overførte argument er "create".

oversigt over mobilapp-udvikling

Den kontrollerer, om Dart-versionen falder inden for det acceptable område. 

Hvis det er tilfældet, bliver brugeren bedt om at indtaste et projektnavn.

Pakken dev_pilot til oprettelse af et Flutter-projekt

Den spørger brugeren, om de vil angive en brugerdefineret sti til projektet.

Pakken dev_pilot til oprettelse af et Flutter-projekt

Hvis brugeren vælger at angive en sti, bliver de bedt om at indtaste den ønskede sti.

Den spørger, om brugeren ønsker at tilføje funktionsmoduler til projektet.

Pakken dev_pilot til oprettelse af et Flutter-projekt

Hvis brugeren beslutter sig for at inkludere funktionsmoduler, bliver han bedt om at indtaste navnene på de ønskede moduler.

Den spørger brugeren, om de vil tilføje smagsvarianter til projektet.

Pakken dev_pilot til oprettelse af et Flutter-projekt

Hvis brugeren vælger at tilføje smagsvarianter, bliver de bedt om at indtaste navnene på de ønskede smagsvarianter.

Den spørger brugeren, om han eller hun vil tilføje pakker til projektet.

Pakken dev_pilot til oprettelse af et Flutter-projekt

Hvis brugeren beslutter sig for at tilføje pakker, bliver han bedt om at vælge et modul og indtaste navnene på pakkerne. Denne proces gentages, indtil brugeren beslutter sig for ikke at tilføje flere pakker.

Flutter Lab Innowise

I april lancerede vores virksomhed et Flutter-laboratorium som reaktion på markedets efterspørgsel. I erkendelse af manglen på fagfolk med relevant viden tog vi initiativ til at løse dette problem.

Kravene til deltagerne omfatter færdigheder i talt engelsk på et minimumsniveau på B1, en grundlæggende forståelse af datalogiske koncepter og veludviklede bløde færdigheder. Tidligere kendskab til Dart/Flutter er ikke nødvendigt for ansøgere.

Kurset består af 14 lektioner, hvor de "studerende" lærer Dart/Flutter og arbejder på deres eget projekt. Efter hver lektion vil en mentor vurdere forståelsen af den gennemgåede teori og foretage en kodegennemgang. Instruktørerne på dette kursus er Flutter-udviklerne Alexander Guzich og Alexey Lebedev.

Ved udgivelsen af denne nyhed er den første gruppe ved at være færdig. Men hvis den første lancering viser sig at være en succes, planlægger vi at gentage forløbet for de efterfølgende grupper.

Mobil udvikling

iOS

Denne samling omfatter en kombination af YouTube-samlinger, casestudier fra det virkelige liv og informative anmeldelser med tilhørende vejledninger.

Sikkerhed fra et mobilt perspektiv

Kilde: Medium

Artiklen giver et kortfattet overblik over klientapplikationers sikkerhed på forskellige niveauer, der omfatter aspekter fra serverkommunikation til programkode. De vigtigste punkter, der diskuteres, omfatter:

  • Risici forbundet med brugen af mobile enheder, som f.eks. datatyveri, malware og phishing-angreb.
  • Sikkerhedsniveauer for mobilapplikationer.
  • Betydningen af sikkerhedsforanstaltninger og deres implementering.
  • Bedste praksis for at forbedre mobilsikkerheden, herunder brug af stærke adgangskoder, regelmæssige softwareopdateringer, undgåelse af usikre Wi-Fi-netværk og udvise forsigtighed med mistænkelige links eller e-mails.
Mobil udvikling

Rosetta, jeg er ked af at skulle sige farvel.

Kilde: Medium

Med lanceringen af Xcode 14.3 har Apple stoppet understøttelsen af Rosetta og subtilt indikeret over for udviklere, at de skal tilpasse deres projekter til Apple Silicon. Cyan-udvikleren delte en historie om de forhindringer, deres virksomhed stødte på med deres hovedprodukt og den tredjepartsløsning, der hjalp dem med at eliminere brugen af Rosetta.

Resumé:

  • Forklaring af Rosetta.
  • Hvordan brugen af Rosetta blev bestemt i tilfældet med "Cyan".
  • Skridt, der er taget for at løse problemet.

Alt i alt et klart eksempel på tilpasning af rammerne til realiteterne i ARM64-MacBooks, med vores anbefaling.

Forståelse af cyklomatisk kompleksitets indvirkning på kodekvalitet i Swift

Kilde: Hellig Swift

Denne artikel dykker ned i begrebet cyklomatisk kompleksitet i Swift softwareudvikling og giver anbefalinger til at minimere den. Cyklomatisk kompleksitet måler kodens indviklethed baseret på antallet af beslutningspunkter eller stier i koden.

Forfatteren foreslår flere strategier til at reducere den cyklomatiske kompleksitet i Swift, herunder:

  • Udskiftning af indlejrede if-else-sætninger med guard-sætninger.
  • Opdeling af omfattende funktioner i mindre, modulære funktioner.
  • Brug switch-sætninger i stedet for if-else-sætninger, når det er muligt.

Desuden udforsker artiklen brugen af funktionelle programmeringsprincipper, såsom at anvende højere ordens funktioner som map, filter og reduce, for at forenkle koden og mindske kompleksiteten.

Alt i alt er dette en værdifuld ressource for Swift-udviklere, der ønsker at forbedre forståeligheden, vedligeholdelsen og effektiviteten af deres kode.

Caching af indhold med NSCache

Kilde: andyIbanez.com

Forfatteren understreger betydningen af indholdscaching i iOS-apps for at forbedre ydeevnen og minimere mængden af data, der overføres over netværket. Artiklen koncentrerer sig primært om at bruge NSCache, den indbyggede cachemekanisme i iOS, til at cache indhold i iOS-applikationer. NSCache fungerer som en key-value store, der administrerer sit indhold og automatisk frigiver objekter, der ikke længere er nødvendige.

Artiklen giver flere eksempler på brug af NSCache i iOS-applikationer, herunder caching af billeder, JSON-data og webindhold. Desuden giver artiklen gode råd om brug af NSCache, som f.eks. at fastsætte et maksimalt antal objekter og implementere en cache eviction policy for at kontrollere hukommelsesforbruget.

Caching af indhold med NSCache

Sådan gemmer du data i iOS: UserDefaults, nøgleringe og sandwiches

Link til kilde

Denne omfattende og informative guide giver værdifuld indsigt i datalagring i iOS. I erkendelse af de udfordringer, der har forstyrret mange udviklere, viser dette materiale sig at være særligt vigtigt. I denne ressource fortæller senior iOS-udvikler red_mad_robot dykker ned i storage engines, deres anvendelse og fordele og ulemper ved hver tilgang.

Forfatteren analyserer omhyggeligt følgende værktøjer:

  • UserDefaults - ideel til lagring af brugerindstillinger og flag.
  • Nøglering - sørger for sikker datalagring.
  • Lister - velegnet til lagring af programkonfigurationer eller biblioteker.
  • Databaser - anbefales til håndtering af store mængder forskelligartede data.
  • NSCache - designet til midlertidig datalagring.

Desuden giver denne guide en dybdegående analyse af forskellige databaser, der er tilgængelige på iOS:

  • Cross-platform Realm, kendt for sin hurtige ydeevne og brugervenlige API.
  • Native Core Data, der tilbyder en grafisk brugerflade til modeller og forskellige lagertyper, hvilket gør det nemmere at teste.
  • SQLite, der muliggør direkte brug af SQL-sprog uden behov for yderligere tunge tredjepartsbiblioteker i dit projekt.

Denne ressource er afgørende for udviklere, der ønsker en omfattende forståelse af iOS-datalagringsmuligheder.

Sådan gemmer du data i iOS UserDefaults, nøgleringe og sandwiches

iOS Conf SG 2023

Kilde: Youtube

iOS Conf SG er den største iOS-udviklerkonference i Sydøstasien. Det giver mening at finde ud af, hvad der blev diskuteret på konferencen i år! Det kan denne playliste hjælpe dig med: Her er højdepunkterne og talerne fra konferencen. Hundredvis af udviklere fra hele verden deler deres ideer, opdagelser og udviklinger - hvor ellers kan du finde en sådan kilde til indsigt, der er nyttig for arbejdet, hvis ikke der?

Mestring af lærred i SwiftUI

Kilde: Swift med Majid

Du kan tegne 2D-grafik i SwiftUI ved hjælp af Shape API, men frameworket konverterer i sidste ende alle figurer til SwiftUI-repræsentationer og gengiver dem. Denne tilgang har sine fordele og ulemper. Heldigvis kan man tegne fyldig 2D-grafik uden at skulle kombinere flere former. Denne artikel fortæller dig bare, hvordan du bruger Canvas-visningen i SwiftUI.

Vigtig udvikler

Kilde: Youtube

Det er ikke artiklens titel, men snarere kanalens navn. Caio og Mike, to udviklere, der er et par, administrerer en iOS-udviklingskanal, der kan prale af over 500 videoer. Det er ikke nogen overdrivelse. Videoerne er omhyggeligt organiseret i forskellige kategorier, f.eks:

  • Bygning af iOS-apps med Swift, TDD & Clean Architecture.
  • Live iOS Dev Mentorings.
  • Ren iOS-arkitektur.
  • Rene iOS-kodebaser.
  • Sammensætning af iOS View Controllers, og så videre.

Det er vigtigt at bemærke, at samlingen omfatter både nyere videoer om aktuelle emner og videoer, der ligger 2-5 år tilbage. Det er faktisk en fordel, især for begyndere, da ældre udgivelser kan give et solidt fundament. Ikke desto mindre er det vigtigt at overveje friskheden af den information, du bruger.

Identificering af Core Datas evne til at udføre letvægtsmigrationer, før containeren indlæses

Link til kilde

Dette er en bemærkelsesværdig demonstration af platform reverse engineering. Når man udvikler en applikation ved hjælp af Core Data-frameworket, er det almindeligt at designe en datamodel, der gennemgår flere ændringer. Forfatteren opdagede en alternativ tilgang, der eliminerer behovet for at slette alle data og genindlæse dem, hvilket kan belaste serveren unødigt og dræne brugernes enhedsbatterier. Teksten udforsker en enklere metode, der har til formål at minimere konsekvenserne af ændringer i datastrukturen og afbøde deres negative virkninger.

Android

Vi har udvalgt tre materialer, der tilbyder dybdegående vejledninger om nuancerne i Android-udvikling. Nedenfor giver vi en kort beskrivelse af hver guide og inkluderer de respektive links. Så kan du beslutte, om du synes, at disse lange læsninger er værdifulde eller ej. Lad os gå i gang!

Jo nyere, jo bedre: hvordan vi gik fra GSON til Kotlinx.Serialization

Link til kilde

Dette materiale fokuserer på oplevelsen af overgangen fra GSON til Kotlinx.Serialization, fortalt af en Android-udvikler fra Tinkoff Investments.

Men lad os starte med en kort introduktion til stjernen i showet: Kotlinx.Serialization. Det er et serialiseringsbibliotek udviklet af JetBrains specifikt til Kotlin, designet til at understøtte flere platforme og formater. Biblioteket består af et compiler-plugin, et kernebibliotek og flere hjælpebiblioteker, der faciliterer forskellige dataserialiseringsprotokoller.

I denne guide vil du opdage:

  • Styrkerne ved Kotlinx.Serialization, herunder dens problemfri kompatibilitet med Kotlin og andre fordele, den tilbyder.
  • De nødvendige skridt, der skal tages, når man migrerer til Kotlinx.Serialization.
  • Uundgåelige udfordringer, du kan støde på under migreringsprocessen, og hvordan du navigerer effektivt i dem.
  • En omfattende sammenligning af ydeevnen mellem GSON og Kotlinx.Serialization, der viser, hvordan applikationens ydeevne forbedres efter migreringen.
  • Bemærkelsesværdige funktioner introduceret i den seneste version af biblioteket.

Campus-kort i Android-app

Link til kilde

En Android-udvikler fra UMNO Digital fortæller om sit personlige projekt, som let kan udledes af artiklens titel. Det drejer sig om et almindeligt scenarie: en stor uddannelsesinstitution med mange bygninger, hvor det at finde det rigtige publikum, bibliotek eller afdeling bliver en opgave i sig selv. Forfatteren foreslår en løsning på dette problem ved hjælp af et interaktivt kort, og guiden giver en trinvis beskrivelse af, hvordan man opretter et sådant kort. Interessant nok kan denne tilgang potentielt anvendes på andre lignende strukturer som hospitaler eller store industrier.

De vigtigste krav til kortet er, at det nemt skal kunne importeres til applikationen og opdateres uafhængigt af den. Ellers ville brugerne først modtage den nye kortversion efter at have verificeret og opdateret hele applikationen via app-store. Kortet skal derfor opfylde følgende betingelser:

  • Vis placeringen af målgrupper og bygninger, og giv ruteoplysninger.
  • Oprettes ved hjælp af et separat modul for at muliggøre tegnefunktioner.
  • Være hostet på en separat server for at sikre hurtige opdateringer.

Guiden fortsætter derefter med en trinvis forklaring af, hvordan man gør idéen til virkelighed. Instruktionerne omfatter:

  • Opdeling af kortet i komponenter som veje, bygninger og meget mere.
  • Oprettelse og tegning af kortdiagrammet (som måske lyder enkelt, men forfatteren anerkender, at der er faldgruber og udfordringer).
  • Valg af et passende bibliotek til gengivelse af de forskellige lag på kortet.
  • Forbinder kortet med geografiske koordinater.

Hvert trin er beskrevet i detaljer, hvilket gør det relativt nemt at følge med (selvom forfatteren indrømmer, at der er visse vanskeligheder og udfordringer). Denne vejledning fungerer som et udgangspunkt for at udvikle en enkel løsning, der løbende kan forbedres og forfines. Den giver mulighed for at tilføje nye elementer og funktioner, ændre grænsefladen og foretage generelle forbedringer. Kort sagt giver den værdifuld vejledning, og vi kan varmt anbefale den.

Campus-kort i Android-app

Sådan reducerede vi starttiden for Android-appen med 77%

Kilde: Medium

Selv om titlen kan virke som clickbait eller potentielt tvivlsom, er det faktisk en fremragende guide til at reducere lanceringstiden for applikationer. Holdet bag bildelingsappen Turo fortæller om de skridt, de tog, og hvordan de målte resultaterne.

Her er et sammendrag af artiklen:

  • Den oprindelige tilstand af programlanceringen, og hvordan den klarede sig før optimering.
  • De forbedringer, som teamet har implementeret, omfatter introduktionen af en splash screen, udskydelse af synkrone netværksanmodninger, optimering af diskinput/output (I/O) og andre relevante teknikker.
  • Måling af de opnåede forbedringer og sporing af potentielle problemer.

Hvis guiden ikke dækker alt, har forfatterne også givet yderligere links til supplerende materialer om emnet.

Sådan reducerede vi starttiden for Android-appen med 77%

Flutter

Denne omfattende guide indeholder forskellige emner relateret til Flutter udvikling. Den dækker de seneste tendenser inden for Flutter i indeværende år, giver et detaljeret casestudie om videostreaming med Flutter, introducerer et kodegenereringsværktøj og giver praktiske tips til at forbedre de tekniske færdigheder. Og der er endnu mere værdifuldt indhold, der venter på dig i denne guide.

16 ideer til at forbedre dine Flutter-færdigheder (avanceret køreplan)

Kilde: Medium

Selve titlen antyder vigtigheden af løbende at finpudse sine professionelle færdigheder. Denne praktiske guide giver værdifulde tips til at forbedre dine evner, hvilket gør den velegnet til både nybegyndere og erfarne Flutter-udviklere. Forslagene omfatter:

  • Dybdegående udforskning af Flutter-widgets.
  • Brug af forskellige animationer og overgange.
  • Inkorporering af flows og reaktiv programmering.
  • Udnyttelse af Flutter's indbyggede testværktøjer.
  • Udforskning af alternative Flutter-rammer.

Derudover giver artiklen nyttige anbefalinger og ressourcer til at holde sig opdateret med de seneste fremskridt i Flutter-fællesskabet.

6 takeaways fra køreplanen for Flutter 2023

Kilde: Medium

Hvis du har ambitioner om at komme videre inden for dette felt, er denne tekst et must-read. Den giver et overblik over Flutter-strategien for 2023 med særligt fokus på webudvikling. Forfatteren dykker ned i flere nøgleemner, herunder:

  • Den aktuelle status for Flutter Web og grundene til, at det stadig ikke anses for at være helt klar.
  • Forholdet mellem Flutter og Web Assembly.
  • Udforskning af landskabet af spil udviklet med Flutter og vurdering af deres faktiske antal.
  • Retningen for Flutter's fokus på mere intensiv fejlretning.
  • Forholdet mellem Flutter og Google Services.
  • Hyppigheden af månedlige betaudgivelser.

Dette er ikke blot en tør anmeldelse; den indeholder snarere forfatterens personlige meninger og kommentarer baseret på den officielle pressemeddelelse. Den præsenterer tankevækkende indsigter, som læserne kan tænke over.

Har du hørt om Shorebird?

Kilde: Linkedin

Vi præsenterer Eric Seidel, en Google-ingeniør, der er ansvarlig for udviklingen af Flutter, og Felix Angelov, også kendt som Felangel, skaberen af Bloc- og Flutter_Bloc-pakkerne. Deres kombinerede ekspertise lover bemærkelsesværdige resultater. Og de har virkelig leveret varen!

Vi præsenterer Shorebird, et nyt open source-projekt, der er designet til at forenkle oprettelsen af dataintensive webapplikationer. Shorebird er bygget på Flutter-frameworket og bruger reaktive programmeringsteknikker og tilbyder kraftfuld og skalerbar applikationsudvikling.

Denne artikel udforsker de vigtigste funktioner i Shorebird, herunder datasynkronisering i realtid, effektiv databehandling og offline dataadgang. Forfatteren fremhæver Shorebirds brugervenlige design og giver udviklere et klart API.

Desuden har Shorebird potentiale til at revolutionere udviklingen af datarige webapplikationer, især i kritiske brancher som sundhedspleje, finans og logistik. Gå ikke glip af muligheden for at få mere at vide om Shorebird og dens banebrydende muligheder.

Spar tid med CodeGpt-kodegenerering i Flutter

Kilde: Medium

Vi præsenterer CodeGPT, et nyt kodegenereringsværktøj, der er specielt designet til Flutter-applikationer. CodeGPT udnytter AI og naturlige sprogbehandlingsteknikker til automatisk at generere kode baseret på enkle engelske beskrivelser af applikationens funktioner og muligheder. Det er en imponerende løsning, ikke sandt?

Denne artikel giver et informativt overblik over, hvordan CodeGPT fungerer, og fremhæver de vigtigste fordele. En bemærkelsesværdig fordel er de betydelige tidsbesparelser og den øgede produktivitet, der opnås gennem automatiseret kodegenerering (som du måske allerede har gættet). Artiklen indeholder også et detaljeret eksempel, der viser, hvordan CodeGPT kan bruges til at generere kode til en grundlæggende Flutter-applikation. Forfatteren understreger processens hurtighed og lethed, hvilket resulterer i velstruktureret og letforståelig kode.

Afsløring af det ukonventionelle: 5 mindre kendte forhindringer i udviklingen af Flutter

Link til kilde

Denne artikel er baseret på erfaringerne fra en Surf Studio-udvikler, som blev tildelt et projekt, der krævede implementering af videostreaming-funktionalitet ved hjælp af Flutter. Denne artikel præsenterer Timurs erfaringer og diskuterer, hvordan man griber udviklingen af platformsfunktioner an, forholdet mellem Flutter og indbygget udvikling og giver indsigt i almindelige faldgruber og effektive løsninger.

Afslutningsvis giver artiklen en moralsk lektion og et bonusafsnit med en række komplekse og spændende funktioner, hvoraf nogle ikke kom med i den endelige version. Alt i alt vil læserne få en bedre forståelse af, hvad de kan forvente, når de påtager sig lignende opgaver, da projekter kan være uforudsigelige i softwareudviklingens verden.

Afsløring af de ukonventionelle 5 mindre kendte forhindringer i Flutter-udvikling

Hvad er forskellen mellem MVC og MVVM (for Flutter)?

Kilde: Medium

Artiklen sammenligner to populære designmønstre - MVC (Model-View-Controller) og MVVM (Model-View-ViewModel) - til opbygning af Flutter-applikationer. Forfatteren forklarer de vigtigste begreber i hvert mønster og fremhæver forskellene mellem dem. MVC-mønsteret opdeler en applikation i tre komponenter:

  • En model, der repræsenterer data og logik.
  • Den visning, der håndterer datavisningen.
  • En controller, der fungerer som mellemled mellem modellen og visningen.

Resten af artiklen handler om MVVM, som ligner MVC, men tilføjer en ny komponent, view-modellen. Den er ansvarlig for at behandle præsentationslogikken og binde data, så de adskilles fra præsentationen.

Når du er lidt inde i det, går forfatteren videre til at diskutere fordele og ulemper ved hver tilgang. Især bemærkes det, at MVC er enkelt og ligetil, mens MVVM giver bedre adskillelse af bekymringer og lettere testning. Vi gør også opmærksom på, at Flutter giver indbygget støtte til begge mønstre, hvilket gør det lettere for udviklere at vælge den tilgang, der passer bedst til deres behov.

Flutter's device preview: få et smugkig på, hvordan din app ser ud på enhver enhed

Kilde: Medium

Det værktøj, der beskrives i artiklen, viser sig at være meget værdifuldt i situationer, hvor der er brug for en responsiv brugergrænseflade, men hvor der er begrænset tid eller adgang til flere enheder (enten fysisk eller under den igangværende udvikling). Det kaldes Device Review-værktøjet og giver mulighed for at forhåndsvise applikationer på tværs af forskellige enheder og skærmstørrelser, hvilket unægtelig er dets mest fordelagtige aspekt.

Ved at bruge Device Preview kan udviklere effektivt opdage problemer med layout og brugergrænsefladedesign på et tidligt tidspunkt i udviklingsprocessen. Artiklen giver omfattende oplysninger om, hvordan man installerer, konfigurerer og bruger Device Review, sammen med en forklaring af de underliggende principper. Læserne vil finde denne engagerende tekst som en informativ guide til at forstå de nødvendige trin og forviklinger, der er involveret i at udnytte dette bemærkelsesværdige værktøj.

Generelt

Sådan hjælper du din leder med ikke at kvaje sig

Link til kilde

I stedet for at genfortælle og forsøge at evaluere indholdet får forfatteren undtagelsesvis selv ordet:

"Hej alle sammen, mit navn er Veronica, og jeg er chef for udviklerrelationer hos Dodo Engineering. [...] Veronica ved fra første hånd, at mange ledelsesmæssige fejl kan forhindres på et tidligt tidspunkt. Hun har været vidne til, at teams med succes har reddet deres ledere fra potentielle katastrofer. I denne artikel har hun samlet ni historier fra forskellige udviklingsteams, herunder hendes eget, som kaster lys over de overhængende farer ved ledelsesmæssige brølere. Hver historie ledsages af praktiske anbefalinger, baseret på erfaringer fra det virkelige liv, som kan hjælpe underordnede med at forhindre projektkollaps og katastrofer.

Det kan virke som en skræmmende læsning, men lad os sætte os til rette og begynde at udforske disse fortællinger. Når alt kommer til alt, vil vi alle gerne skabe et venskab med vores egen teamleder, ikke sandt?

Sådan hjælper du din leder med ikke at kvaje sig

Bløde færdigheder: Få styr på tingene en gang for alle

Link til kilde

Hvis du stadig er overbevist om, at soft skills kommer fra den onde, og at rekrutteringsfolk/HR'er af alle slags har opfundet dem af kedsomhed, så beder vi dig: Læs denne tekst. Forfatteren er i høj grad bombarderet af de "afsløringer", som "eksperter" poster overalt på internettet, og han skrev sin egen (ret dristige, må jeg sige) tekst, hvor han nedbryder det hele:

  • Hvad er soft skills (begrebet blev i øvrigt opfundet i den amerikanske hær i 60'erne)?
  • Hvordan finder man ud af, om ens færdigheder er bløde færdigheder?
  • Hvad kan en test af soft skills i et interview blive til?

Vi lover et par indsigter og grunde til at "tænke". Har du f.eks. nogensinde tænkt på, at bløde færdigheder i en profession kan være hårde færdigheder i en anden og omvendt? Lad os tilføje sjove eksempler her - og nu er en interessant læsning klar til en kaffepause.

Kapløb med tiden: Kan menneskeheden nå at kontrollere kunstig intelligens, før det fører til en verdensomspændende katastrofe?

Link til kilde

Dette er en fængslende og tankevækkende long read med refleksioner over fremtiden med kunstig intelligens fra en velkendt forfatter.

I dette overbevisende stykke dykker forfatteren ned i essensen af GPT-modeller og overvejer, om de er udtryk for ægte AI eller blot fungerer som tekstgeneratorer. Teksten overvejer også den potentielle forsvinden, eller rettere forfatterens ønske om, at visse erhverv bliver forældede. Derudover overvejes konsekvenserne af at skabe en formidabel kunstig intelligens sammen med en undersøgelse af selve intelligensen og midlerne til at evaluere den.

Desuden deler forfatteren sin indsigt i forskellige emner, som f.eks. den fremtidige udvikling for individuelle AI-assistenter, det reelle tempo i den teknologiske udvikling, udfordringerne i forbindelse med at sætte mål for AI og de vidtrækkende konsekvenser af konkurrencekapløbet mellem virksomheder for at opnå AI-overlegenhed. Det er spændende læsning, som opfordrer til at udvide horisonten. Selv om AI måske har begrænset relevans i dit liv lige nu, er det vigtigt at anerkende, at det uundgåeligt vil blive en del af alle menneskers liv i fremtiden.

Sådan sender Slack millioner af beskeder i realtid

Kilde: Slap af

Dette materiale præsenterer en analyse af flowet i en klient-server-applikation med særligt fokus på udviklingen af et realtidssystem, der er i stand til at håndtere et stort publikum. Artiklen udforsker den arkitektoniske tilgang, der anvendes til at muliggøre levering af beskeder i realtid i stor skala. Den undersøger også de tjenester, der er ansvarlige for at sende beskeder til chatplatforme og levere forskellige begivenheder til onlinebrugere.

Resumé:

  • Oversigt over servere.
  • Konfiguration af Slack-klienten.
  • Levering af beskeder i realtid til millioner af kunder.
  • Håndtering af begivenheder.

Bonus

Her finder du en række forskellige anmodninger, der kan hjælpe dig med at optimere chatoplevelsen eller skræddersy den præcist til dine behov: https://www.jailbreakchat.com/

Sammenligning af grafiske neurale netværk: bestemmelse af den bedste præstation

Efter at vi begyndte at bruge Midjourney til at generere billeder til vores arbejdskrav, kunne vi ikke stoppe og begyndte at udforske andre grafiske neurale netværk. Hvis du synes, at de alle ligner hinanden, foreslår vi, at du fortsætter med at læse.

Vi har testet værktøjer som Lexica, Stabble Diffusion on Dezgo og Leonardo (sidstnævnte er stadig i betatest) og sammenlignet dem med Midjourney. Gennem hele processen fremhævede vi deres fordele og ulemper samt nuancerne i deres brug.

Vi valgte en enkel tilgang: Vi sendte de samme anmodninger og evaluerede resultaterne. Der var tre specifikke anmodninger:

  • Bearbejd et portræt af Scarlett Johansson i en bestemt stil.
  • Skab en repræsentation af Warszawa i stil med tre forskellige kunstnere.
  • Design et logo med tilhørende tekst.

Lad os fra starten gøre det klart, at vi forstår, at disse anmodninger kunne have været mere detaljerede og raffinerede, hvilket utvivlsomt ville have forbedret resultaterne i alle tilfælde. Men vi valgte at begynde med enkle eksempler og begrænsede variationer. Selv i disse tilfælde observerede vi, hvordan neuroner nogle gange fikserede på et aspekt af anmodningen, mens de fuldstændig ignorerede resten.

Portræt

Forespørgslen var: Maleri i Matisse-stil, lyserøde farver, mange blomster. I første omgang udførte forfatteren af disse linjer personlige eksperimenter, men til arbejdsformål valgte de til sidst en mere fremtrædende person.

Portræt

Til reference: Sådan så Matisses arbejde ud:

Matisse

Og her er, hvad de neurale netværk kom frem til. Som du kan se, har hvert netværk forskellig viden om den berømte franske kunstner Matisse. 

Lexica (1-2) har tilsyneladende ingen oplysninger om Matisse, og i en af versionerne er skuespilleren på uforklarlig vis blevet asiat. 

Dezgo (3-5) tilbød, afhængigt af indstillingerne, muligheder, der enten var meget tæt på mesterens penselarbejde (men langt fra originalen) eller præsenterede en lettere stilisering. Der var endda et par tilfælde, hvor AI foreslog et stilleben i stedet for et portræt. 

Midjourney (6-7), som normalt giver præcise resultater, var lidt skuffende denne gang: Skuespilleren blev uigenkendelig, og blomsterne blev ikke gengivet i den rette stil. 

Leonardo (8-9) overvejede blomsterne og den lyserøde farve, bevarede en vis lighed med originalen og fortolkede kompositionen kreativt. Men ikke alle indstillinger fangede kunstnerens tegnestil præcist.

AI Portræt

Det urbane landskab

Lad os prøve at skildre Warszawa. Forespørgslen var: "Warszawa er malet i X-stil." Forskellige kunstneres stilarter blev valgt af to grunde: a) artiklens forfatter har en passion for kunst, og b) de typiske stilarter, som neurale netværk tegner i, såsom grafik, anime, tegneserier og digital kunst, er blevet ensformige. Derudover var det spændende at se, hvordan neurale netværk ville reagere på lidt mere komplekse kriterier og indsamle information om den valgte stilart.

Tre kunstnere blev udvalgt på grund af deres bemærkelsesværdigt forskellige stilarter:

  • Gustav Klimt, kendt for wiensk art nouveau.
Bylandskab Gustav Klimt
  • Mark Rothko, kendt for abstrakt ekspressionisme.
Bylandskab Mark Rothko
  • Salvador Dali, berømt for sin surrealisme.

Interessant nok startede hver af disse mestre med én stil, men blev berømte for en anden, hvilket førte til forskellige resultater, når man indsamlede information. I Klimts tilfælde holdt dette mønster stik. Midjourney (1) fokuserede på hans berømte "gyldne" portrætter, mens Lexica (3) udforskede landskaber. Stabble Diffusion on Dezgo (2) understregede Klimts unikke tilgang med at inkorporere udklippede objekter i sine malerier, og Leonardo (4) tilføjede et strejf af Klimts essens til realistiske skildringer af den gamle by.

Det urbane landskab

Når det gjaldt Rothko, gav de neurale netværk klarere fortolkninger: Striber forblev striber, om end med subtile variationer. Warszawas karakteristiske træk, såsom spir og skyskrabere, blev overvejende bevaret. Tilskrivningerne er som følger: Midjourney (1), SD on Dezgo (2), Lexica (3) og Leonardo (4).

5 Bylandskab

Igen var der en blanding af forvirring og udforskning. Lexica (3) indfangede Dalis karakteristiske komposition, der svæver mellem himmel og jord. Midjourney (1) observerede Dalis forkærlighed for vertikalt aflange billeder, samtidig med at Warszawas symbol - havfruen - blev inkorporeret på en unik måde. Dezgo (2) repræsenterede dygtigt Dalis stil med at inkorporere udklippede objekter i malerier, hvilket gav dem en overjordisk kvalitet. Endelig foreslog Leonardo (4) ideen om et vægmaleri med Dalis portræt på en bygningsvæg, hvilket gav genklang i kunstnerens ånd.

AI bylandskab

Logo

At designe et logo, der indeholder tekst, er den største udfordring på vores liste. Mange neurale netværk kæmper stadig med effektivt at oversætte tekst til et billede. Måske har nogle af dem tilegnet sig de nødvendige færdigheder til denne opgave.

Anmodningen lød som følger:

tekstlogo for virksomheden, der producerer videospil, hvid eller gennemsigtig baggrund, orange, blå og grønne farver

Der er ikke noget særligt bemærkelsesværdigt at diskutere i dette tilfælde, da alt er ret indlysende. Vi har valgt både de mest vellykkede og de mest ukonventionelle muligheder. Endnu en gang blev det tydeligt, at neurale netværk stadig kæmper med at generere tekst, men selv før det observerede vi tydelige forskelle i stilarter.

Tilskrivningerne er som følger:

1 og 2: Lexica

3 og 4: Dezgo

5 og 6: Leonardo

7 og 8: Midt på rejsen

Logo

Konklusion

Grafiske neurale netværk udviser variationer i deres behandlingsmetoder, informationsindsamlingsteknikker og visuelle tilgange. Dette indebærer et stort område for eksperimenter og kreativitet for brugerne, samtidig med at det kræver tilpasningsevne, læring af fejl, forståelse af indstillinger og iterative forsøg.

Selv om detaljerede anmodninger har en tendens til at give mere effektive resultater end generelle, garanterer de ikke altid et tilfredsstillende resultat. Desuden kræver de, at brugerne har domæneviden og evnen til at formulere anmodninger, og det er ikke sikkert, at alle har det.

Neurale netværk er også forskellige med hensyn til tilgængelige indstillinger, hvilket er grunden til, at resultaterne af vores evalueringer måske ikke er helt perfekte. I nogle tilfælde var vi nødt til at justere indstillingerne for at opnå resultater, der bare tilnærmelsesvis lignede den ønskede forespørgsel. For eksempel giver Midjourney brugerne mulighed for at oprette en tekstforespørgsel og angive det ønskede billedformat, samtidig med at den også reagerer på anmodninger om en hvid eller gennemsigtig baggrund, i modsætning til andre neurale netværk.

Dezgo tilbyder muligheder for at vælge format (stående eller liggende), præstationsnøjagtighed, samlingsmodel og prøveudtagningsmetode. Lexica følger et lignende mønster med muligheder for format og udførelsesnøjagtighed. Leonardo giver på den anden side brugerne mulighed for at vælge antallet af billeder (op til 8) og tilbyder en funktion til fjernelse af baggrund, selvom den måske ikke fungerer optimalt med indviklede detaljer i kanterne. Derudover har Leonardo flere indstillinger, herunder den spændende "Prompt Magic"-knap, som vi endnu ikke har udforsket.

Der er stadig meget, neurale netværk kan forbedre. Tekstindpakning er ofte stadig problematisk, realistisk gengivne hænder er en sjældenhed snarere end normen, og nogle færdige billeder fanger kun delvist anmodningen, mens de ser bort fra andre detaljer. Disse udfordringer repræsenterer kun en del af de aktuelle problemer.

Ikke alle neurale netværk er frit tilgængelige. Mens det er gratis at eksperimentere med Dezgo (derfor bruger vi det ofte), tilbyder Midjourney et betalt abonnement efter et vist antal gratis anmodninger (fra $8/måned + skatter, hvilket gør det til vores andet værktøj). Leonardo giver 150 daglige gratis anmodninger til dem, der deltager i deres betatestgruppe, med en svartid på omkring en uge eller to (en betalt version med yderligere funktioner er også tilgængelig, fra $10/måned). Lexica er prissat på samme måde som Midjourney, men tilbyder større funktionalitet med sine gratis anmodninger.

Grafiske neurale netværk er unægtelig effektive værktøjer. De har hjulpet os med at illustrere forskellige emner (selv om vi nogle gange måtte gøre en ekstra indsats for at få brugbare resultater), og deres output har prydet vores virksomheds månedlige oversigt, for ikke at nævne deres anvendelighed til at skabe billeder til indlæg og meddelelser. Alt i alt bruger vi selv disse netværk og opfordrer andre til at udforske og mestre deres potentiale.

Tak for din bedømmelse!
Tak for din kommentar!
forfatter
Eugene Shapovalov Leder af Mobile

Indholdsfortegnelse

Bedøm denne artikel:

4/5

4.8/5 (45 anmeldelser)

    Kontakt os

    Book et opkald eller udfyld formularen nedenfor, så vender vi tilbage til dig, når vi har behandlet din anmodning.

    Send os en talebesked
    Vedhæft dokumenter
    Upload fil

    Du kan vedhæfte 1 fil på op til 2 MB. Gyldige filformater: pdf, jpg, jpeg, png.

    Ved at klikke på Send accepterer du, at Innowise behandler dine personlige data i henhold til vores Politik for beskyttelse af personlige oplysninger for at give dig relevante oplysninger. Ved at indsende dit telefonnummer accepterer du, at vi kan kontakte dig via taleopkald, sms og beskedapps. Opkalds-, besked- og datatakster kan være gældende.

    Du kan også sende os din anmodning
    til contact@innowise.com

    Hvad sker der nu?

    1

    Når vi har modtaget og behandlet din anmodning, vender vi tilbage til dig for at beskrive dine projektbehov og underskriver en NDA for at sikre fortrolighed.

    2

    Når vi har undersøgt dine ønsker, behov og forventninger, udarbejder vores team et projektforslag med forslag med arbejdets omfang, teamstørrelse, tids- og omkostningsoverslag.

    3

    Vi arrangerer et møde med dig for at diskutere tilbuddet og få detaljerne på plads.

    4

    Til sidst underskriver vi en kontrakt og begynder at arbejde på dit projekt med det samme.

    pil