allt
Företag
datavetenskap
design
utveckling
vår resa
Strategimönster
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Ricardo Torrão

12 november 2021

Min läsning

Camera Manager, en enkel Swift-anpassad kameravy

Camera Manager är en enkel Swift-klass för att tillhandahålla alla konfigurationer du behöver för att skapa en anpassad kameravy för iOS-appar. Lär dig hur vi gjorde det och prova det med länken i slutet av den här artikeln.

blå pil till vänster
Imaginary Cloud-logotyp

UIImagePickerController & AVCaptureSession

När det gäller att bygga en app för att ta bilder och spela in videor i iOS, erbjuder Apple två olika tillvägagångssätt: UIImagePickerkontroller och AVCaptureSession.

UIImagePickerkontroller är det enklaste sättet att komma igång eftersom du kan ha en fungerande lösning med några rader kod. Denna enkelhet kostar dock: UI-anpassning eller att lägga till funktioner i kameran (t.ex. tryck för att fokusera) har sina svårigheter.

Å andra sidan AVCaptureSession, en del av AVFoundation-ramverk, möjliggör mer anpassningsflexibilitet, men det är svårare att konfigurera och hantera. Dess komplexitet och kända huvudvärk i samband med dess användning kan driva vissa utvecklare bort.

Vi byggde Kamerahanterare för att skapa anpassade kameravyer med de bästa egenskaperna hos dessa verktyg: bättre interaktion med AVCaptureSession och flexibiliteten hos AVFoundation samtidigt som man döljer alla detaljer från utvecklaren.

Med Camera Manager kan utvecklaren skapa vackra anpassade användargränssnitt och uppnå fantastiska resultat med foton, utan att uppfinna hjulet igen.

blå pil till vänster
Imaginary Cloud-logotyp

Kamerahanteringsgränssnitt

Camera Manager Interface

Kamerahanterare ger en enkel anpassad iOS-kameravy för att enkelt ta foton och spela in videor, med följande funktioner:

  • val av fram/bakre kamera;
  • tryck för att fokusera;
  • nypa för att zooma;
  • exponeringsreglaget;
  • blixtläge;
  • kamerakvalitetsutgång;

  • fokusläge;
  • exponeringsläge;
  • vänd främre kamerabilden;
  • anpassade albumnamn för bild och video;


  • EXIF-metadata;

  • spara plats till EXIF.

För att tillhandahålla alla dessa möjligheter, Kamerahanterare användningar AVCaptureSession, vilken Enligt Apple är:”ett objekt som hanterar inspelningsaktivitet och koordinerar flödet av data från inmatningsenheter till inspelning.

AV Capture Session Flow

Istället för att manuellt skapa en inspelningssession, skaffa och konfigurera nödvändiga inspelningsenheter, skapa ingångar med inspelningsenheterna och konfigurera ett video/fotoutmatningsobjekt för att bearbeta fångade videor/bilder, behöver utvecklaren bara lägga till förhandsgranskningsskiktet till önskad vy.


Alla förändringar i AVCaptureEnhet, som att ställa in blixtläget och växla mellan främre och bakre kameror, görs och konfigureras säkert av Kamerahanterare.

Och sedan när du tar en bild:


För att starta och stoppa inspelningen av en video:


Som påvisats, Kamerahanterare ger flexibiliteten från AVCaptureSession samtidigt som enkelheten från UIImagePickerViewController bibehålls.

Camera Manager Test Photo

Det finns några alternativ tillgängliga, men Kamerahanterare har några starka punkter som gör det till ett exceptionellt val:

  • Det är skrivet i Swift: många av de mest använda alternativen är skrivna i Objective-C. Med tanke på att nästan varje ny app är skriven i Swift och Apple förbinder sig till språket, är det vettigt att använda Swift för att säkerställa att appen blir mycket mer framtidssäker.

  • Det är mycket konfigurerbart: Kamerahanterare ger utvecklaren full kontroll över den funktionalitet som behövs för att bygga fantastiska kameraappar.

  • Fokusera på funktionalitet, inte UI: vissa bibliotek levereras med sitt eget användargränssnitt. Camera Manager fokuserar på funktionalitet och ger utvecklaren full kontroll för att implementera användargränssnittet som han vill.
blå pil till vänster
Imaginary Cloud-logotyp

Ladda ner Camera Manager

Vi uppmuntrar dig att prova det. Kamerahanterare har en exempelapp som du kan köra på din enhet. Du behöver en riktig enhet för att köra den, på grund av användningen av AVFoundation kamera API: er som inte är tillgängliga på iOS-simulatorn.

Ready for a UX Audit? Book a free call

Hittade den här artikeln användbar? Du kanske gillar dessa också!

blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
Ricardo Torrão
Ricardo Torrão

Senior utvecklare på Imaginärt moln, specialiserat på att skapa innovativa mjukvarulösningar, brinner för teknik och kodningsexpertis.

Läs fler inlägg av denna författare

Människor som läste det här inlägget tyckte också att dessa var intressanta:

pil vänster
pilen till höger
Dropdown caret icon