Indholdsfortegnelse:

Proximity Photo Sharing IOS App: 6 trin
Proximity Photo Sharing IOS App: 6 trin

Video: Proximity Photo Sharing IOS App: 6 trin

Video: Proximity Photo Sharing IOS App: 6 trin
Video: How to MERGE and COMBINE Apple Photos LIBRARIES - EVERYTHING YOU NEED TO KNOW! 2024, December
Anonim

I denne instruks vil vi oprette en iOS -app med Swift, der giver dig mulighed for at dele fotos med alle i nærheden, uden at en enhedsparring er nødvendig.

Vi bruger Chirp Connect til at sende data ved hjælp af lyd, og Firebase til at gemme billederne i skyen.

At sende data med lyd skaber en unik oplevelse, hvor data kan udsendes til alle inden for høreområdet.

Trin 1: Installer krav

Xcode

Installer fra App Store.

CocoaPods

sudo gem installer cocoapods

Chirp Connect iOS SDK

Tilmeld dig på admin.chirp.io

Trin 2: Opsætning af projekt

1. Opret et Xcode -projekt.

2. Log ind på Firebase, og opret et nyt projekt.

Aktiver Firestore ved at klikke ind i Database -sektionen og vælge Cloud Firestore. Klik på Funktioner for også at aktivere Cloud -funktioner.

3. Kør igennem Konfigurer din iOS -app på siden Projektoversigt

Du skal bruge Bundle Identifier fra fanen Generelt i dine Xcode -projektindstillinger. Når podfilen er oprettet, skal du tilføje følgende afhængigheder, før du kan installere pod.

# Bælge til projekt

pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Storage'

4. Download den nyeste Chirp Connect iOS SDK fra admin.chirp.io/downloads

5. Følg trinene på developers.chirp.io for at integrere Chirp Connect i Xcode.

Gå til Kom godt i gang / iOS. Rul derefter ned og følg instruktionerne i Swift -opsætningen. Dette vil indebære import af rammerne og oprettelse af et brohoved.

Nu er opsætningen færdig, vi kan begynde at skrive nogle kode! Det er en god idé at kontrollere dine projektbygninger på hvert trin i opsætningen.

Trin 3: Skriv IOS -kode

1. Importer Firebase til din ViewController og udvid NSData til at omfatte en hexString -udvidelse, så vi kan konvertere Chirp Connect nyttelast til en hexadecimal streng. (Chirp Connect vil være tilgængelig globalt takket være brooverskriften).

import UIKit

importer Firebase

udvidelsesdata {

var hexString: String {return map {String (format: "%02x", UInt8 ($ 0))}.joined ()}}

2. Føj ImagePicker -delegerede til din ViewController, og erklær en ChirpConnect -variabel, der kaldes connect.

klasse ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? tilsidesætte func viewDidLoad () {super.viewDidLoad () …

3. Efter super.viewDidLoad, initialiser Chirp Connect, og konfigurer det modtagne opkald. I det modtagne tilbagekald vil vi hente billedet fra Firebase ved hjælp af den modtagne nyttelast og opdatere ImageView. Du kan få din APP_KEY og APP_SECRET fra admin.chirp.io.

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(licens: String ?, error: Error?) in if error == nul {if let licens = licens {connect.setLicenceString (licens) connect.start () connect.receivedBlock = {(data: Data?) -> () i hvis lad data = data {print (String (format: "Modtagne data: %@", data.hexString)) lad filen = Storage.storage (). Reference (). Barn (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, fejl i hvis lad fejl = fejl {print ("Fejl: %@", fejl.localizedDescription)} else {self.imageView.image = UIImage (data: imageData!)}}} else {print ("Decode failed"); }}}}

4. Tilføj nu koden for at sende billeddataene, når de er valgt i brugergrænsefladen.

func imagePickerController (_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any])

{lad imageData = info [UIImagePickerControllerOriginalImage] som? UIImage lad data: Data = UIImageJPEGRepresentation (imageData !, 0.1)! self.imageView.image = imageData lad metadata = StorageMetadata () metadata.contentType = "image/jpeg" if let connect = connect {let key: Data = connect.randomPayload (withLength: 8) Firestore.firestore (). collection (" uploads "). addDocument (data: [" key ": key.hexString," timestamp ": FieldValue.serverTimestamp ()]) {fejl i if let error = error {print (error.localizedDescription)}} Storage.storage ().reference (). barn (key.hexString).putData (data, metadata: metadata) {(metadata, fejl) i if let error = error {print (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (animeret: true, afslutning: nul)}

Bemærk: Du skal tilføje en fortrolighed - beskrivelse af brug af fotobibliotek, fortrolighed - beskrivelse af brug af fotobibliotek og fortrolighed - beskrivelser af mikrofonanvendelse til din Info.plist for at give tilladelse til at bruge kameraet, fotobiblioteket og mikrofonen.

Trin 4: Opret en brugergrænseflade

Opret en brugergrænseflade
Opret en brugergrænseflade

Gå nu til Main.storyboard -filen for at oprette et brugergrænseflade.

1. Træk hen over en ImageView og to knapper til Storyboard fra panelet Objektbibliotek i nederste højre hjørne.

2. For hver knap tilføjes en højdebegrænsning på ca. 75px ved at vælge komponenten og klikke på knappen Tilføj nye begrænsninger (den, der ligner en Star Wars slipsfighter), og derefter indtaste højden og trykke på Enter.

3. Vælg alle tre komponenter, og sæt dem i en stabelvisning ved at klikke på knappen Integrer i stak.

4. Åbn nu Assistant Editor, og tryk på CTRL og træk fra hver komponent til ViewController -koden for at oprette Outlets for hver komponent.

@IBOutlet var imageView: UIImageView!

@IBOutlet var openLibraryButton: UIButton! @IBOutlet var openCameraButton: UIButton!

5. Nu CTRL og træk fra begge knapper for at oprette en handling for at åbne kameraets/bibliotekets brugergrænseflader.

6. I handlingen Åbn bibliotek skal du tilføje følgende kode

@IBAction func openLibrary (_ afsender: Enhver) {

lad imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animeret: true, afslutning: nul)}

7. I handlingen Åbn kamera

@IBAction func openCamera (_ afsender: Enhver) {

lad imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animeret: true, fuldførelse: nul)}

Trin 5: Skriv en skyfunktion

Da billederne ikke behøver at blive gemt i skyen for evigt, kan vi skrive en Cloud -funktion for at udføre oprydningen. Dette kan udløses som en HTTP-funktion hver time af en cron-tjeneste som f.eks. Cron-job.org.

Først og fremmest skal vi installere firebase-værktøjer

npm installer -g firebase -værktøjer

Kør derefter fra projektets rodmappe

firebase init

Vælg funktioner fra kommandolinjen for at initialisere skyfunktioner. Du kan også aktivere firestore, hvis du også vil konfigurere Firestore.

Åbn derefter funktioner/index.js og tilføj følgende kode. Husk at ændre

til dit Firebase -projekt -id.

const-funktioner = kræver ('firebase-funktioner');

const admin = require ('firebase-admin'); admin.initializeApp () exports.cleanup = functions.https.onRequest ((anmodning, svar) => {admin.firestore ().collection ('uploads').where ('tidsstempel', '{snapshot.forEach (doc = > {admin.storage ().bucket ('gs: //.appspot.com').file (doc.data ().key).delete () doc.ref.delete ()}) return response.status (200).send ('OK')}).catch (err => response.status (500).send (err))});

Implementering af skyfunktioner er lige så enkelt som at køre denne kommando.

firebase -implementering

Opret derefter på cron-job.org et job for at udløse dette slutpunkt hver time. Slutpunktet vil være noget i stil med

us-central1-project_id.cloudfunctions.net/cleanup

Trin 6: Kør appen

Kør appen på en simulator eller iOS -enhed, og begynd at dele fotos!

Anbefalede: