Cuprins:
- Pasul 1: Instalați cerințele
- Pasul 2: Configurare proiect
- Pasul 3: Scrieți codul IOS
- Pasul 4: Creați o interfață cu utilizatorul
- Pasul 5: Scrieți o funcție Cloud
- Pasul 6: Rulați aplicația
Video: Aplicația IOS pentru partajarea fotografiilor de proximitate: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Î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
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:
Aplicația Android / iOS pentru a accesa de la distanță routerul OpenWrt: 11 pași
Aplicația Android / iOS pentru a vă accesa de la distanță routerul OpenWrt: Am cumpărat recent un router nou (Xiaomi Mi Router 3G). Și, bineînțeles, această piesă hardware nouă și minunată m-a inspirat să încep să lucrez la acest proiect;)
Faceți o prezentare dinamică a fotografiilor dvs. cu Photo Story 3: 16 Pași
Realizați o prezentare dinamică a fotografiilor dvs. cu Photo Story 3: Aceasta este o modalitate de a face o prezentare de imagini frumoase.wmv cu efecte de panoramare și zoom folosind în principal software gratuit. Mă aștept să existe căi mai ușoare, dar nu am putut găsi un instructabil pe această temă. Metoda mea merge puțin prin case, dar funcționează
Crearea Bookhuddle.com, un site web pentru descoperirea, organizarea și partajarea informațiilor despre carte: 10 pași
Crearea Bookhuddle.com, un site web pentru descoperirea, organizarea și partajarea informațiilor despre carte: Această postare descrie pașii implicați în crearea și lansarea Bookhuddle.com, un site web menit să ajute cititorii să descopere, să organizeze și să împărtășească informații despre cărți. Pașii descriși aici s-ar aplica dezvoltării altor site-uri web
Tablou de afișare a fotografiilor: 5 pași
Tablou de afișare a fotografiilor: am vrut o modalitate de a afișa fotografii în care să le pot schimba periodic, așa că pe baza unor idei din Apartment Therapy: San Francisco, precum și din alte surse de idei online, am venit cu această metodă. două panouri de afișare, ambele
Îmbunătățire ieftină a fotografiilor tipărite: 4 pași (cu imagini)
Îmbunătățirea ieftină a fotografiilor tipărite: Imprimantele ieftine își fac treaba foarte bine, dar fotografiile tipărite sunt foarte sensibile: orice picătură de apă le strică. Hârtia „foto” pentru imprimarea fotografiilor este foarte scumpă. Hârtia normală oferă rezultate regulate. Am folosit hârtie normală A4 de 75 g pentru