Kazalo:

Aplikacija IOS za skupno rabo fotografij v bližini: 6 korakov
Aplikacija IOS za skupno rabo fotografij v bližini: 6 korakov

Video: Aplikacija IOS za skupno rabo fotografij v bližini: 6 korakov

Video: Aplikacija IOS za skupno rabo fotografij v bližini: 6 korakov
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim

V tem navodilu bomo s Swiftom ustvarili aplikacijo za iOS, ki vam omogoča skupno rabo fotografij z vsemi v bližini, brez potrebe po seznanjanju naprav.

Chirp Connect bomo uporabljali za pošiljanje podatkov z zvokom, Firebase pa za shranjevanje slik v oblaku.

Pošiljanje podatkov z zvokom ustvarja edinstveno izkušnjo, kjer je mogoče podatke predvajati vsem, ki so v dosegu sluha.

Korak: Namestite zahteve

Xcode

Namestite iz App Store.

CocoaPods

sudo gem namestite cocoapods

Chirp Connect iOS SDK

Prijavite se na admin.chirp.io

2. korak: Namestitev projekta

1. Ustvarite projekt Xcode.

2. Prijavite se v Firebase in ustvarite nov projekt.

Omogočite Firestore tako, da kliknete razdelek Database in izberete Cloud Firestore. Kliknite Funkcije, da omogočite tudi funkcije v oblaku.

3. Zaženite razdelek Nastavitev aplikacije za iOS na strani Pregled projekta

Potrebovali boste identifikator svežnja na zavihku Splošno v nastavitvah projekta Xcode. Ko je podfile ustvarjen, boste morali pred zagonom pod install dodati naslednje odvisnosti.

# Stroki za projekt

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

4. Prenesite najnovejši SDK za Chirp Connect iOS s spletnega mesta admin.chirp.io/downloads

5. Sledite korakom na developers.chirp.io za integracijo Chirp Connect v Xcode.

Pojdite na Začetek / iOS. Nato se pomaknite navzdol in sledite navodilom za nastavitev Swift. To vključuje uvoz okvira in ustvarjanje premostitvene glave.

Zdaj je nastavitev končana, lahko začnemo pisati kodo! Priporočljivo je, da na vsaki stopnji nastavitve preverite, ali je vaš projekt sestavljen.

3. korak: Napišite kodo IOS

1. Uvozite Firebase v svoj ViewController in razširite NSData na razširitev hexString, tako da lahko pretvorimo koristne obremenitve Chirp Connect v šestnajstiški niz. (Chirp Connect bo na voljo po vsem svetu zahvaljujoč premostitveni glavi).

uvoz UIKit

uvoz Firebase

razširitev Podatki {

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

2. V svoj ViewController dodajte delegate ImagePicker in razglasite spremenljivko ChirpConnect, imenovano connect.

razred ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? preglasiti funkc viewDidLoad () {super.viewDidLoad ()…

3. Po super.viewDidLoad inicializirajte Chirp Connect in nastavite prejeti povratni klic. V prejetem povratnem klicu bomo sliko prenesli iz Firebase z uporabo prejete obremenitve in posodobili ImageView. APP_KEY in APP_SECRET lahko dobite iz admin.chirp.io.

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET), če dovolite connect = connect {connect.getLicenceString {(licenca: String ?, napaka: Napaka?) v, če je napaka == nil {če je licenca = licenca {connect.setLicenceString (licence) connect.start () connect.receivedBlock = {(data: Data?) -> () in if let data = data {print (String (format: "Prejeti podatki: %@", data.hexString)) let file = Storage.storage (). Reference (). Podrejeni (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, napaka v primeru, če gre za napako = napaka {print ("Napaka: %@", napaka.localizedDescription)} else {self.imageView.image = UIImage (podatki: imageData!)}}} else {print ("Dekodiranje ni uspelo"); }}}}

4. Zdaj dodajte kodo za pošiljanje slikovnih podatkov, ko so izbrani v uporabniškem vmesniku.

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

{let imageData = info [UIImagePickerControllerOriginalImage] kot? Podatki UIImage naj: Podatki = UIImageJPEGPredstavitev (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 = napaka {print (error.localizedDescription)}} Storage.storage ().reference (). podrejeni (key.hexString).putData (podatki, metapodatki: metapodatki) {(metapodatki, napaka) v primeru, če je napaka = napaka {print (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (animirano: res, zaključek: nič)}

Opomba: Dodati morate zasebnost - opis uporabe knjižnice fotografij, zasebnost - opis uporabe in zasebnost knjižnice fotografij - izjave o opisu uporabe mikrofona na svojem seznamu Info.plist, da podelite dovoljenja za uporabo kamere, knjižnice fotografij in mikrofona.

4. korak: Ustvarite uporabniški vmesnik

Ustvarite uporabniški vmesnik
Ustvarite uporabniški vmesnik

Zdaj pojdite na datoteko Main.storyboard, da ustvarite uporabniški vmesnik.

1. Povlecite čez ImageView in dva gumba na Storyboard s plošče Object Library v spodnjem desnem kotu.

2. Za vsak gumb dodajte omejitev višine približno 75 slikovnih pik, tako da izberete komponento in kliknete gumb Dodaj nove omejitve (tistega, ki izgleda kot borec kravate Star Wars), nato vnesite višino in pritisnite Enter.

3. Izberite vse tri komponente in jih s klikom na gumb Embed In Stack postavite v pogled sklada.

4. Zdaj odprite Pomočni urejevalnik in pritisnite CTRL ter povlecite od vsake komponente do kode ViewController, da ustvarite vtičnice za vsako komponento.

@IBOutlet var imageView: UIImageView!

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

5. Zdaj pritisnite CTRL in povlecite z obeh gumbov, da ustvarite dejanje za odpiranje uporabniškega vmesnika kamere/knjižnice.

6. V dejanje Odpri knjižnico dodajte naslednjo kodo

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

naj imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animirano: true, zaključek: nič)}

7. V dejanju Odpri kamero

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

naj imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animirano: true, zaključek: nič)}

5. korak: Napišite funkcijo v oblaku

Ker fotografij ni treba shranjevati v oblaku za vedno, lahko za čiščenje napišemo funkcijo v oblaku. To lahko vsako uro sproži funkcija HTTP kot funkcija HTTP, kot je cron-job.org.

Najprej moramo namestiti orodja firebase

npm install -g firebase -tools

Nato zaženite iz korenskega imenika projekta

firebase init

Izberite funkcije iz ukazne vrstice, da inicializirate funkcije v oblaku. Firestore lahko omogočite tudi, če želite konfigurirati Firestore.

Nato odprite functions/index.js in dodajte naslednjo kodo. Ne pozabite se spremeniti

na vaš ID projekta Firebase.

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

const admin = require ('firebase-admin'); admin.initializeApp () export.cleanup = functions.https.onRequest ((request, response) => {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))});

Uvajanje funkcij v oblaku je tako preprosto, kot da zaženete ta ukaz.

uvajanje firebase

Nato na cron-job.org ustvarite opravilo, ki vsako uro sproži to končno točko. Končna točka bo nekaj takega

us-central1-project_id.cloudfunctions.net/cleanup

6. korak: Zaženite aplikacijo

Zaženite aplikacijo na simulatorju ali napravi iOS in začnite deliti fotografije!

Priporočena: