Sadržaj:
- Korak 1: Instalirajte zahtjeve
- Korak 2: Postavljanje projekta
- Korak 3: Napišite IOS kôd
- Korak 4: Izradite korisničko sučelje
- Korak 5: Napišite funkciju u oblaku
- Korak 6: Pokrenite aplikaciju
Video: IOS aplikacija za dijeljenje fotografija u blizini: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
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
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:
Aplikacija za daljinsko upravljanje AmbiBox IOS: 5 koraka
AmbiBox IOS aplikacija za daljinsko upravljanje: Pomoću ove iOS aplikacije možete kontrolirati svoj AmbiBox sa svog iPhonea ili iPada. Govorit ću o aplikaciji i načinu na koji komunicira s poslužiteljem AmbiBox, ako želite znati kako instalirati AmbiBox i LED trake, postoji nekoliko vodiča u
Pametni bicikl za dijeljenje: 12 koraka (sa slikama)
Pametni bicikl za dijeljenje: Kad god koristim bicikl, zaboravim upaliti svjetla kad padne mrak. Također na svom biciklu nemam načina da znam koliko brzo idem. Odlučio sam napraviti pametni bicikl za dijeljenje koji prati: Brzina Lokacija Koliko dugo ste
Bluetooth LED ploča za crtanje i IOS aplikacija: 9 koraka (sa slikama)
Bluetooth LED ploča za crtanje i IOS aplikacija: U ovom vodiču moći ćete stvoriti Bluetooth LED ploču koja može crtati slike iz iPhone aplikacije koju stvaramo. U ovoj aplikaciji korisnici će moći stvoriti igru Connect 4 koja će također biti prikazana na ovoj ploči za igru. Ovo će biti ch
Aplikacija Android/iOS za daljinski pristup vašem OpenWrt usmjerivaču: 11 koraka
Aplikacija Android/iOS za daljinski pristup vašem OpenWrt usmjerivaču: Nedavno sam kupio novi usmjerivač (Xiaomi Mi Router 3G). I naravno, ovaj novi, strašan hardver inspirirao me da počnem raditi na ovom projektu;)
Jednostavna IOS aplikacija za BLE module: 4 koraka
Jednostavna IOS aplikacija za BLE module: Ova uputa opisuje kako možete stvoriti iOS aplikaciju s vrlo osnovnom funkcionalnošću. Ovaj Instructable neće proći kroz cijeli proces izrade iOS BLE aplikacije. To će samo dati visoku razinu pregleda nekih važnih elemenata uz