Բովանդակություն:
- Քայլ 1: Տեղադրեք պահանջները
- Քայլ 2: Կարգավորման նախագիծ
- Քայլ 3: Գրեք IOS կոդ
- Քայլ 4: Ստեղծեք օգտվողի միջերես
- Քայլ 5: Գրեք ամպի գործառույթ
- Քայլ 6: Գործարկեք ծրագիրը
Video: Proximity Photo Sharing IOS հավելված ՝ 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Այս ուսանելի ծրագրում մենք 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 սարքի վրա և սկսեք կիսվել լուսանկարներով:
Խորհուրդ ենք տալիս:
Թվային ժամացույց LED Dot Matrix - ESP Matrix Android հավելված ՝ 14 քայլ
Թվային ժամացույց LED Dot Matrix - ESP Matrix Android հավելված. Այս հոդվածը հպարտորեն հովանավորվում է PCBWAY- ի կողմից: Փորձեք այն ինքներդ ձեզ համար և ստացեք 10 հատ PCB ընդամենը $ 5 -ով PCBWAY- ում ՝ շատ մեծ որակով: Շնորհակալություն PCBWAY: ESP Matrix Board- ը, որը ես պատրաստում եմ
Գծագրական հավելված պատրաստելու երկու եղանակ ՝ 10 քայլ
Գծագրական ծրագիր պատրաստելու երկու եղանակ. Ես գիտեմ, որ այս նկարչական ծրագիրը միայն ունի 5x5 պիքսելանոց էկրան, այնպես որ դուք իսկապես շատ բան չեք կարող անել, բայց դա դեռ զվարճալի է:
Կատարեք DIY Sonoff Smart Switch Օգտագործեք Android հավելված ՝ 11 քայլ
Ստեղծեք DIY Sonoff խելացի անջատիչ Օգտագործեք Android հավելվածը. Այդ գծի ամենաճկուն և էժան սարքերից են Sonoff Basic- ը և Sonoff mini- ն: Սրանք Wi-Fi միացված անջատիչներ են ՝ հիմնված հիանալի չիպի ՝ ESP8266/E
Bluetooth LED գծագրման տախտակ և IOS հավելված. 9 քայլ (նկարներով)
Bluetooth LED գծագրման տախտակ և IOS հավելված. Այս ձեռնարկում դուք կկարողանաք ստեղծել Bluetooth LED տախտակ, որը կարող է նկարել մեր ստեղծած iPhone հավելվածից: Այս հավելվածում օգտվողները կկարողանան ստեղծել Connect 4 խաղ, որը նույնպես կցուցադրվի այս խաղատախտակին: Սա կլինի գլուխ
Android/iOS հավելված ՝ ձեր OpenWrt երթուղիչին հեռակա մուտք գործելու համար ՝ 11 քայլ
Android/iOS հավելված ՝ ձեր OpenWrt երթուղիչին հեռակա մուտք գործելու համար. Ես վերջերս գնել եմ նոր երթուղիչ (Xiaomi Mi Router 3G): Եվ, իհարկե, այս նոր, սարսափելի ապարատը ոգեշնչեց ինձ սկսել աշխատել այս նախագծի վրա;)