Indholdsfortegnelse:
- Trin 1: Installer krav
- Trin 2: Opsætning af projekt
- Trin 3: Skriv IOS -kode
- Trin 4: Opret en brugergrænseflade
- Trin 5: Skriv en skyfunktion
- Trin 6: Kør appen
Video: Proximity Photo Sharing IOS App: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
I denne instruks vil vi oprette en iOS -app med Swift, der giver dig mulighed for at dele fotos med alle i nærheden, uden at en enhedsparring er nødvendig.
Vi bruger Chirp Connect til at sende data ved hjælp af lyd, og Firebase til at gemme billederne i skyen.
At sende data med lyd skaber en unik oplevelse, hvor data kan udsendes til alle inden for høreområdet.
Trin 1: Installer krav
Xcode
Installer fra App Store.
CocoaPods
sudo gem installer cocoapods
Chirp Connect iOS SDK
Tilmeld dig på admin.chirp.io
Trin 2: Opsætning af projekt
1. Opret et Xcode -projekt.
2. Log ind på Firebase, og opret et nyt projekt.
Aktiver Firestore ved at klikke ind i Database -sektionen og vælge Cloud Firestore. Klik på Funktioner for også at aktivere Cloud -funktioner.
3. Kør igennem Konfigurer din iOS -app på siden Projektoversigt
Du skal bruge Bundle Identifier fra fanen Generelt i dine Xcode -projektindstillinger. Når podfilen er oprettet, skal du tilføje følgende afhængigheder, før du kan installere pod.
# Bælge til projekt
pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Storage'
4. Download den nyeste Chirp Connect iOS SDK fra admin.chirp.io/downloads
5. Følg trinene på developers.chirp.io for at integrere Chirp Connect i Xcode.
Gå til Kom godt i gang / iOS. Rul derefter ned og følg instruktionerne i Swift -opsætningen. Dette vil indebære import af rammerne og oprettelse af et brohoved.
Nu er opsætningen færdig, vi kan begynde at skrive nogle kode! Det er en god idé at kontrollere dine projektbygninger på hvert trin i opsætningen.
Trin 3: Skriv IOS -kode
1. Importer Firebase til din ViewController og udvid NSData til at omfatte en hexString -udvidelse, så vi kan konvertere Chirp Connect nyttelast til en hexadecimal streng. (Chirp Connect vil være tilgængelig globalt takket være brooverskriften).
import UIKit
importer Firebase
udvidelsesdata {
var hexString: String {return map {String (format: "%02x", UInt8 ($ 0))}.joined ()}}
2. Føj ImagePicker -delegerede til din ViewController, og erklær en ChirpConnect -variabel, der kaldes connect.
klasse ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
var connect: ChirpConnect? tilsidesætte func viewDidLoad () {super.viewDidLoad () …
3. Efter super.viewDidLoad, initialiser Chirp Connect, og konfigurer det modtagne opkald. I det modtagne tilbagekald vil vi hente billedet fra Firebase ved hjælp af den modtagne nyttelast og opdatere ImageView. Du kan få din APP_KEY og APP_SECRET fra admin.chirp.io.
connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(licens: String ?, error: Error?) in if error == nul {if let licens = licens {connect.setLicenceString (licens) connect.start () connect.receivedBlock = {(data: Data?) -> () i hvis lad data = data {print (String (format: "Modtagne data: %@", data.hexString)) lad filen = Storage.storage (). Reference (). Barn (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, fejl i hvis lad fejl = fejl {print ("Fejl: %@", fejl.localizedDescription)} else {self.imageView.image = UIImage (data: imageData!)}}} else {print ("Decode failed"); }}}}
4. Tilføj nu koden for at sende billeddataene, når de er valgt i brugergrænsefladen.
func imagePickerController (_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any])
{lad imageData = info [UIImagePickerControllerOriginalImage] som? UIImage lad data: Data = UIImageJPEGRepresentation (imageData !, 0.1)! self.imageView.image = imageData lad 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 ()]) {fejl i if let error = error {print (error.localizedDescription)}} Storage.storage ().reference (). barn (key.hexString).putData (data, metadata: metadata) {(metadata, fejl) i if let error = error {print (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (animeret: true, afslutning: nul)}
Bemærk: Du skal tilføje en fortrolighed - beskrivelse af brug af fotobibliotek, fortrolighed - beskrivelse af brug af fotobibliotek og fortrolighed - beskrivelser af mikrofonanvendelse til din Info.plist for at give tilladelse til at bruge kameraet, fotobiblioteket og mikrofonen.
Trin 4: Opret en brugergrænseflade
Gå nu til Main.storyboard -filen for at oprette et brugergrænseflade.
1. Træk hen over en ImageView og to knapper til Storyboard fra panelet Objektbibliotek i nederste højre hjørne.
2. For hver knap tilføjes en højdebegrænsning på ca. 75px ved at vælge komponenten og klikke på knappen Tilføj nye begrænsninger (den, der ligner en Star Wars slipsfighter), og derefter indtaste højden og trykke på Enter.
3. Vælg alle tre komponenter, og sæt dem i en stabelvisning ved at klikke på knappen Integrer i stak.
4. Åbn nu Assistant Editor, og tryk på CTRL og træk fra hver komponent til ViewController -koden for at oprette Outlets for hver komponent.
@IBOutlet var imageView: UIImageView!
@IBOutlet var openLibraryButton: UIButton! @IBOutlet var openCameraButton: UIButton!
5. Nu CTRL og træk fra begge knapper for at oprette en handling for at åbne kameraets/bibliotekets brugergrænseflader.
6. I handlingen Åbn bibliotek skal du tilføje følgende kode
@IBAction func openLibrary (_ afsender: Enhver) {
lad imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animeret: true, afslutning: nul)}
7. I handlingen Åbn kamera
@IBAction func openCamera (_ afsender: Enhver) {
lad imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animeret: true, fuldførelse: nul)}
Trin 5: Skriv en skyfunktion
Da billederne ikke behøver at blive gemt i skyen for evigt, kan vi skrive en Cloud -funktion for at udføre oprydningen. Dette kan udløses som en HTTP-funktion hver time af en cron-tjeneste som f.eks. Cron-job.org.
Først og fremmest skal vi installere firebase-værktøjer
npm installer -g firebase -værktøjer
Kør derefter fra projektets rodmappe
firebase init
Vælg funktioner fra kommandolinjen for at initialisere skyfunktioner. Du kan også aktivere firestore, hvis du også vil konfigurere Firestore.
Åbn derefter funktioner/index.js og tilføj følgende kode. Husk at ændre
til dit Firebase -projekt -id.
const-funktioner = kræver ('firebase-funktioner');
const admin = require ('firebase-admin'); admin.initializeApp () exports.cleanup = functions.https.onRequest ((anmodning, svar) => {admin.firestore ().collection ('uploads').where ('tidsstempel', '{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))});
Implementering af skyfunktioner er lige så enkelt som at køre denne kommando.
firebase -implementering
Opret derefter på cron-job.org et job for at udløse dette slutpunkt hver time. Slutpunktet vil være noget i stil med
us-central1-project_id.cloudfunctions.net/cleanup
Trin 6: Kør appen
Kør appen på en simulator eller iOS -enhed, og begynd at dele fotos!
Anbefalede:
Walker Proximity Device: 4 trin
Walker Proximity Device: Hej alle sammen! Vi er en gruppe studerende fra Massachusetts Academy of Mathematics and Science på WPI. Vi afsluttede for nylig et hjælpemiddelprojekt for at hjælpe en klient med demens på Seven Hills. Som et resultat af hans demens, klienten
Haptic Proximity Module - Billigt og let: 5 trin (med billeder)
Haptisk nærhedsmodul - Billigt og let: Gudbegavet syn for mennesket er et vigtigt aspekt af vores liv. Men der er fantastiske uheldige mennesker, der mangler evnen til at visualisere ting. Der er cirka 37 millioner mennesker over hele kloden, der er blinde, over 15 milliarder
Bluetooth LED tegnebræt og IOS App: 9 trin (med billeder)
Bluetooth LED tegnebord og IOS App: I denne vejledning kan du oprette et Bluetooth LED -bord, der kan tegne billeder fra den iPhone -app, vi opretter. I denne app vil brugerne kunne oprette et Connect 4 -spil, som også vil blive vist på dette spillebræt. Dette bliver en ch
Android/iOS -app til fjernadgang til din OpenWrt -router: 11 trin
Android/iOS -app til fjernadgang til din OpenWrt -router: Jeg har for nylig købt en ny router (Xiaomi Mi Router 3G). Og selvfølgelig inspirerede dette nye, fantastiske stykke hardware mig til at begynde at arbejde på dette projekt;)
Enkel IOS -app til BLE -moduler: 4 trin
Enkel IOS -app til BLE -moduler: Denne instruktive gennemgår, hvordan du kan oprette en iOS -app med meget grundlæggende funktionalitet. Denne instruks vil ikke gå igennem hele processen med at lave en iOS BLE -app. Det vil kun give et overblik over et højt niveau over nogle vigtige elementer med