Բովանդակություն:

Proximity Photo Sharing IOS հավելված ՝ 6 քայլ
Proximity Photo Sharing IOS հավելված ՝ 6 քայլ

Video: Proximity Photo Sharing IOS հավելված ՝ 6 քայլ

Video: Proximity Photo Sharing IOS հավելված ՝ 6 քայլ
Video: realme Narzo 50A (4/128) - Մանրամասն ակնարկ + ԹԵՍՏԵՐ 2024, Հուլիսի
Anonim

Այս ուսանելի ծրագրում մենք Swift- ով կստեղծենք iOS ծրագիր, որը թույլ է տալիս լուսանկարներ կիսել մոտակայքում գտնվող բոլորի հետ ՝ առանց սարքերի զուգավորման անհրաժեշտության:

Մենք կօգտագործենք Chirp Connect- ը ՝ ձայնի միջոցով տվյալներ ուղարկելու համար, իսկ Firebase- ը ՝ պատկերները ամպում պահելու համար:

Տվյալները ձայնով ուղարկելը ստեղծում է յուրահատուկ փորձ, որտեղ տվյալները կարող են հեռարձակվել լսողության տիրույթում գտնվող յուրաքանչյուրին:

Քայլ 1: Տեղադրեք պահանջները

Xcode

Տեղադրեք App Store- ից:

CocoaPods

sudo gem տեղադրել cocoapods

Chirp Connect iOS SDK

Գրանցվեք admin.chirp.io կայքում

Քայլ 2: Կարգավորման նախագիծ

1. Ստեղծեք Xcode նախագիծ:

2. Մուտք գործեք Firebase և ստեղծեք նոր նախագիծ:

Միացրեք Firestore- ը ՝ կտտացնելով Տվյալների բազա բաժին և ընտրելով Cloud Firestore: Կտտացրեք գործառույթներին ՝ նաև ամպի գործառույթները միացնելու համար:

3. Գործարկեք Ստեղծեք ձեր iOS ծրագիրը Նախագծի ակնարկ էջում

Ձեր Xcode Project Settings- ում ձեզ անհրաժեշտ կլինի Bundle Identifier- ը General Tab- ից: Երբ Podfile- ը ստեղծվի, անհրաժեշտ կլինի ավելացնել հետևյալ կախվածությունները `նախքան պատուհանի տեղադրումը գործարկելը:

# Աղբյուրներ նախագծի համար

պատիճ 'Firebase/Core' պատիճ 'Firebase/Firestore' պատիճ 'Firebase/Storage'

4. Ներբեռնեք վերջին Chirp Connect iOS SDK- ն admin.chirp.io/downloads- ից

5. Հետևեք քայլերին developers.chirp.io- ում ՝ Chirp Connect- ը Xcode- ին ինտեգրելու համար:

Գնալ դեպի Սկիզբ / iOS: Այնուհետև ոլորեք ներքև և հետևեք Swift- ի ստեղծման հրահանգներին: Սա ենթադրում է շրջանակի ներմուծում և կամրջող վերնագրի ստեղծում:

Այժմ կարգավորումը ավարտված է, մենք կարող ենք սկսել գրել ինչ -որ կոդ: Լավ գաղափար է ստուգել ձեր նախագծի կառուցվածքը կարգավորման յուրաքանչյուր փուլում:

Քայլ 3: Գրեք IOS կոդ

1. Ներմուծեք Firebase- ը ձեր ViewController- ի մեջ և երկարացրեք NSData- ն ՝ ներառելով hexString ընդլայնում, որպեսզի մենք կարողանանք Chirp Connect- ի բեռները վերածել տասնվեցորդական տողի: (Chirp Connect- ը գլոբալ հասանելի կլինի գլոբալ վերնագրի շնորհիվ):

ներմուծել UIKit

ներմուծել Firebase

ընդլայնման տվյալներ {

var hexString: լարային {վերադարձ քարտեզ {լարային (ձևաչափ ՝ "%02x", UInt8 ($ 0))}.միացել է ()}}

2. Ավելացրեք ImagePicker- ի պատվիրակներ ձեր ViewController- ին և հայտարարեք ChirpConnect փոփոխական, որը կոչվում է միացում:

դասարան ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? անտեսել func viewDidLoad () {super.viewDidLoad ()…

3. super.viewDidLoad- ից հետո նախաստորագրեք Chirp Connect- ը և կարգավորեք ստացված հետադարձ կապը: Ստացված հետադարձ կապում մենք կվերցնենք պատկերը Firebase- ից `օգտագործելով ստացված բեռնվածությունը և կթարմացնենք ImageView- ը: Դուք կարող եք ձեռք բերել ձեր APP_KEY- ը և APP_SECRET- ը admin.chirp.io- ից:

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(license: String ?, error: Error?) in if error == զրո {if let License = license {connect.setLicenceString (լիցենզիա) connect.start () connect.receivedBlock = {(տվյալները ՝ Տվյալներ?) -> () in if let data = data {print (Լար (ձևաչափ ՝ «Ստացված տվյալներ ՝ %@», data.hexString)) թույլ ֆայլ = Storage.storage (). Reference (). Child (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, error in if let error = error {print ("Error: %@", error.localizedDescription)} else {self.imageView.image = UIImage (տվյալները ՝ imageData!)}}} else {print («Ապակոդավորումը ձախողվեց»); }}}}

4. Այժմ ավելացրեք կոդը, որպեսզի ուղարկեք պատկերի տվյալները, երբ այն ընտրվի UI- ում:

func imagePickerController (_ picker: UIImagePickerController, didFinishPickingMediaWithInfo տեղեկատվություն ՝ [String: Any])

