Satura rādītājs:

Fotoattēlu koplietošanas tuvuma IOS lietotne: 6 soļi
Fotoattēlu koplietošanas tuvuma IOS lietotne: 6 soļi

Video: Fotoattēlu koplietošanas tuvuma IOS lietotne: 6 soļi

Video: Fotoattēlu koplietošanas tuvuma IOS lietotne: 6 soļi
Video: Как использовать сигнал на iPhone 2024, Novembris
Anonim

Šajā pamācībā mēs izveidosim iOS lietotni ar Swift, kas ļauj koplietot fotoattēlus ar ikvienu tuvumā esošu personu, neprasot ierīču savienošanu pārī.

Mēs izmantosim Chirp Connect, lai nosūtītu datus, izmantojot skaņu, un Firebase, lai saglabātu attēlus mākonī.

Datu nosūtīšana ar skaņu rada unikālu pieredzi, kurā datus var pārraidīt ikvienam dzirdes diapazonā.

1. darbība: instalēšanas prasības

Xcode

Instalējiet no App Store.

KakaoPods

sudo gem instalēt cocoapods

Chirp Connect iOS SDK

Reģistrējieties vietnē admin.chirp.io

2. darbība. Iestatīšanas projekts

1. Izveidojiet Xcode projektu.

2. Pierakstieties Firebase un izveidojiet jaunu projektu.

Iespējojiet Firestore, noklikšķinot uz sadaļas Database un atlasot Cloud Firestore. Noklikšķiniet uz Funkcijas, lai iespējotu arī mākoņa funkcijas.

3. Lapā Projekta pārskats izpildiet Iestatiet savu iOS lietotni

Jums būs nepieciešams saišu identifikators Xcode projekta iestatījumu cilnē Vispārīgi. Kad Podfile ir izveidots, pirms pod instalēšanas palaišanas jums būs jāpievieno šādas atkarības.

# Pākstis projektam

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

4. Lejupielādējiet jaunāko Chirp Connect iOS SDK no admin.chirp.io/downloads

5. Lai integrētu Chirp Connect Xcode, veiciet izstrādātāja.chirp.io norādītās darbības.

Dodieties uz Darba sākšana / iOS. Pēc tam ritiniet uz leju un izpildiet Swift iestatīšanas norādījumus. Tas ietvers sistēmas importēšanu un pārejas galvenes izveidi.

Tagad iestatīšana ir pabeigta, mēs varam sākt rakstīt kādu kodu! Ir laba ideja pārbaudīt jūsu projekta būvi katrā iestatīšanas posmā.

3. darbība: uzrakstiet IOS kodu

1. Importējiet Firebase savā ViewController un paplašiniet NSData, iekļaujot hexString paplašinājumu, lai mēs varētu pārvērst Chirp Connect lietderīgās slodzes heksadecimālā virknē. (Chirp Connect būs pieejams visā pasaulē, pateicoties pārejas galvenei).

importēt UIKit

importēt Firebase

paplašinājuma dati {

var hexString: String {atgriezties kartē {String (formāts: "%02x", UInt8 ($ 0))}. Joined ()}}

2. Pievienojiet ImagePicker delegātus savam ViewController un deklarējiet ChirpConnect mainīgo ar nosaukumu connect.

klases ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? ignorēt func viewDidLoad () {super.viewDidLoad ()…

3. Pēc super.viewDidLoad inicializējiet Chirp Connect un iestatiet saņemto atzvanīšanu. Saņemtajā atzvanā mēs izgūsim attēlu no Firebase, izmantojot saņemto lietderīgo slodzi, un atjaunināsim ImageView. APP_KEY un APP_SECRET varat iegūt vietnē admin.chirp.io.

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(licence: virkne ?, error: Error?) in if error == nil {if let license = license {connect.setLicenceString (licence) connect.start () connect.receivedBlock = {(dati: dati?) -> () in if let data = data {print (String (formāts: "Saņemtie dati: %@", data.hexString)) let fails = Storage.storage (). Reference (). Child (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, error in if let error = error {print ("Kļūda: %@", kļūda.localizedDescription)} else {self.imageView.image = UIImage (dati: imageData!)}}} else {print ("Atšifrēšana neizdevās"); }}}}

4. Tagad pievienojiet kodu attēla datu nosūtīšanai, kad tie ir atlasīti lietotāja saskarnē.

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

{let imageData = info [UIImagePickerControllerOriginalImage] kā? UIImage ļauj datiem: Data = UIImageJPEGRepresentation (imageData !, 0.1)! self.imageView.image = imageData let metadata = StorageMetadata () metadata.contentType = "image/jpeg" if let connect = connect {let key: Data = connect.randomPayload (withLength: 8) Firestore.firestore (). collection (" addDocument (dati: ["atslēga": key.hexString, "timestamp": FieldValue.serverTimestamp ()]) {error in if let error = error {print (error.localizedDescription)}} Storage.storage ().reference (). bērns (key.hexString).putData (dati, metadati: metadati) {(metadati, kļūda) in if let error = error {print (error.localizedDescription)}} cits {connect.send (key)}} } self.dismiss (animēts: patiess, pabeigts: nulle)}

Piezīme. Lai piešķirtu atļaujas lietot kameru, fotoattēlu bibliotēku un mikrofonu, jums būs jāpievieno paziņojumi par konfidencialitāti - fotoattēlu bibliotēkas lietošanas apraksts, konfidencialitāte - fotoattēlu bibliotēkas lietošanas apraksts un konfidencialitāte - mikrofona lietošanas apraksta paziņojumi.

4. darbība: izveidojiet lietotāja interfeisu

Izveidojiet lietotāja interfeisu
Izveidojiet lietotāja interfeisu

Tagad dodieties uz failu Main.storyboard, lai izveidotu lietotāja saskarni.

1. Velciet pāri ImageView un divām pogām uz sižetu no paneļa Objektu bibliotēka apakšējā labajā stūrī.

2. Katrai pogai pievienojiet augstuma ierobežojumu aptuveni 75 pikseļi, atlasot komponentu un noklikšķinot uz pogas Pievienot jaunus ierobežojumus (tas, kas izskatās kā Zvaigžņu karu kaklasaites cīnītājs), un pēc tam ievadiet augstumu un nospiediet taustiņu Enter.

3. Atlasiet visus trīs komponentus un ievietojiet tos kaudzes skatā, noklikšķinot uz pogas Iegult kaudzē.

4. Tagad atveriet palīga redaktoru un nospiediet taustiņu kombināciju CTRL un velciet no katra komponenta uz ViewController kodu, lai katram komponentam izveidotu Outlets.

@IBOutlet var imageView: UIImageView!

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

5. Tagad CTRL un velciet no abām pogām, lai izveidotu darbību, lai atvērtu kameras/bibliotēkas lietotāja saskarni.

6. Darbībā Atvērt bibliotēku pievienojiet šādu kodu

@IBAction func openLibrary (_ sūtītājs: jebkurš) {

ļaujiet imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animēts: true, pabeigšana: nulle)}

7. Darbībā Atvērt kameru

@IBAction func openCamera (_ sūtītājs: jebkurš) {

ļaujiet imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animēts: true, pabeigšana: nulle)}

5. darbība: uzrakstiet mākoņa funkciju

Tā kā fotoattēli nav mūžīgi jāuzglabā mākonī, mēs varam uzrakstīt mākoņa funkciju, lai veiktu tīrīšanu. Cron pakalpojums, piemēram, cron-job.org, to var aktivizēt kā HTTP funkciju katru stundu.

Pirmkārt, mums ir jāinstalē firebase rīki

npm instalēt -g firebase -tools

Pēc tam palaidiet projekta saknes direktoriju

firebase init

Lai inicializētu mākoņa funkcijas, komandrindā atlasiet funkcijas. Varat arī iespējot firestore, ja vēlaties konfigurēt arī Firestore.

Pēc tam atveriet funkcijas/index.js un pievienojiet šādu kodu. Atcerieties mainīt

uz jūsu Firebase projekta ID.

const funkcijas = pieprasīt ('ugunsbāzes funkcijas');

const admin = pieprasīt ('firebase-admin'); admin.initializeApp () export.cleanup = features.https.onRequest ((pieprasījums, atbilde) => {admin.firestore ().collection ('uploads').where ('timestamp', '{snapshot.forEach (doc =) > {admin.storage ().bucket ('gs: //.appspot.com').file (doc.data ().key).delete () doc.ref.delete ()}) atgriezt atbildi.status (200).sūtīt ('OK')}).catch (err => response.status (500).send (err))});

Mākoņa funkciju izvietošana ir tikpat vienkārša kā šīs komandas palaišana.

firebase izvietošana

Pēc tam vietnē cron-job.org izveidojiet darbu, lai katru stundu aktivizētu šo parametru. Galapunkts būs kaut kas līdzīgs

us-central1-project_id.cloudfunctions.net/cleanup

6. darbība: palaidiet lietotni

Palaidiet lietotni simulatorā vai iOS ierīcē un sāciet koplietot fotoattēlus!

Ieteicams: