Sadržaj:

IOS aplikacija za dijeljenje fotografija u blizini: 6 koraka
IOS aplikacija za dijeljenje fotografija u blizini: 6 koraka

Video: IOS aplikacija za dijeljenje fotografija u blizini: 6 koraka

Video: IOS aplikacija za dijeljenje fotografija u blizini: 6 koraka
Video: How to Use Microsoft Teams for iPhone 2024, Studeni
Anonim

U ovom uputstvu stvorit ćemo iOS aplikaciju sa Swiftom koja vam omogućuje dijeljenje fotografija sa svima u blizini, bez potrebe za uparivanjem uređaja.

Koristit ćemo Chirp Connect za slanje podataka putem zvuka, a Firebase za pohranu slika u oblak.

Slanje podataka sa zvukom stvara jedinstveno iskustvo gdje se podaci mogu emitirati bilo kome u dometu sluha.

Korak 1: Instalirajte zahtjeve

Xcode

Instalirajte iz App Storea.

CocoaPods

sudo dragulj instalirati cocoapods

Chirp Connect iOS SDK

Prijavite se na admin.chirp.io

Korak 2: Postavljanje projekta

1. Izradite Xcode projekt.

2. Prijavite se na Firebase i izradite novi projekt.

Omogućite Firestore klikom na odjeljak Baza podataka i odabirom Cloud Firestore. Kliknite Funkcije da biste omogućili i funkcije u oblaku.

3. Pokrenite Postavljanje aplikacije iOS na stranici Pregled projekta

Trebat će vam Bundle Identifier s kartice General u vašim postavkama projekta Xcode. Nakon što se podfile stvori, morat ćete dodati sljedeće ovisnosti, prije izvođenja pod install.

# Podovi za projekt

pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Pohrana'

4. Preuzmite najnoviji SDK za Chirp Connect iOS sa stranice admin.chirp.io/downloads

5. Slijedite korake na developers.chirp.io za integraciju Chirp Connect u Xcode.

Idite na Prvi koraci / iOS. Zatim se pomaknite prema dolje i slijedite upute za postavljanje Swifta. To će uključivati uvoz okvira i stvaranje premošćujućeg zaglavlja.

Sada je postavljanje dovršeno, možemo početi pisati neki kod! Bilo bi dobro provjeriti verzije svojih projekata u svakoj fazi postavljanja.

Korak 3: Napišite IOS kôd

1. Uvezite Firebase u svoj ViewController i proširite NSData tako da uključi proširenje hexString, tako da možemo pretvoriti korisni teret Chirp Connect u heksadecimalni niz. (Chirp Connect će biti dostupan globalno zahvaljujući zaglavlju za premošćivanje).

uvoz UIKit

uvesti Firebase

proširenje Podaci {

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

2. Dodajte ImagePicker delegate u svoj ViewController i deklarirajte ChirpConnect varijablu pod nazivom connect.

klasa ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? nadjačati funkc viewDidLoad () {super.viewDidLoad ()…

3. Nakon super.viewDidLoad, inicijalizirajte Chirp Connect i postavite primljeni povratni poziv. U primljenom povratnom pozivu dohvatit ćemo sliku iz Firebasea pomoću primljene nosivosti i ažurirati ImageView. APP_KEY i APP_SECRET možete nabaviti s admin.chirp.io.

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) ako dopustimo connect = connect {connect.getLicenceString {(licenca: String ?, greška: Error?) u ako je error == nil {if let license = license {connect.setLicenceString (licence) connect.start () connect.receivedBlock = {(data: Data?) -> () in if let data = data {print (String (format: "Primljeni podaci: %@", data.hexString)) neka datoteka = Storage.storage (). Reference (). Dijete (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, pogreška u slučaju da greška = pogreška {ispis ("Pogreška: %@", pogreška.localizedDescription)} else {self.imageView.image = UIImage (podaci: imageData!)}}} else {print ("Dekodiranje nije uspjelo"); }}}}

4. Sada dodajte kôd za slanje slikovnih podataka nakon što su odabrani u korisničkom sučelju.

func imagePickerController (_ birač: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Bilo koji])

{let imageData = info [UIImagePickerControllerOriginalImage] kao? UIImage neka podaci: Podaci = UIImageJPEGPreprezentacija (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 (" uploads "). addDocument (data: [" key ": key.hexString," timestamp ": FieldValue.serverTimestamp ()]) {error in if let error = greška {print (error.localizedDescription)}} Storage.storage ().reference (). dijete (key.hexString).putData (podaci, metapodaci: metapodaci) {(metapodaci, pogreška) in if let error = error {print (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (animirano: istina, završetak: ništa)}

Napomena: Morat ćete dodati privatnost - opis korištenja biblioteke fotografija, privatnost - opis korištenja biblioteke fotografija i privatnost - izjave o korištenju mikrofona na vašem popisu Info.plist kako biste dali dopuštenja za korištenje kamere, biblioteke fotografija i mikrofona.

Korak 4: Izradite korisničko sučelje

Napravite korisničko sučelje
Napravite korisničko sučelje

Sada idite na datoteku Main.storyboard da biste stvorili korisničko sučelje.

1. Povucite preko ImageView -a i dva gumba na Storyboard s ploče Object Library u donjem desnom kutu.

2. Za svaki gumb dodajte ograničenje visine od oko 75 piksela odabirom komponente i klikom na gumb Dodaj nova ograničenja (onaj koji izgleda kao borac za kravate Star Wars), a zatim unesite visinu i pritisnite Enter.

3. Odaberite sve tri komponente i stavite ih u prikaz snopa klikom na gumb Embed In Stack.

4. Sada otvorite pomoćni uređivač, pritisnite CTRL i povucite sa svake komponente do koda ViewController da biste stvorili utičnice za svaku komponentu.

@IBOutlet var imageView: UIImageView!

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

5. Sada pritisnite CTRL i povucite s oba gumba da biste stvorili radnju za otvaranje korisničkog sučelja kamere/knjižnice.

6. U akciji Otvorena knjižnica dodajte sljedeći kôd

@IBAction func openLibrary (_ pošiljatelj: Bilo koji) {

neka imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animirano: istina, završetak: ništa)}

7. U radnji Otvori kameru

@IBAction func openCamera (_ pošiljatelj: Bilo koji) {

neka imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animirano: istina, završetak: ništa)}

Korak 5: Napišite funkciju u oblaku

Budući da fotografije ne moraju biti zauvijek pohranjene u oblaku, možemo napisati Cloud funkciju za obavljanje čišćenja. To može pokrenuti kao HTTP funkcija svakog sata od strane cron usluge poput cron-job.org.

Prije svega moramo instalirati firebase-alate

npm install -g firebase -tools

Zatim iz korijenskog direktorija projekta pokrenite

firebase init

Odaberite funkcije iz naredbenog retka za inicijalizaciju funkcija u oblaku. Također možete omogućiti firestore ako želite i konfigurirati Firestore.

Zatim otvorite functions/index.js i dodajte sljedeći kod. Ne zaboravite se promijeniti

na vaš ID Firebase projekta.

const functions = require ('firebase-functions');

const admin = require ('firebase-admin'); admin.initializeApp () export.cleanup = functions.https.onRequest ((zahtjev, odgovor) => {admin.firestore ().collection ('uploads').where ('timestamp', '{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))});

Postavljanje funkcija u oblaku jednostavno je poput izvođenja ove naredbe.

implementacija firebase

Zatim na cron-job.org stvorite posao za pokretanje ove krajnje točke svaki sat. Krajnja točka bit će nešto poput

us-central1-project_id.cloudfunctions.net/cleanup

Korak 6: Pokrenite aplikaciju

Pokrenite aplikaciju na simulatoru ili iOS uređaju i počnite dijeliti fotografije!

Preporučeni: