Sadržaj:
- Korak 1: Instalirajte zahtjeve
- Korak 2: Postavljanje projekta
- Korak 3: Napišite IOS kôd
- Korak 4: Kreirajte korisničko sučelje
- Korak 5: Napišite Cloud funkciju
- Korak 6: Pokrenite aplikaciju
Video: IOS aplikacija za dijeljenje fotografija u blizini: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:08
U ovom uputstvu stvorit ćemo iOS aplikaciju sa Swiftom koja vam omogućuje da dijelite fotografije sa svima u blizini, bez potrebe za uparivanjem uređaja.
Koristit ćemo Chirp Connect za slanje podataka putem zvuka, a Firebase za spremanje slika u oblak.
Slanje podataka sa zvukom stvara jedinstveno iskustvo u kojem se podaci mogu emitirati bilo kome u dometu sluha.
Korak 1: Instalirajte zahtjeve
Xcode
Instalirajte iz App Store -a.
CocoaPods
sudo dragulj instalirati cocoapods
Chirp Connect iOS SDK
Prijavite se na admin.chirp.io
Korak 2: Postavljanje projekta
1. Kreirajte Xcode projekt.
2. Prijavite se na Firebase i kreirajte novi projekt.
Omogućite Firestore klikom na odjeljak Database i odabirom Cloud Firestore. Kliknite na Funkcije da biste omogućili i Cloud funkcije.
3. Pokrenite prozor Postavljanje aplikacije za iOS na stranici Pregled projekta
Trebat će vam Bundle Identifier s kartice General u vašim postavkama projekta Xcode. Nakon što se Podfile kreira, morat ćete dodati sljedeće ovisnosti, prije izvođenja pod install.
# Podovi za projekat
pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Pohrana'
4. Preuzmite najnoviji iOS SDK za Chirp Connect 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 završeno, možemo početi pisati neki kod! Bilo bi dobro provjeriti verzije vašeg projekta 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
uvoz 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 koja se zove 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 primljenog tereta i ažurirati ImageView. APP_KEY i APP_SECRET možete preuzeti sa admin.chirp.io.
connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) ako je dozvoljeno connect = connect {connect.getLicenceString {(licenca: String ?, greška: Error?) u ako je greška == nil {ako je dozvola = licenca {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, greška u slučaju da greška = greška {print ("Greška: %@", greš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])
{neka imageData = info [UIImagePickerControllerOriginalImage] kao? UIImage let data: 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 (podaci: [" 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, greška) ako je greška = greška {ispis (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (animirano: istina, završetak: ništa)}
Napomena: Morat ćete dodati privatnost - opis upotrebe biblioteke fotografija, privatnost - opis upotrebe biblioteke fotografija i privatnost - izjave o korištenju mikrofona na vašem popisu Info.plist za dodjelu dozvola za korištenje kamere, biblioteke fotografija i mikrofona.
Korak 4: Kreirajte korisničko sučelje
Sada idite na datoteku Main.storyboard da biste kreirali korisničko sučelje.
1. Prevucite ImageView i dva dugmeta do Storyboard -a sa panela Object Library u donjem desnom uglu.
2. Za svako dugme dodajte ograničenje visine od oko 75 piksela odabirom komponente i klikom na dugme Dodaj nova ograničenja (ono koje 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 dugme 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 sa oba dugmeta da biste kreirali radnju za otvaranje korisničkog interfejsa kamere/biblioteke.
6. U akciji Otvorena biblioteka dodajte sljedeći kôd
@IBAction func openLibrary (_ pošiljalac: 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šiljalac: Bilo koji) {
neka imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animirano: istina, završetak: ništa)}
Korak 5: Napišite Cloud funkciju
Kako fotografije ne moraju biti zauvijek pohranjene u oblaku, možemo napisati Cloud funkciju za čišćenje. To može pokrenuti kao HTTP funkcija svakog sata od strane cron servisa 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 da se promenite
na vaš Firebase ID 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))});
Implementacija cloud funkcija je jednostavna kao i pokretanje ove naredbe.
implementacija firebase
Zatim na cron-job.org kreirajte posao za pokretanje ove krajnje točke svaki sat. Krajnja tačka će biti 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čuje se:
AmbiBox IOS aplikacija za daljinsko upravljanje: 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 AmbiBox poslužiteljem, 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 kada 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 se također prikazivati na ovoj ploči za igru. Ovo će biti ch
Android/iOS aplikacija za daljinski pristup vašem OpenWrt usmjerivaču: 11 koraka
Android/iOS aplikacija za daljinski pristup vašem OpenWrt usmjerivaču: Nedavno sam kupio novi usmjerivač (Xiaomi Mi Router 3G). I naravno, ovaj novi, sjajan komad hardvera me inspirirao da počnem raditi na ovom projektu;)
Jednostavna IOS aplikacija za BLE module: 4 koraka
Jednostavna IOS aplikacija za BLE module: Ova instrukcija opisuje kako možete stvoriti iOS aplikaciju s vrlo osnovnim funkcionalnostima. Ovaj Instructable neće proći kroz cijeli proces izrade iOS BLE aplikacije. To će samo dati visok nivo pregleda nekih važnih elemenata sa