INHOUDSOPGAWE:
- Stap 1: Installeer vereistes
- Stap 2: Opstelprojek
- Stap 3: Skryf IOS -kode
- Stap 4: Skep 'n gebruikerskoppelvlak
- Stap 5: Skryf 'n wolkfunksie
- Stap 6: Begin die app
Video: Proximity Photo Sharing IOS App: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:27
In hierdie instruksies sal ons 'n iOS -app met Swift skep waarmee u foto's kan deel met enigiemand in die omgewing, sonder dat paring nodig is.
Ons sal Chirp Connect gebruik om data met klank te stuur, en Firebase om die beelde in die wolk te stoor.
Deur data met klank te stuur, skep 'n unieke ervaring waar data aan almal binne gehoorbereik uitgesaai kan word.
Stap 1: Installeer vereistes
Xcode
Installeer vanaf die App Store.
Kakao -peule
sudo gem installeer cocoapods
Chirp Connect iOS SDK
Teken in by admin.chirp.io
Stap 2: Opstelprojek
1. Skep 'n Xcode -projek.
2. Meld aan by Firebase en skep 'n nuwe projek.
Aktiveer Firestore deur in die databasisafdeling te klik en Cloud Firestore te kies. Klik op Funksies om ook Cloud Functions in te skakel.
3. Begin deur Stel u iOS -program op die projekoorsigbladsy op
U benodig die bundel -identifiseerder op die oortjie Algemeen in u Xcode -projekinstellings. Sodra die podbestand geskep is, moet u die volgende afhanklikes byvoeg voordat u pod -installasie kan uitvoer.
# Peule vir die projek
pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Storage'
4. Laai die nuutste Chirp Connect iOS SDK af vanaf admin.chirp.io/downloads
5. Volg die stappe by developers.chirp.io om Chirp Connect in Xcode te integreer.
Gaan na Aan die gang / iOS. Blaai dan af en volg die instruksies vir die opstel van Swift. Dit behels die invoer van die raamwerk en die skep van 'n oorbruggingskop.
Nadat die opstelling voltooi is, kan ons 'n paar kode begin skryf! Dit is 'n goeie idee om die konstruksie van u projek in elke fase van die opstelling na te gaan.
Stap 3: Skryf IOS -kode
1. Voer Firebase in in u ViewController en brei NSData uit om 'n hexString -uitbreiding in te sluit, sodat ons Chirp Connect -laaivragte kan omskakel na 'n heksadesimale string. (Chirp Connect sal wêreldwyd beskikbaar wees danksy die oorbruggingskop).
voer UIKit in
voer Firebase in
uitbreidingsdata {
var hexString: String {return map {String (formaat: "%02x", UInt8 ($ 0))}.joined ()}}
2. Voeg ImagePicker -afgevaardigdes by u ViewController en verklaar 'n ChirpConnect -veranderlike genaamd connect.
klas ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
var connect: ChirpConnect? ignoreer func viewDidLoad () {super.viewDidLoad () …
3. Initialiseer Chirp Connect na super.viewDidLoad en stel die ontvangde terugbel op. In die terugbel wat ons ontvang, sal ons die prent van Firebase met behulp van die ontvangde vrag ophaal en die ImageView opdateer. U kan u APP_KEY en APP_SECRET by admin.chirp.io kry.
connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(license: String ?, error: Error?) in if error == nul {if let license = license {connect.setLicenceString (lisensie) connect.start () connect.receivedBlock = {(data: Data?) -> () in as laat data = data {print (String (formaat: "Ontvang data: %@", data.hexString)) laat lêer toe = Storage.storage (). Verwysing (). Kind (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, fout in as laat error = error {print ("Error: %@", error.localizedDescription)} else {self.imageView.image = UIImage (data: imageData!)}}} else {print ("Decode failed"); }}}}
4. Voeg nou die kode by om die beelddata te stuur sodra dit in die UI gekies is.
func imagePickerController (_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any])
{laat imageData = info [UIImagePickerControllerOriginalImage] as? UIImage laat data toe: Data = UIImageJPEGRepresentation (imageData !, 0.1)! self.imageView.image = imageData laat 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 = error {print (error.localizedDescription)}} Storage.storage ().reference (). kind (key.hexString).putData (data, metadata: metadata) {(metadata, fout) in if let error = error {print (error.localizedDescription)} anders {connect.send (sleutel)}} } self.dismiss (geanimeer: waar, voltooiing: nul)}
Opmerking: u moet 'n privaatheid - beskrywing van gebruik van fotobiblioteek, privaatheid - beskrywing van gebruik van fotobiblioteek en privaatheid - mikrofoongebruikbeskrywing by u Info.plist voeg om toestemming te verleen om die kamera, fotobiblioteek en mikrofoon te gebruik.
Stap 4: Skep 'n gebruikerskoppelvlak
Gaan nou na die Main.storyboard -lêer om 'n UI te skep.
1. Sleep oor 'n ImageView en twee knoppies na die storiebord vanaf die paneel Object Library in die regter onderste hoek.
2. Voeg vir elke knoppie 'n hoogtebeperking van ongeveer 75 px by deur die komponent te kies en op die knoppie Voeg nuwe beperkings te klik (die een wat lyk soos 'n Star Wars -stryker), en voer dan die hoogte in en druk op Enter.
3. Kies al drie die komponente en plaas dit in 'n stapelaansig deur op die Embed In Stack -knoppie te klik.
4. Maak nou die Assistent -redakteur oop, druk CTRL en sleep van elke komponent na die ViewController -kode om Outlets vir elke komponent te skep.
@IBOutlet var imageView: UIImageView!
@IBOutlet var openLibraryButton: UIButton! @IBOutlet was openCameraButton: UIButton!
5. CTRL nou en sleep van beide knoppies om 'n aksie te skep om die kamera/biblioteek -UI's oop te maak.
6. Voeg die volgende kode by die aksie Open Library
@IBAction func openLibrary (_ sender: Enige) {
laat imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, geanimeerde: waar, voltooiing: nul)}
7. In die oop kamera -aksie
@IBAction func openCamera (_ sender: Enige) {
laat imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, geanimeerde: waar, voltooiing: nul)}
Stap 5: Skryf 'n wolkfunksie
Aangesien die foto's nie vir ewig in die wolk gestoor hoef te word nie, kan ons 'n wolkfunksie skryf om die opruiming uit te voer. Dit kan elke uur as 'n HTTP-funksie geaktiveer word deur 'n cron-diens soos cron-job.org.
In die eerste plek moet ons firebase-gereedskap installeer
npm installeer -g firebase -tools
Begin dan vanaf die wortelgids van die projek
firebase init
Kies funksies uit die opdragreël om wolkfunksies te initialiseer. U kan ook Firestore inskakel as u Firestore wil instel.
Maak dan funksies/index.js oop en voeg die volgende kode by. Onthou om te verander
na u Firebase -projek -ID.
const funksies = require ('firebase-funksies');
const admin = require ('firebase-admin'); admin.initializeApp () exports.cleanup = functions.https.onRequest ((versoek, antwoord) => {admin.firestore ().collection ('uploads').where ('timestamp', '{snapshot.forEach (doc = > {admin.storage ().bucket ('gs: //.appspot.com').file (doc.data ().key).delete () doc.ref.delete ()}) terugvoer.status (200).send ('OK')}).catch (err => response.status (500).send (err))});
Om wolkfunksies te implementeer, is so eenvoudig soos om hierdie opdrag uit te voer.
vuurbasis ontplooi
Skep dan op cron-job.org 'n werk om hierdie eindpunt elke uur te aktiveer. Die eindpunt sal iets soos wees
us-central1-project_id.cloudfunctions.net/cleanup
Stap 6: Begin die app
Begin die app op 'n simulator of iOS -toestel, en begin foto's deel!
Aanbeveel:
Walker Proximity Device: 4 stappe
Walker Proximity Device: Hallo almal! Ons is 'n groep studente van die Massachusetts Academy of Mathematics and Science by WPI. Ons het onlangs 'n projek vir hulpmiddels voltooi om 'n kliënt met demensie by Seven Hills te help. As gevolg van sy demensie het die kliënt
AmbiBox IOS -afstandbeheer -app: 5 stappe
AmbiBox IOS -afstandbeheer -app: Met hierdie iOS -app kan u u AmbiBox vanaf u iPhone of iPad beheer. Ek gaan praat oor die app en hoe dit met die AmbiBox -bediener kommunikeer, as u wil weet hoe om AmbiBox en die ledstroke te installeer, is daar verskeie tutoriale in
Smart Home Automation With Energenie Sockets - Proximity Sockets: 4 Stappe
Smart Home Automation With Energenie Sockets - Proximity Sockets: Introduction Daar is baie voorbeelde van slim outomatisering van die huis, maar hierdie is eenvoudig en het 'n jaar lank baie effektief in my huis gewerk, so ek hoop dat u daarvan hou. As u klaar is, sal u 'n toestel hê wat die netwerk kan skandeer
Bluetooth LED -tekenbord en IOS -app: 9 stappe (met foto's)
Bluetooth LED -tekenbord en IOS -app: In hierdie tutoriaal kan u 'n Bluetooth LED -bord skep wat foto's kan teken van die iPhone -app wat ons skep. In hierdie app kan gebruikers 'n Connect 4 -speletjie skep wat ook op hierdie speelbord verskyn. Dit sal 'n ch
Eenvoudige IOS -app vir BLE -modules: 4 stappe
Eenvoudige IOS -app vir BLE -modules: hierdie instruksies beskryf hoe u 'n iOS -app met baie basiese funksies kan skep. Hierdie instruksies gaan nie deur die hele proses om 'n iOS BLE -app te maak nie. Dit gee slegs 'n hoë vlak oorsig van enkele belangrike elemente met