Cuprins:

Aplicația IOS pentru partajarea fotografiilor de proximitate: 6 pași
Aplicația IOS pentru partajarea fotografiilor de proximitate: 6 pași

Video: Aplicația IOS pentru partajarea fotografiilor de proximitate: 6 pași

Video: Aplicația IOS pentru partajarea fotografiilor de proximitate: 6 pași
Video: Uite încă o funcție ascunsă de pe iPhone👆🏻 2024, Decembrie
Anonim

În acest instructiv, vom crea o aplicație iOS cu Swift care vă permite să partajați fotografii cu oricine din apropiere, fără a fi necesară asocierea dispozitivelor.

Vom folosi Chirp Connect pentru a trimite date folosind sunet și Firebase pentru a stoca imaginile în cloud.

Trimiterea de date cu sunet creează o experiență unică în care datele pot fi transmise oricui se află în raza de auz.

Pasul 1: Instalați cerințele

Xcode

Instalați din App Store.

CocoaPods

sudo gem instalează cocoapode

Chirp Connect iOS SDK

Înscrieți-vă la admin.chirp.io

Pasul 2: Configurare proiect

1. Creați un proiect Xcode.

2. Conectați-vă la Firebase și creați un proiect nou.

Activați Firestore făcând clic în secțiunea Baza de date și selectând Cloud Firestore. Faceți clic pe Funcții pentru a activa și funcțiile Cloud.

3. Rulați prin Configurarea aplicației iOS pe pagina Prezentare generală a proiectului

Veți avea nevoie de identificatorul de pachet din fila General din setările proiectului Xcode. Odată ce Podfile este creat, va trebui să adăugați următoarele dependențe, înainte de a rula instalarea podului.

# Pods pentru proiect

pod "Firebase / Core" pod "Firebase / Firestore" pod "Firebase / Storage"

4. Descărcați cel mai recent SDK Chirp Connect iOS de la admin.chirp.io/downloads

5. Urmați pașii de la developer.chirp.io pentru a integra Chirp Connect în Xcode.

Accesați Introducere / iOS. Apoi derulați în jos și urmați instrucțiunile de configurare Swift. Aceasta va implica importarea cadrului și crearea unui antet de legătură.

Acum configurarea este completă, putem începe să scriem un cod! Este o idee bună să verificați construcțiile proiectului dvs. în fiecare etapă a configurării.

Pasul 3: Scrieți codul IOS

1. Importați Firebase în ViewController și extindeți NSData pentru a include o extensie hexString, astfel încât să putem converti sarcinile utile Chirp Connect într-un șir hexadecimal. (Chirp Connect va fi disponibil la nivel global datorită antetului de legătură).

import UIKit

import Firebase

Date extensie {

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

2. Adăugați delegații ImagePicker la ViewController și declarați o variabilă ChirpConnect numită conectare.

clasa ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? suprascrie funcțiile viewDidLoad () {super.viewDidLoad () …

3. După super.viewDidLoad, inițializați Chirp Connect și configurați apelul primit. În apelul de apel primit, vom prelua imaginea din Firebase folosind sarcina utilă primită și vom actualiza ImageView. Puteți obține APP_KEY și APP_SECRET de la admin.chirp.io.

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(license: String ?, error: Error?) in if error == zero {if let license = license {connect.setLicenceString (license) connect.start () connect.receivedBlock = {(data: Data?) -> () in if let data = data {print (String (format: "Date primite:% @", data.hexString)) let file = Storage.storage (). Reference (). Child (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, error in if let error = error {print ("Error:% @", error.localizedDescription)} else {self.imageView.image = UIImage (date: imageData!)}}} else {print ("Decodarea a eșuat"); }}}}

4. Acum adăugați codul pentru a trimite datele imaginii după ce a fost selectat în interfața de utilizare.

func imagePickerController (_ selector: UIImagePickerController, didFinishPickingMediaWithInfo info: [Șir: Orice])

{let imageData = info [UIImagePickerControllerOriginalImage] ca? UIImage lasă datele: 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 (" uploads "). addDocument (date: [" key ": key.hexString," timestamp ": FieldValue.serverTimestamp ()]) {error in if let error = error {print (error.localizedDescription)}} Storage.storage ().reference (). child (key.hexString).putData (date, metadate: metadate) {(metadate, error) în if let error = error {print (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (animat: adevărat, completare: nul)}

Notă: Va trebui să adăugați o confidențialitate - descrierea utilizării bibliotecii foto, confidențialitate - descrierea utilizării bibliotecii foto și confidențialitate - declarații descriere utilizare microfon în lista dvs. Info.plist pentru a acorda permisiunile de utilizare a camerei, a bibliotecii foto și a microfonului.

Pasul 4: Creați o interfață cu utilizatorul

Creați o interfață cu utilizatorul
Creați o interfață cu utilizatorul

Acum accesați fișierul Main.storyboard pentru a crea o interfață de utilizare.

1. Trageți peste un ImageView și două butoane la Storyboard din panoul Library Object din colțul din dreapta jos.

2. Pentru fiecare buton adăugați o constrângere de înălțime de aproximativ 75 px, selectând componenta și făcând clic pe butonul Adăugare constrângeri noi (cel care arată ca un luptător de cravată Star Wars), apoi introduceți înălțimea și apăsați Enter.

3. Selectați toate cele trei componente și puneți-le într-o vizualizare stivă făcând clic pe butonul Încorporare în stivă.

4. Acum deschideți Assistant Assistant și apăsați CTRL și trageți de la fiecare componentă la codul ViewController, pentru a crea prize pentru fiecare componentă.

@IBOutlet var imageView: UIImageView!

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

5. Acum CTRL și trageți de pe ambele butoane pentru a crea o acțiune pentru a deschide interfața de utilizare a camerei / bibliotecii.

6. În acțiunea Open Library, adăugați următorul cod

@IBAction funcții openLibrary (_ expeditor: Orice) {

let imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animat: adevărat, finalizare: nul)}

7. În acțiunea Deschideți camera

@IBAction funcții openCamera (_ expeditor: Orice) {

let imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animat: adevărat, completare: nul)}

Pasul 5: Scrieți o funcție Cloud

Deoarece fotografiile nu trebuie stocate în cloud pentru totdeauna, putem scrie o funcție Cloud pentru a efectua curățarea. Acest lucru poate fi declanșat ca o funcție HTTP în fiecare oră de către un serviciu cron, cum ar fi cron-job.org.

În primul rând trebuie să instalăm firebase-tools

npm instala -g firebase-tools

Apoi, din directorul rădăcină al proiectului, rulați

Firebase init

Selectați funcțiile din linia de comandă pentru a inițializa funcțiile cloud. De asemenea, puteți activa firestore dacă doriți să configurați Firestore.

Apoi deschide funcțiile / index.js și adaugă următorul cod. Nu uitați să vă schimbați

la ID-ul dvs. de proiect Firebase.

funcții const = require ('firebase-functions');

const admin = require ('firebase-admin'); admin.initializeApp () exporta.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))});

Implementarea funcțiilor cloud este la fel de simplă ca executarea acestei comenzi.

implementare firebase

Apoi la cron-job.org creați o lucrare pentru a declanșa acest punct final la fiecare oră. Punctul final va fi ceva de genul

us-central1-project_id.cloudfunctions.net/cleanup

Pasul 6: Rulați aplicația

Rulați aplicația pe un simulator sau dispozitiv iOS și începeți să partajați fotografii!

Recomandat: