Obsah:

Proximity Sharing Photo IOS App: 6 kroků
Proximity Sharing Photo IOS App: 6 kroků

Video: Proximity Sharing Photo IOS App: 6 kroků

Video: Proximity Sharing Photo IOS App: 6 kroků
Video: How to Transfer Photos, Videos & Music Between iPhone & Windows PC | No iTunes or iCloud 2024, Listopad
Anonim

V tomto pokynu vytvoříme aplikaci iOS pro Swift, která vám umožní sdílet fotografie s kýmkoli v okolí, bez nutnosti spárování zařízení.

K odesílání dat pomocí zvuku budeme používat Chirp Connect a k ukládání obrázků do cloudu Firebase.

Odesílání dat se zvukem vytváří jedinečný zážitek, kde lze data vysílat komukoli v dosahu sluchu.

Krok 1: Nainstalujte požadavky

Xcode

Nainstalujte z App Store.

CocoaPods

sudo gem nainstalujte cocoapods

Chirp Connect iOS SDK

Zaregistrujte se na adrese admin.chirp.io

Krok 2: Nastavení projektu

1. Vytvořte projekt Xcode.

2. Přihlaste se do Firebase a vytvořte nový projekt.

Povolte Firestore kliknutím do sekce Databáze a výběrem Cloud Firestore. Kliknutím na Funkce také povolíte Cloudové funkce.

3. Proveďte nastavení aplikace pro iOS na stránce Přehled projektu

V nastavení projektu Xcode budete potřebovat identifikátor balíčku na kartě Obecné. Jakmile je Podfile vytvořen, budete muset před spuštěním pod install přidat následující závislosti.

# Lusky pro projekt

pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Storage'

4. Stáhněte si nejnovější Chirp Connect iOS SDK z admin.chirp.io/downloads

5. Podle pokynů na adrese developers.chirp.io integrujte Chirp Connect do Xcode.

Přejděte na Začínáme / iOS. Poté přejděte dolů a postupujte podle pokynů k nastavení Swift. To bude zahrnovat import rámce a vytvoření přemosťovací hlavičky.

Nyní je nastavení dokončeno, můžeme začít psát nějaký kód! Je dobré zkontrolovat sestavení projektu v každé fázi nastavení.

Krok 3: Napište kód IOS

1. Importujte Firebase do svého ViewController a rozšiřte NSData o rozšíření hexString, abychom mohli převést užitečné zatížení Chirp Connect na hexadecimální řetězec. (Chirp Connect bude k dispozici globálně díky překlenovací hlavičce).

importovat UIKit

importovat Firebase

data rozšíření {

var hexString: String {návratová mapa {String (formát: "%02x", UInt8 ($ 0))}.joined ()}}

2. Přidejte do svého ViewController delegáty ImagePicker a deklarujte proměnnou ChirpConnect s názvem connect.

třída ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? přepsat func viewDidLoad () {super.viewDidLoad ()…

3. Po super.viewDidLoad inicializujte Chirp Connect a nastavte přijaté zpětné volání. V přijatém zpětném volání načteme obrázek z Firebase pomocí přijatého užitečného zatížení a aktualizujeme ImageView. APP_KEY a APP_SECRET můžete získat na adrese admin.chirp.io.

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(license: String ?, error: Error?) in if error == nil {if let license = license {connect.setLicenceString (licence) connect.start () connect.receivedBlock = {(data: Data?) -> () in if let data = data {print (String (format: "Received data: %@", data.hexString)) let file = Storage.storage (). Reference (). Child (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, error in if let error = error {print ("Chyba: %@", chyba.localizedDescription)} else {self.imageView.image = UIImage (data: imageData!)}}} else {print ("Decode failed"); }}}}

4. Nyní přidejte kód a odešlete obrazová data, jakmile byla vybrána v uživatelském rozhraní.

func imagePickerController (_ výběr: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any])

{let imageData = info [UIImagePickerControllerOriginalImage] jako? UIImage nechat data: Data = UIImageJPEGRepresentation (imageData !, 0,1)! self.imageView.image = imageData nechat 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 (). child (key.hexString).putData (data, metadata: metadata) {(metadata, chyba) v if let error = chyba {print (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (animovaný: true, dokončení: nula)}

Poznámka: Budete muset přidat prohlášení o ochraně osobních údajů - Popis použití knihovny fotografií, Ochrana osobních údajů - Popis použití knihovny fotografií a Ochrana osobních údajů - Popis použití mikrofonu k udělení oprávnění k používání fotoaparátu, knihovny fotografií a mikrofonu.

Krok 4: Vytvořte uživatelské rozhraní

Vytvořte uživatelské rozhraní
Vytvořte uživatelské rozhraní

Nyní přejděte do souboru Main.storyboard a vytvořte uživatelské rozhraní.

1. Přetáhněte přes ImageView a dvě tlačítka na Storyboard z panelu Knihovna objektů v pravém dolním rohu.

2. Ke každému tlačítku přidejte omezení výšky asi 75 pixelů výběrem součásti a kliknutím na tlačítko Přidat nová omezení (to, co vypadá jako kravatový stíhač Star Wars), poté zadejte výšku a stiskněte Enter.

3. Vyberte všechny tři komponenty a vložte je do zobrazení zásobníku kliknutím na tlačítko Vložit do zásobníku.

4. Nyní otevřete asistenta a stiskněte CTRL a přetáhněte z každé komponenty do kódu ViewController, abyste vytvořili prodejny pro každou komponentu.

@IBOutlet var imageView: UIImageView!

@IBOutlet var openLibraryButton: UIButton! @IBOutlet var openCameraButton: UIButton!

5. Nyní CTRL a přetažením z obou tlačítek vytvořte akci k otevření uživatelského rozhraní kamery/knihovny.

6. V akci Otevřít knihovnu přidejte následující kód

@IBAction func openLibrary (_ odesílatel: Libovolný) {

nechte imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, animovaný: true, dokončení: nula)}

7. V akci Otevřít kameru

@IBAction func openCamera (_ odesílatel: Libovolný) {

nechte imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, animovaný: true, dokončení: nula)}

Krok 5: Napište cloudovou funkci

Vzhledem k tomu, že fotografie nemusí být uloženy v cloudu navždy, můžeme napsat funkci Cloud, která provede vyčištění. To může být spuštěno jako funkce HTTP každou hodinu službou cron, jako je cron-job.org.

Nejprve musíme nainstalovat firebase-tools

npm install -g firebase -tools

Poté spusťte z kořenového adresáře projektu

inicializace firebase

Chcete -li inicializovat cloudové funkce, vyberte funkce z příkazového řádku. Firestore můžete také povolit, pokud chcete také konfigurovat Firestore.

Poté otevřete functions/index.js a přidejte následující kód. Nezapomeňte změnit

do vašeho ID projektu Firebase.

const functions = require ('firebase-functions');

const admin = require ('firebase-admin'); admin.initializeApp () exports.cleanup = functions.https.onRequest ((požadavek, odpověď) => {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))});

Nasazení cloudových funkcí je stejně jednoduché jako spuštění tohoto příkazu.

nasazení firebase

Poté na cron-job.org vytvořte úlohu, která spustí tento koncový bod každou hodinu. Koncový bod bude něco jako

us-central1-project_id.cloudfunctions.net/cleanup

Krok 6: Spusťte aplikaci

Spusťte aplikaci na simulátoru nebo zařízení iOS a začněte sdílet fotografie!

Doporučuje: