signal-integrated-mobilecoin-raises-75-million-at-1-billion-valuation.jpg

Opbygning af en AR-app med Flutter og Appwrite

Kildeknude: 1857594

Den indledende teknologistak til dette var Flutter, Unity AR og Firebase, men vi var snart nødt til at skifte til at bruge ar_core_flutter plugin og Appwrite til backend. Jeg vil beskrive mine beslutninger i yderligere afsnit om, hvorfor jeg skiftede tech-stakken og de udfordringer og fordele, jeg oplevede.

Opbygning af appen med Flutter

Jeg ville prøve nye ting, jeg ikke havde prøvet før med dette projekt. Så jeg valgte Få det som en service locator, GetX til statens ledelse, og Beamer til routing og navigation. Jeg havde ikke brugt nogen af ​​disse i mine projekter før og var spændt på at prøve dem, da de er ret populære i samfundet.

  • Statsledelse

Men tingene fungerede ikke, My Widget opdaterede ikke med GetX, som jeg ved, at jeg måske har brugt forkert, dokumentationen er lidt blandet, og jeg henviste til den flere gange og kunne ikke finde ud af præcis måde at bruge visse ting på, det var også lidt forvirrende at bruge GetBuilder, GetX da de har lignende funktioner. Samlet set opdaterede min widget ikke, og jeg var meget uklar hvorfor, da jeg bekræftede mit arbejde flere gange. Bortset fra dette, da jeg kom fra Riverpod og havde brugt BloC, føltes hele strukturen af ​​filerne bare som et anti-mønster, jeg følte mig meget sværere at organisere min kode og strukturere den. Så efter min mening, hvis du er en Freezed + Riverpod bruger især med flagrekroge, at skifte til noget andet føles måske ikke hjemme.

Jeg var nødt til at migrere hele mit projekt tilbage til at bruge Frys + Riverpod, efter min mening er måden, som frysede kort angiver til widgets, en af ​​de sødeste syntakser, der vil holde din kode ren kombineret med StateNotifier og Kroge, Riverpod er en af ​​de bedste kombinationer af pakker til at bygge og vedligeholde din kodebase.

1. Hvordan VR kunne bringe transhumanisme til masserne

2. Hvordan Augmented Reality (AR) omformer fødevareindustrien

3. ExpiCulture — Udvikling af en original verdensrejsende VR-oplevelse

4. Enterprise AR: 7 use cases fra den virkelige verden til 2021

  • Navigation

Beamer er en vidunderlig pakke, der forsøger at løse kompleksiteten ved at bruge Navigator 2.0 i Flutter. Selvom det har fantastisk støtte til at bygge komplekse navigationslayouts, var det stadig svært at forstå nogle ting, da jeg var ved at løbe tør for tid og ikke fik chancen for at lege med pakken mere. Derfor måtte jeg skifte tilbage til autoroute, som jeg havde brugt i et stykke tid, og AutoRoute understøtter Navigator 2.0 med en meget enklere API.

Augmented Reality

Den første mulighed var at bruge Unity AR ved hjælp af Flutter Unity Widget pakke. Men der er bestemt meget få ressourcer til at bruge AR i enhed, og hele integrationen er simpelthen mere kompleks. Og at vise flere objekter fra en fjerndatabase var stadig en vanskelig ting at tænke på, da jeg ikke var meget opmærksom på det, og fællesskabet omkring dette er også ret lille, flutter+unity er virkelig cool support, men medmindre du har arbejdet med unity, er måske ikke den mest glatte udviklingsoplevelse.

Jeg ville ønske, at flutter-teamet officielt støttede brugssager som denne, men heldigvis er der en masse indsats fra fællesskabet og en fin pakke AR Core Flutter.

  • Udfordringer

Selvom jeg lykkedes med at integrere det med et godt resultat, var det ikke uden udfordringer. Den største var at vise højkvalitets 3D-modeller fra Blender. Dette kan være en begrænsning af android, men kan også have været forårsaget af begrænsningerne i sceneform bibliotek, som pakken bruger internt, er sceneform nu forældet af Google. Der er en diskussion i depotet for at flytte projektet til det seneste AR kerne API snart.

Modellerne så sorte ud, vi var nødt til at eksportere dem til et bestemt format, da gLTF- og gLB-formaterne ikke fungerede bedst. Og en anden stor begrænsning, vi stod over for, var at vise objekterne ved hjælp af en ekstern URL, selvom dette understøttes, virkede det ikke for de oprettede modeller, selvom vi prøvede den laveste kvalitet. det understøttede kun meget små filer.

Der er mere håb, jeg opdagede for nylig en anden pakke, der har til formål at forene AR-integration til flutter og give den nyeste API-support, checkout ar_flutter_plugin.

Backend og Appwrite

Firebase var det første valg til backend. Men jeg havde mine øjne på appwrite.io i et stykke tid og indså, at det var det perfekte tidspunkt at bruge og teste det af.

Appwrite er en open source-backend som en tjeneste. Den eneste afhængighed, appwrite har, er docker, og du kan komme i gang stort set med én kommando.

Det mest fantastiske ved appwrite er fællesskabet. Appwrite-fællesskabsserveren er fyldt med støttende og imødekommende interaktioner. Teamet står altid til rådighed for at hjælpe, hvis du nogensinde er gået i stå. Appwrite viser den sande ånd af open source og open source-fællesskaber.

Appwrite var virkelig sjovt at bruge, det giver mere kontrol over specifikke funktioner, såsom sessionskontrol. Du kan nemt styre flere sessioner af brugeren. Dette hjælper med at bygge mere komplekse applikationer. Den integrerer også en SMTP-server, som du nemt kan integrere med Mailgun for at kommunikere med dine brugere ved hjælp af tilpassede e-mails.
En anden fantastisk funktion er appwrite-funktioner med understøttelse af mere end 5+ runtimes, inklusive Dart. Jeg var i stand til at implementere funktioner uden meget besvær. Sikkerhed er også en kernefunktion indbygget i Appwrite, da hver forespørgsel og dokument kan få et tilpasset sikkerhedsregelsæt.

Den største fordel ved appwrite skal være anti-leverandørlåsning. Fordi appwrite er open source, og du kan implementere det på din foretrukne cloud-udbyder ved hjælp af Docker Swarm eller Kubernetes, kan du holde på alle dine data og nemt migrere cloud-udbydere, når det er nødvendigt.

  • Udfordringer

Appwrite er stadig i sin tidlige udviklingsfase og er ikke uden udfordringer.

Den primære udfordring, jeg stod over for, var, mens jeg brugte databasen. Selvom Apwrite har en NoSQL-grænseflade, virker databasen mere som SQL, da du skal definere dine nøgler, før du uploader data, og alle data skal følge skemaet. En anden udfordring var at opbevare indlejrede dokumenter og samlinger. Et dokument kan linke til en samling, men hvert dokument kan ikke automatisk have sin separate samling indlejret i, det vil kun referere til samlingen inden for rodniveauet. Dette vil virke som en ulempe, hvis du kommer fra firestore, men det er højst sandsynligt på grund af den underliggende MariaDB-database, som appwrite bruger.

Appwrite arbejder i øjeblikket på en MongoDB-adapter, hvorefter disse begrænsninger kan overvindes.

Den anden udfordring kan være letheden ved at samarbejde og udvikle lokalt, appwrite leverer en speciel teams API til at administrere og samarbejde med dit team på en installeret server. Men du bliver nødt til at opretholde konsistente data og skema for at sikre, at alle dine holdkammerater ser det samme output.

Appwrite har absolut et stort potentiale, og det fører en revolution inden for open source-backend som serviceprodukter, der kan være mere levedygtige, efterhånden som virksomheder anvender flere cloud-native teknologier og kræver mere fleksibilitet.

Source: https://arvrjourney.com/building-an-ar-app-with-flutter-and-appwrite-1817b9ed4ff5?source=rss—-d01820283d6d—4

Tidsstempel:

Mere fra AR / VR rejse