Ricardo Torrão

12. november 2021

Min Read

Camera Manager, en simpel Swift-brugerdefineret kameravisning

Camera Manager er en simpel Swift-klasse, der giver alle de konfigurationer, du har brug for for at oprette en brugerdefineret kameravisning til iOS-apps. Lær hvordan vi gjorde det, og prøv det ved hjælp af linket i slutningen af denne artikel.

blue arrow to the left
Imaginary Cloud logo

UIImagePickerController & AVCaptureSession

Når det kommer til at opbygge en app til at tage billeder og optage videoer i iOS, tilbyder Apple to forskellige tilgange: UIImagePickercontroller og AVCaptureSession.

UIImagePickercontroller er den nemmeste måde at komme i gang, da du kan have en fungerende løsning med et par kodelinjer. Denne enkelhed koster dog en pris: Brugergrænsefladetilpasning eller tilføjelse af funktionaliteter til kameraet (f.eks. Tryk for at fokusere) har sine vanskeligheder.

På den anden side AVCaptureSession, en del af AVFoundation ramme, muliggør mere tilpasningsfleksibilitet, men det er sværere at konfigurere og administrere. Dens kompleksitet og kendte hovedpine forbundet med brugen kan drive nogle udviklere væk.

Vi byggede Kamerahåndtering at oprette brugerdefinerede kameravisninger ved hjælp af de bedste kvaliteter af disse værktøjer: bedre interaktion med AVCaptureSession og fleksibiliteten i AVFoundation, mens du skjuler alle detaljerne for udvikleren.

Med Camera Manager kan udvikleren Opret smukke brugerdefinerede brugergrænseflader og opnå fantastiske resultater med fotos, uden at genopfinde hjulet.

blue arrow to the left
Imaginary Cloud logo

Camera Manager-grænseflade

Camera Manager Interface

Kamerahåndtering giver en simpel brugerdefineret iOS-kameravisning til nemt at tage fotos og optage videoer med følgende funktioner:

  • valg af forside/bagkamera;
  • tryk for at fokusere;
  • knib for at zoome;
  • eksponeringsskyder;
  • flash-tilstand;
  • kamerakvalitetsudgang;
  • fokustilstand;
  • eksponeringstilstand;
  • vend frontkamerabillede;
  • brugerdefinerede albumnavne til billede og video;

undefined

  • EXIF-metadata
  • gem placering til EXIF.

For at tilvejebringe alle disse muligheder, Kamerahåndtering anvendelser undefined, hvilken Ifølge Apple er:“et objekt, der administrerer indfangningsaktivitet og koordinerer datastrømmen fra inputenheder til indsamling.

AV Capture Session Flow

I stedet for manuelt at oprette en optagelsessession, hente og konfigurere de nødvendige optagelsesenheder, oprette input ved hjælp af optagelsesenhederne og konfigurere et video/fotooutputobjekt til at behandle optagede videoer/billeder, behøver udvikleren kun at tilføje preview-laget til den ønskede visning.

undefined

Alle ændringer i undefined, såsom indstilling af flashtilstand og skift mellem front- og bagkameraer, udføres og konfigureres sikkert af Kamerahåndtering.

Og så når du tager et billede:

undefined

Også for at starte og stoppe optagelsen af en video:

undefined

Som demonstreret, Kamerahåndtering giver fleksibiliteten fra AVCaptureSession, samtidig med at enkelheden fra UIImagePickerViewController opretholdes.

Camera Manager Test Photo

Der er flere alternativer til rådighed, men Kamerahåndtering har et par stærke punkter, der gør det til et ekstraordinært valg:

  • Det er skrevet i Swift: mange af de mest anvendte alternativer er skrevet i Objective-C. I betragtning af at næsten alle nye apps er skrevet i Swift, og Apple forpligter sig til sproget, giver det mening at bruge Swift for at sikre, at appen bliver langt mere fremtidssikker.
  • Det er meget konfigurerbart: Kamerahåndtering giver udvikleren fuld kontrol over den funktionalitet, der er nødvendig for at opbygge fantastiske kameraapps.
  • Fokus på funktionalitet, ikke UI: nogle biblioteker leveres bundtet med deres egen brugergrænseflade. Camera Manager fokuserer på funktionalitet og giver udvikleren fuld kontrol til at implementere brugergrænsefladen, som han vil.
blue arrow to the left
Imaginary Cloud logo

Hent Camera Manager

Vi opfordrer dig til at prøve det. Kamerahåndtering har en eksempelapp, som du kan køre på din enhed. Du skal bruge en rigtig enhed til at køre den på grund af brugen af AVFoundation kamera API'er, som ikke er tilgængelige på iOS-simulatoren.

Ready for a UX Audit? Book a free call

Fandt du denne artikel nyttig? Du kan måske også lide disse!

blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
Ricardo Torrão
Ricardo Torrão

Seniorudvikler hos Imaginær sky, specialiseret i at skabe innovative softwareløsninger, brænder for teknologi og kodningsekspertise.

Read more posts by this author

People who read this post, also found these interesting:

Dropdown caret icon