Sisukord:

Läheduse fotode jagamise IOS -i rakendus: 6 sammu
Läheduse fotode jagamise IOS -i rakendus: 6 sammu

Video: Läheduse fotode jagamise IOS -i rakendus: 6 sammu

Video: Läheduse fotode jagamise IOS -i rakendus: 6 sammu
Video: Как работает BitTorrent? 2024, November
Anonim

Selles juhendis loome Swiftiga iOS -i rakenduse, mis võimaldab teil jagada fotosid läheduses olevate inimestega ilma seadme sidumiseta.

Me kasutame heli saatmiseks andmete saatmiseks Chirp Connecti ja piltide pilve salvestamiseks Firebase'i.

Heli abil andmete saatmine loob ainulaadse kogemuse, kus andmeid saab edastada kõigile, kes on kuulmispiirkonnas.

Samm: installinõuded

Xcode

Installige App Store'ist.

Kakaopoodid

sudo gem installida kakaod

Chirp Connect iOS SDK

Registreeruge aadressil admin.chirp.io

2. samm: seadistusprojekt

1. Looge Xcode projekt.

2. Logige Firebase'i sisse ja looge uus projekt.

Luba Firestore, klõpsates jaotises Andmebaas ja valides Cloud Firestore. Pilvefunktsioonide lubamiseks klõpsake valikul Funktsioonid.

3. Tehke lehel Projektide ülevaade läbi iOS -i rakenduse seadistamine

Teil on vaja Xcode projekti seadete vahekaardil Üldine kimpude identifikaatorit. Kui Podfile on loodud, peate enne pod installimise käivitamist lisama järgmised sõltuvused.

# Kaunad projekti jaoks

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

4. Laadige alla uusim Chirp Connect iOS SDK saidilt admin.chirp.io/downloads

5. Chirp Connecti Xcode'i integreerimiseks järgige saidil Developers.chirp.io toodud juhiseid.

Avage Alustamine / iOS. Seejärel kerige alla ja järgige Swifti seadistamisjuhiseid. See hõlmab raamistiku importimist ja sildpäise loomist.

Nüüd on seadistamine lõppenud, saame hakata koodi kirjutama! Hea mõte on kontrollida oma projekti koostamist seadistamise igas etapis.

Samm: kirjutage IOS -kood

1. Importige Firebase oma ViewControllerisse ja laiendage NSData, et see sisaldaks laiendit hexString, et saaksime teisendada Chirp Connecti kasulikud koormused kuueteistkümnendiks. (Chirp Connect on tänu sillapäisele saadaval kogu maailmas).

import UIKit

Firebase'i importimine

laiendi andmed {

var hexString: String {tagastuskaart {String (formaat: "%02x", UInt8 ($ 0))}. liitunud ()}}

2. Lisage oma ViewControllerisse ImagePickeri esindajad ja deklareerige ChirpConnecti muutuja nimega connect.

klassi ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? alistama func viewDidLoad () {super.viewDidLoad ()…

3. Pärast super.viewDidLoad käivitage Chirp Connect ja seadistage vastuvõetud tagasihelistamine. Vastuvõetud tagasihelistamisel toome pildi Firebase'ist, kasutades saadud koormust, ja värskendame ImageView. Saate oma APP_KEY ja APP_SECRET hankida aadressilt admin.chirp.io.

connect = ChirpConnect (appKey: APP_KEY ja Secret: APP_SECRET) if let connect = connect {connect.getLicenceString {(litsents: string ?, error: Error?) in if error == nil {if let license = license {connect.setLicenceString (litsents) connect.start () connect.receivedBlock = {(andmed: andmed?) -> () sisse kui lubada andmed = andmed {print (String (formaat: "Vastuvõetud andmed: %@", data.hexString)) lase fail = Storage.storage (). Viide (). Laps (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, viga sisselaskmisel error = error {print ("Error: %@", error.localizedDescription)} else {self.imageView.image = UIImage (andmed: imageData!)}}} else {print ("Dekodeerimine ebaõnnestus"); }}}}

4. Nüüd lisage pildiandmete saatmiseks kood, kui see on kasutajaliideses valitud.

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

{lubage imageData = info [UIImagePickerControllerOriginalImage] kui? UIImage lubab andmeid: Data = UIImageJPEGRepresentation (imageData !, 0,1)! self.imageView.image = imageData let metadata = StorageMetadata () metadata.contentType = "image/jpeg" kui lubada connect = connect {let key: Data = connect.randomPayload (withLength: 8) Firestore.firestore (). collection (" addDocument (andmed: ["võti": key.hexString, "timestamp": FieldValue.serverTimestamp ()]) {error in if let error = error {print (error.localizedDescription)}} Storage.storage ().reference (). laps (key.hexString).putData (andmed, metaandmed: metaandmed) {(metaandmed, viga) sisse, kui lasta viga = viga {print (error.localizedDescription)}} muu {connect.send (võti)}} } self.dismiss (animeeritud: tõsi, lõpetamine: null)}

Märkus. Kaamera, fototeegi ja mikrofoni kasutamiseks vajalike õiguste lisamiseks peate oma Info.plisti lisama privaatsuse - fototeegi kasutamise kirjelduse, privaatsuse - fototeegi kasutamise kirjelduse ja privaatsuse - mikrofoni kasutamise kirjelduse avaldused.

Samm: looge kasutajaliides

Looge kasutajaliides
Looge kasutajaliides

Nüüd minge kasutajaliidese loomiseks faili Main.storyboard.

1. Lohistage paremas alanurgas asuval objektide kogu paneelil üle ImageView ja kaks nuppu süžeeskeemile.

2. Lisage igale nupule kõrguspiirang umbes 75 pikslit, valides komponendi ja klõpsates nupul Lisa uued piirangud (see, mis näeb välja nagu Star Warsi lipsuvõitleja), seejärel sisestage kõrgus ja vajutage sisestusklahvi.

3. Valige kõik kolm komponenti ja pange need virna vaatele, klõpsates nuppu Embed In Stack.

4. Nüüd avage assistendi redaktor ja vajutage klahvikombinatsiooni CTRL ning lohistage igast komponendist ViewController koodi, et luua igale komponendile väljundid.

@IBOutlet var imageView: UIImageView!

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

5. Nüüd CTRL ja lohistage mõlemast nupust, et luua toiming kaamera/teegi kasutajaliidese avamiseks.

6. Toimingusse Ava teek lisage järgmine kood

@IBAction func openLibrary (_ saatja: ükskõik) {

lase imagePicker = UIImagePickerController () imagePicker.delegate = ise; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animeeritud: tõsi, lõpetamine: null)}

7. Aknas Ava kaamera

@IBAction func openCamera (_ saatja: ükskõik) {

lase imagePicker = UIImagePickerController () imagePicker.delegate = mina imagePicker.sourceType =.kaamera; self.present (imagePicker, animeeritud: tõsi, lõpetamine: null)}

Samm: kirjutage pilvefunktsioon

Kuna fotosid ei pea igavesti pilve salvestama, saame puhastuse tegemiseks kirjutada pilvefunktsiooni. Selle võib käivitada HTTP-funktsioonina iga tund cron-teenus, näiteks cron-job.org.

Kõigepealt peame installima firebase-tööriistad

npm installida -g firebase -tools

Seejärel käivitage projekti juurkataloog

firebase'i algataja

Pilvefunktsioonide lähtestamiseks valige käsurealt funktsioonid. Kui soovite ka Firestore'i konfigureerida, saate lubada ka tuletoite.

Seejärel avage funktsioonid/index.js ja lisage järgmine kood. Ärge unustage muuta

oma Firebase'i projekti ID -le.

const funktsioonid = nõuda ('tulebaasi funktsioonid');

const admin = nõuda ('firebase-admin'); admin.initializeApp () export.cleanup = features.https.onRequest ((päring, vastus) => {admin.firestore ().collection ('uploads').where ('timestamp', '{snapshot.forEach (doc =) > {admin.storage ().bucket ('gs: //.appspot.com').fail (doc.data ().key).delete () doc.ref.delete ()}) return response.status (200). Saata ('OK')}). Püüdma (err => vastus. Olek (500). Saatma (viga))});

Pilvefunktsioonide juurutamine on sama lihtne kui selle käsu käivitamine.

tulebaasi juurutamine

Seejärel looge saidil cron-job.org töö, mis käivitab selle tunnuse iga tunni tagant. Lõpp -punkt saab olema midagi sellist

us-central1-project_id.cloudfunctions.net/cleanup

Samm: käivitage rakendus

Käivitage rakendus simulaatoris või iOS -seadmes ja hakake fotosid jagama!

Soovitan: