สารบัญ:
- ขั้นตอนที่ 1: ติดตั้งข้อกำหนด
- ขั้นตอนที่ 2: ตั้งค่า Project
- ขั้นตอนที่ 3: เขียนรหัส IOS
- ขั้นตอนที่ 4: สร้างอินเทอร์เฟซผู้ใช้
- ขั้นตอนที่ 5: เขียน Cloud Function
- ขั้นตอนที่ 6: เรียกใช้แอพ
วีดีโอ: Proximity Photo Sharing แอพ IOS: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ในคำแนะนำนี้ เราจะสร้างแอป iOS ด้วย Swift ที่ให้คุณแชร์รูปภาพกับใครก็ได้ในบริเวณใกล้เคียง โดยไม่จำเป็นต้องจับคู่อุปกรณ์
เราจะใช้ Chirp Connect เพื่อส่งข้อมูลโดยใช้เสียง และ Firebase เพื่อจัดเก็บภาพในคลาวด์
การส่งข้อมูลพร้อมเสียงจะสร้างประสบการณ์ที่ไม่เหมือนใคร ซึ่งข้อมูลสามารถถ่ายทอดให้ใครก็ตามที่อยู่ในระยะการได้ยิน
ขั้นตอนที่ 1: ติดตั้งข้อกำหนด
Xcode
ติดตั้งจาก App Store
CocoaPods
sudo gem ติดตั้ง cocoapods
Chirp Connect iOS SDK
สมัครได้ที่ admin.chirp.io
ขั้นตอนที่ 2: ตั้งค่า Project
1. สร้างโครงการ Xcode
2. ลงชื่อเข้าใช้ Firebase และสร้างโครงการใหม่
เปิดใช้งาน Firestore โดยคลิกที่ส่วนฐานข้อมูลและเลือก Cloud Firestore คลิกเข้าไปที่ Functions เพื่อเปิดใช้งาน Cloud Functions ด้วย
3. เรียกใช้การตั้งค่าแอป iOS ของคุณในหน้าภาพรวมโครงการ
คุณจะต้องใช้ตัวระบุบันเดิลจากแท็บทั่วไปในการตั้งค่าโปรเจ็กต์ Xcode เมื่อสร้าง Podfile แล้ว คุณจะต้องเพิ่มการพึ่งพาต่อไปนี้ ก่อนรันการติดตั้งพ็อด
# Pods สำหรับโครงการ
พ็อด 'Firebase/Core' พ็อด 'Firebase/Firestore' พ็อด 'Firebase/ที่เก็บข้อมูล'
4. ดาวน์โหลด Chirp Connect iOS SDK ล่าสุดจาก admin.chirp.io/downloads
5. ทำตามขั้นตอนที่ developer.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)) }.joined () } }
2. เพิ่มผู้รับมอบสิทธิ์ ImagePicker ไปยัง ViewController ของคุณและประกาศตัวแปร ChirpConnect ที่เรียกว่า connect
คลาส ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
เชื่อมต่อ: ChirpConnect? แทนที่ func viewDidLoad() { super.viewDidLoad() …
3. หลังจาก super.viewDidLoad ให้เริ่มต้น Chirp Connect และตั้งค่าการโทรกลับที่ได้รับ ในการเรียกกลับที่ได้รับ เราจะดึงรูปภาพจาก Firebase โดยใช้เพย์โหลดที่ได้รับและอัปเดต ImageView คุณสามารถรับ APP_KEY และ APP_SECRET ได้จาก admin.chirp.io
เชื่อมต่อ = ChirpConnect (appKey: APP_KEY และความลับ: APP_SECRET) ถ้าให้เชื่อมต่อ = เชื่อมต่อ { connect.getLicenceString { (ใบอนุญาต: สตริง? ข้อผิดพลาด: ข้อผิดพลาด?) ถ้าเกิดข้อผิดพลาด == ไม่มี { ถ้าให้ใบอนุญาต = ใบอนุญาต { connect.setLicenceString (ใบอนุญาต) connect.start() connect.receivedBlock = { (data: Data?) -> () in if let data = data { print(String(format: "Received data: %@", data.hexString)) ให้ไฟล์ = Storage.storage().reference().child(data.hexString) file.getData(maxSize: 1 * 1024 * 2048) { imageData, error in if let error = error { พิมพ์ ("Error: %@", error.localizedDescription) } อื่น ๆ { self.imageView.image = UIImage (ข้อมูล: imageData!) } } } อื่น ๆ { พิมพ์ ("การถอดรหัสล้มเหลว"); } } } }
4. ตอนนี้เพิ่มรหัสเพื่อส่งข้อมูลภาพเมื่อได้รับเลือกใน UI แล้ว
func imagePickerController (_ ตัวเลือก: UIImagePickerController, ข้อมูล didFinishPickingMediaWithInfo: [String: Any])
{ ให้ imageData = info [UIImagePickerControllerOriginalImage] เป็น? UIImage ให้ข้อมูล: Data = UIImageJPEGRepresentation (imageData!, 0.1)! self.imageView.image = imageData ให้ metadata = StorageMetadata () metadata.contentType = "image/jpeg" ถ้าให้เชื่อมต่อ = เชื่อมต่อ { ให้คีย์: Data = connect.randomPayload (ด้วยความยาว: 8) Firestore.firestore ().collection (" อัปโหลด") addDocument (ข้อมูล: ["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, error) in if let error = error { print(error.localizedDescription) } else { connect.send (key) } } } self.dismiss(เคลื่อนไหว: จริง สมบูรณ์: ไม่มี) }
หมายเหตุ: คุณจะต้องเพิ่มความเป็นส่วนตัว - คำอธิบายการใช้งานไลบรารีรูปภาพ ความเป็นส่วนตัว - คำอธิบายการใช้ไลบรารีรูปภาพและความเป็นส่วนตัว - คำสั่งคำอธิบายการใช้ไมโครโฟนใน Info.plist ของคุณเพื่ออนุญาตให้ใช้กล้อง ไลบรารีรูปภาพ และไมโครโฟน
ขั้นตอนที่ 4: สร้างอินเทอร์เฟซผู้ใช้
ไปที่ไฟล์ Main.storyboard เพื่อสร้าง UI
1. ลากข้าม ImageView และสองปุ่มไปยัง Storyboard จากแผง Object Library ที่มุมล่างขวา
2. สำหรับแต่ละปุ่ม ให้เพิ่มข้อจำกัดความสูงประมาณ 75px โดยเลือกส่วนประกอบและคลิกปุ่มเพิ่มข้อจำกัดใหม่ (ปุ่มที่ดูเหมือนเครื่องบินขับไล่แบบผูกเน็คไทของ Star Wars) จากนั้นป้อนความสูงแล้วกด Enter
3. เลือกส่วนประกอบทั้งสามและใส่ไว้ในมุมมองสแต็กโดยคลิกปุ่มฝังในสแต็ก
4. ตอนนี้เปิด Assistant Editor แล้วกด CTRL แล้วลากจากแต่ละส่วนประกอบไปยังโค้ด ViewController เพื่อสร้าง Outlets สำหรับแต่ละส่วนประกอบ
@IBOutlet var imageView: UIImageView!
@IBOutlet กับ openLibraryButton: UIButton! @IBOutlet กับ openCameraButton: UIButton!
5. ตอนนี้ CTRL แล้วลากจากทั้งสองปุ่มเพื่อสร้าง Action เพื่อเปิด UI ของกล้อง/ไลบรารี
6. ในการดำเนินการ Open Library ให้เพิ่มโค้ดต่อไปนี้
@IBAction func openLibrary (_ ผู้ส่ง: ใดก็ได้) {
ให้ imagePicker = UIImagePickerController () imagePicker.delegate = ตนเอง; imagePicker.sourceType =.photoLibrary self.present (imagePicker, ภาพเคลื่อนไหว: จริง, เสร็จสิ้น: ไม่มี) }
7. ในการดำเนินการเปิดกล้อง
@IBAction func openCamera (_ ผู้ส่ง: ใดก็ได้) {
ให้ imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present(imagePicker, ภาพเคลื่อนไหว: จริง, เสร็จสิ้น: ไม่มี) }
ขั้นตอนที่ 5: เขียน Cloud Function
เนื่องจากรูปภาพไม่จำเป็นต้องเก็บไว้ในคลาวด์ตลอดไป เราจึงสามารถเขียน Cloud Function เพื่อดำเนินการล้างข้อมูลได้ บริการ cron เช่น cron-job.org สามารถทริกเกอร์สิ่งนี้เป็นฟังก์ชัน HTTP ได้ทุกชั่วโมง
ก่อนอื่นเราต้องติดตั้ง firebase-tools
npm install -g firebase-tools
จากนั้นเรียกใช้ไดเรกทอรีรากของโครงการ
ฐานไฟเริ่มต้น
เลือกฟังก์ชันจากบรรทัดคำสั่งเพื่อเริ่มต้นฟังก์ชันระบบคลาวด์ คุณยังสามารถเปิดใช้งาน firestore ได้หากต้องการกำหนดค่า Firestore ด้วย
จากนั้นเปิด functions/index.js และเพิ่มโค้ดต่อไปนี้ อย่าลืมเปลี่ยน
ไปยังรหัสโปรเจ็กต์ Firebase ของคุณ
ฟังก์ชั่น const = ต้องการ ('ฟังก์ชั่น firebase');
const admin = ต้องการ ('firebase-admin'); admin.initializeApp() exports.cleanup = functions.https.onRequest((request, response) => { admin.firestore().collection('uploads').where('timestamp', ' { snapshot.forEach(doc =) > { admin.storage().bucket('gs://.appspot.com').file(doc.data().key).delete() doc.ref.delete() }) ส่งคืน response.status (200).send('ตกลง') }).catch(err => response.status(500).send(err)) });
การปรับใช้ฟังก์ชั่นคลาวด์นั้นง่ายพอๆ กับการรันคำสั่งนี้
firebase ปรับใช้
จากนั้นที่ cron-job.org ให้สร้างงานเพื่อทริกเกอร์จุดปลายนี้ทุกชั่วโมง จุดสิ้นสุดจะเป็นสิ่งที่ชอบ
us-central1-project_id.cloudfunctions.net/cleanup
ขั้นตอนที่ 6: เรียกใช้แอพ
เรียกใช้แอพบนเครื่องจำลองหรืออุปกรณ์ iOS แล้วเริ่มแชร์รูปภาพ!
แนะนำ:
นาฬิกาดิจิตอล LED Dot Matrix - แอพ ESP Matrix สำหรับ Android: 14 ขั้นตอน
Digital Clock LED Dot Matrix - แอพ ESP Matrix สำหรับ Android: บทความนี้ได้รับการสนับสนุนอย่างภาคภูมิใจโดย PCBWAY.PCBWAY สร้าง PCB ต้นแบบคุณภาพสูงสำหรับผู้คนทั่วโลก ลองด้วยตัวคุณเองและรับ 10 PCBs เพียง $5 ที่ PCBWAY ด้วยคุณภาพที่ยอดเยี่ยมมาก ขอบคุณ PCBWAY บอร์ด ESP Matrix ที่ฉันพัฒนา
Mini Drawing Bot - แอพ Android แบบสด - Trignomentry: 18 ขั้นตอน (พร้อมรูปภาพ)
Mini Drawing Bot - แอพ Android แบบสด - Trignomentry: ขอบคุณพระเจ้าและพวกคุณทุกคนที่ทำให้โปรเจ็กต์ของฉัน Baby-MIT-Cheetah-Robot ชนะรางวัลที่หนึ่งใน Contest Make it Move ฉันมีความสุขมากเพราะเพื่อนจำนวนมากถามคำถามมากมายในการสนทนาและในข้อความ คำถามสำคัญประการหนึ่งก็คือว่า
แอพ Android ตอนที่ 1: หน้าจอเริ่มต้นโดยใช้ Fragments/Kotlin: 5 ขั้นตอน
แอป Android ตอนที่ 1: หน้าจอเริ่มต้นโดยใช้ Fragments/Kotlin: สวัสดีอีกครั้ง เป็นไปได้มากว่าคุณมี "ฟรี" อยู่บ้านช่วงโควิด19 แล้วย้อนไปดูหัวข้อที่เคยอยากเรียนได้ การพัฒนาแอพ Android เป็นหนึ่งในนั้นสำหรับฉัน และฉันตัดสินใจเมื่อไม่กี่สัปดาห์ก่อนที่จะให้
บ้านอัจฉริยะด้วย Arduino MKR1000 และ M.I.T. แอพ Android: 4 ขั้นตอน
บ้านอัจฉริยะด้วย Arduino MKR1000 และ M.I.T. แอพ Android: ในบทช่วยสอนนี้ ฉันจะอธิบายวิธีปรับปรุงบ้านอัจฉริยะของคุณด้วยส่วนประกอบเพียงไม่กี่อย่าง หัวใจของการออกแบบบ้านอัจฉริยะนี้คือบอร์ด Arduino MKR1000 ซึ่งควบคุมด้วยแอพที่ออกแบบบนเว็บไซต์การพัฒนาของ M.I.T. (สถาบันแมสซาชูเซตส์
แอพ IOS อย่างง่ายสำหรับโมดูล BLE: 4 ขั้นตอน
แอป IOS อย่างง่ายสำหรับโมดูล BLE: คำแนะนำนี้จะอธิบายวิธีที่คุณสามารถสร้างแอป iOS ด้วยฟังก์ชันพื้นฐาน คำแนะนำนี้จะไม่ผ่านกระบวนการทั้งหมดในการสร้างแอป iOS BLE จะให้ภาพรวมในระดับสูงขององค์ประกอบสำคัญบางอย่างด้วย