{let imageData = info [UIImagePickerControllerOriginalImage] ինչպես? UIImage թույլ տվեք տվյալներ. Տվյալներ = UIImageJPEGRepresentation (imageData !, 0.1): self.imageView.image = imageData թող մետատվյալներ = StorageMetadata () metadata.contentType = "image/jpeg" if let connect = connect {let key: Data = connect.randomPayload (withLength: 8) Firestore.firestore () հավաքածու (" վերբեռնումներ "). addDocument (տվյալներ` ["բանալին": 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, error) in if let error = error {print (error.localizedDescription)} else {connect.send (key)}} } self.dismiss (անիմացիոն ՝ ճշմարիտ, ավարտը ՝ զրո)}

Նշում. Դուք պետք է ձեր Info.plist- ին ավելացնեք գաղտնիություն - լուսանկարների գրադարանի օգտագործման նկարագրություն, գաղտնիություն - լուսանկարների գրադարանի օգտագործման նկարագրություն և գաղտնիություն - խոսափողի օգտագործման նկարագրության հայտարարություններ `տեսախցիկից, լուսանկարների գրադարանից և խոսափողից օգտվելու թույլտվություններ տրամադրելու համար:

Քայլ 4: Ստեղծեք օգտվողի միջերես

Ստեղծեք օգտվողի միջերես
Ստեղծեք օգտվողի միջերես

Այժմ գնացեք Main.storyboard ֆայլ ՝ UI ստեղծելու համար:

1. Ներքևի աջ անկյունում գտնվող Օբյեկտների գրադարանի վահանակից քաշեք ImageView և երկու կոճակ դեպի Storyboard:

2. Յուրաքանչյուր կոճակի համար ավելացրեք մոտ 75px բարձրության սահմանափակում ՝ ընտրելով բաղադրիչը և կտտացնելով Ավելացնել նոր սահմանափակումներ կոճակին (այն, որը նման է Star Wars- ի փողկապի կործանիչին), այնուհետև մուտքագրեք բարձրությունը և սեղմեք Enter:

3. Ընտրեք բոլոր երեք բաղադրիչները և դրանք դրեք կույտի տեսքով `կտտացնելով Տեղադրեք կոճակում կոճակը:

4. Այժմ բացեք Օգնական խմբագիրը և սեղմեք CTRL և յուրաքանչյուր բաղադրիչից քաշեք ViewController կոդի վրա ՝ յուրաքանչյուր բաղադրիչի համար վարդակներ ստեղծելու համար:

@IBOutlet var imageView: UIImageView!

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

5. Այժմ CTRL և քաշեք երկու կոճակներից ՝ գործողություն ստեղծելու համար ՝ տեսախցիկի/գրադարանի միջերեսը բացելու համար:

6. Բաց գրադարան գործողության մեջ ավելացրեք հետևյալ ծածկագիրը

@IBAction գործառույթը openLibrary (_ ուղարկող ՝ ցանկացած) {

թող imagePicker = UIImagePickerController () imagePicker.delegate = ես; imagePicker.sourceType =.photoLibrary self.present (imagePicker, անիմացիոն ՝ true, ավարտը ՝ զրո)}

7. Բաց տեսախցիկ գործողության մեջ

@IBAction func openCamera (_ ուղարկող ՝ ցանկացած) {

թող imagePicker = UIImagePickerController () imagePicker.delegate = ինքնակառավարման imagePicker.sourceType =.խցիկ; self.present (imagePicker, անիմացիոն ՝ true, ավարտը ՝ զրո)}

Քայլ 5: Գրեք ամպի գործառույթ

Քանի որ լուսանկարները հավերժ կարիք չունեն ամպի մեջ պահելու, մենք կարող ենք գրել ամպի գործառույթ `մաքրումը կատարելու համար: Սա կարող է ամեն ժամ որպես HTTP գործառույթ գործարկվել cron ծառայության կողմից, ինչպիսին է cron-job.org- ը:

Առաջին հերթին մենք պետք է տեղադրենք հրակայուն գործիքներ

npm տեղադրել -g firebase- գործիքներ

Այնուհետև գործարկեք ծրագրի հիմնական գրացուցակը

firebase init

Ընտրեք գործառույթներ հրամանի տողից ՝ ամպի գործառույթները նախաստորագրելու համար: Կարող եք նաև միացնել firerestore- ը, եթե ցանկանում եք նաև կարգավորել Firestore- ը:

Այնուհետև բացեք գործառույթները/index.js և ավելացրեք հետևյալ ծածկագիրը: Հիշեք փոխել

ձեր Firebase նախագծի ID- ին:

const գործառույթներ = պահանջում ('firebase- գործառույթներ');

const admin = պահանջել ('firebase-admin'); admin.initializeApp () export.cleanup = functions.https.onRequest ((հարցումը, պատասխանը) => {admin.firestore (). հավաքածու («վերբեռնումներ»): ուր («timestamp», «{snapshot.forEach (doc = > {admin.storage ().bucket ('gs: //.appspot.com').file (doc.data ().key).delete () doc.ref.delete ()}) return reply.status (200).ուղարկել ('OK')}). Բռնել (err => պատասխան. Կարգավիճակ (500).ուղարկել (սխալ))});

Ամպի գործառույթների տեղակայումը նույնքան պարզ է, որքան այս հրամանը գործարկելը:

հրշեջ բազայի տեղակայումը

Այնուհետև cron-job.org կայքում ստեղծեք աշխատանք ՝ ամեն ժամ այս վերջնակետը գործարկելու համար: Վերջնակետը նման բան կլինի

us-central1-project_id.cloudfunctions.net/cleanup

Քայլ 6: Գործարկեք ծրագիրը

Գործարկեք ծրագիրը սիմուլյատորի կամ iOS սարքի վրա և սկսեք կիսվել լուսանկարներով:

Խորհուրդ ենք տալիս: