Mundarija:

Yaqinlikdagi rasm almashish IOS ilovasi: 6 qadam
Yaqinlikdagi rasm almashish IOS ilovasi: 6 qadam

Video: Yaqinlikdagi rasm almashish IOS ilovasi: 6 qadam

Video: Yaqinlikdagi rasm almashish IOS ilovasi: 6 qadam
Video: iPhone sizni kuzatishi haqida bilasizmi ? А вы знаете что Айфон вас следит ? 2024, Iyul
Anonim

Bu yo'riqnomada biz Swift yordamida iOS ilovasini yaratamiz, bu sizga fotosuratlarni yaqin atrofdagilar bilan ulashish imkonini beradi, bunda qurilmani ulash shart emas.

Biz ovoz yordamida ma'lumotlarni yuborish uchun Chirp Connect va tasvirlarni bulutda saqlash uchun Firebase -dan foydalanamiz.

Ma'lumotni ovoz bilan yuborish noyob tajribani yaratadi, bu erda ma'lumotlarni eshitish diapazonidagi har bir kishiga etkazish mumkin.

1 -qadam: O'rnatish talablari

Xcode

App Store -dan o'rnating.

CocoaPods

sudo gem kokoapodlarni o'rnating

Chirp Connect iOS SDK

Admin.chirp.io saytida ro'yxatdan o'ting

2 -qadam: Loyihani o'rnatish

1. Xcode loyihasini yarating.

2. Firebase -ga kiring va yangi loyiha yarating.

Ma'lumotlar bazasi bo'limiga bosish va Cloud Firestore -ni tanlash orqali Firestore -ni yoqing. Bulutli funktsiyalarni yoqish uchun funktsiyalarni bosing.

3. Loyihani ko'rib chiqish sahifasida iOS ilovasini sozlash orqali ishga tushiring

Xcode loyiha sozlamalarida Umumiy yorliqdan Bundle identifikatori kerak bo'ladi. Podfile yaratilgandan so'ng pod o'rnatishdan oldin quyidagi bog'liqliklarni qo'shishingiz kerak bo'ladi.

# Loyiha uchun podkastlar

"Firebase/Core" pod "Firebase/Firestore" pod "Firebase/Storage"

4. Chirp Connect iOS SDK -ni admin.chirp.io/downloads saytidan yuklab oling

5. Chirp Connect -ni Xcode -ga birlashtirish uchun developers.chirp.io saytidagi amallarni bajaring.

Ishga tushirish / iOS -ga o'ting. Keyin pastga siljiting va Swift -ni sozlash bo'yicha ko'rsatmalarga amal qiling, bu ramkani import qilishni va ko'prik sarlavhasini yaratishni o'z ichiga oladi.

Endi sozlash tugadi, biz kod yozishni boshlashimiz mumkin! O'rnatishning har bir bosqichida sizning loyihangiz tuzilishini tekshirish yaxshidir.

3 -qadam: IOS kodini yozing

1. Firebase -ni ViewController -ga import qiling va NSData -ni hexString kengaytmasi bilan kengaytiring, shunda biz Chirp Connect yuklamalarini o'n oltilik qatorga aylantira olamiz. (Chirp Connect ko'prik sarlavhasi tufayli butun dunyoda mavjud bo'ladi).

UIKit import qilish

Firebase -ni import qilish

kengaytma ma'lumotlari {

var hexString: String {qaytish xaritasi {String (format: "%02x", UInt8 ($ 0))}.joined ()}}

2. ViewController -ga ImagePicker delegatlarini qo'shing va connect deb nomlangan ChirpConnect o'zgaruvchisini e'lon qiling.

ViewController klassi: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

var connect: ChirpConnect? func viewDidLoad () {super.viewDidLoad () ni bekor qilish …

3. super.viewDidLoad -dan so'ng, Chirp Connect -ni ishga tushiring va qabul qilingan qayta qo'ng'iroqni o'rnating. Qabul qilingan qo'ng'iroqda biz Firebase -dan olingan yukni ishlatib tasvirni olamiz va ImageView -ni yangilaymiz. APP_KEY va APP_SECRET -ni admin.chirp.io -dan olishingiz mumkin.

connect = ChirpConnect (appKey: APP_KEY, andSecret: APP_SECRET) if let connect = connect {connect.getLicenceString {(licence: String ?, error: Error?) in if error == nil {if license = licence {connect.setLicenceString (litsenziya) connect.start () connect.receivedBlock = {(ma'lumotlar: Ma'lumotlar?) -> () in if let data = data {print (String (format: "Qabul qilingan ma'lumotlar: %@", data.hexString)) faylga ruxsat bering = Storage.storage (). Reference (). Child (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, xato bo'lsa xato = xato {chop etish ("Xato: %@", xato).localizedDescription)} else {self.imageView.image = UIImage (ma'lumotlar: imageData!)}}} boshqa {chop etish ("Kod hal qilinmadi"); }}}}

4. Endi UIda tanlanganidan so'ng, rasm ma'lumotlarini yuborish uchun kod qo'shing.

func imagePickerController (_ tanlovchi: UIImagePickerController, didFinishPickingMediaWithInfo ma'lumoti: [String: Any])

{let imageData = info [UIImagePickerControllerOriginalImage] sifatida? UIImage ma'lumotlarga ruxsat beradi: Data = UIImageJPEGRepresentation (imageData !, 0.1)! self.imageView.image = imageData metadata = StorageMetadata () metadata.contentType = "image/jpeg" bo'lsin, agar ulash = ulanish {ruxsat tugmasi: Data = connect.randomPayload (withLength: 8) Firestore.firestore () to'plami (") addDocument (ma'lumotlar: ["kalit": key.hexString, "vaqt tamg'asi": FieldValue.serverTimestamp ()]) {xato bo'lsa, xato = xato {print (error.localizedDescription)}} Storage.storage ().reference (). child (key.hexString).putData (ma'lumotlar, metadata: metadata) {(metadata, xato) in if let error = error {print (error.localizedDescription)} else {connect.send (key)}} } self.dississ (jonlantirilgan: rost, tugatish: nol)}

Eslatma: Kamera, foto kutubxona va mikrofondan foydalanishga ruxsat berish uchun siz Maxfiylik - Foto kutubxonasidan foydalanish ta'rifi, Maxfiylik - Foto kutubxonasidan foydalanish tavsifi va Maxfiylik - Mikrofondan foydalanish ta'rifi ma'lumotlarini Info.plist -ga qo'shishingiz kerak bo'ladi.

4 -qadam: Foydalanuvchi interfeysini yarating

Foydalanuvchi interfeysini yarating
Foydalanuvchi interfeysini yarating

Endi interfeys yaratish uchun Main.storyboard fayliga o'ting.

1. ImageView va ikkita tugmachani o'ng pastki burchakdagi Ob'ektlar kutubxonasi panelidan Storyboardga torting.

2. Har bir tugma uchun komponentni tanlab, Yangi cheklovlarni qo'shish tugmachasini (Star Wars galstuk jangchisiga o'xshaydi) bosish orqali taxminan 75 pikselli balandlik cheklovini qo'shing va balandlikni kiriting va Enter tugmasini bosing.

3. Uch komponentni ham tanlab, Stack Embed In Stack tugmasini bosish orqali ularni stek ko'rinishida joylashtiring.

4. Endi yordamchi muharrirni oching va CTRL tugmachasini bosing va har bir komponentadan ViewController kodiga suring, har bir komponenta uchun Outletlar yarating.

@IBOutlet var imageView: UIImageView!

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

5. Endi CTRL tugmachasini bosing va ikkala tugmachani bosib, kamera/kutubxona interfeyslarini ochish uchun harakat yarating.

6. Kutubxonani ochish harakatiga quyidagi kodni qo'shing

@IBAction func openLibrary (_ jo'natuvchi: Har qanday) {

imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, jonlantirilgan: haqiqiy, tugallangan: nol)}

7. Kamerani ochish harakatida

@IBAction func openCamera (_ jo'natuvchi: Har qanday) {

imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.kamera bo'lsin; self.present (imagePicker, jonlantirilgan: haqiqiy, tugallangan: nol)}

5 -qadam: Bulutli funktsiyani yozing

Fotosuratlar bulutda abadiy saqlanishi shart emas, biz tozalash uchun Bulutli funktsiyani yozishimiz mumkin. Buni cron-job.org kabi cron xizmati har soatda HTTP funktsiyasi sifatida ishga tushirishi mumkin.

Avvalo, biz olovli asboblarni o'rnatishimiz kerak

npm install -g firebase -tools

Keyin loyihaning ildiz katalogidan ishga tushiring

olov bazasi boshlang'ich

Bulutli funktsiyalarni ishga tushirish uchun buyruq satridan funktsiyalarni tanlang. Agar siz Firestore -ni sozlashni xohlasangiz, shuningdek, yong'in do'konini yoqishingiz mumkin.

Keyin/index.js funksiyalarini oching va quyidagi kodni qo'shing. O'zgartirishni unutmang

Firebase loyiha identifikatoriga.

const funktsiyalari = talab qilish ('firebase-functions');

const admin = talab ('firebase-admin'); admin.initializeApp () export.cleanup = functions.https.onRequest ((so'rov, javob) => {admin.firestore ().collection ('yuklanishlar' '). > {admin.storage ().bucket ('gs: //.appspot.com').file (doc.data ().key).delete () doc.ref.delete ()}) javobni qaytarish.status (200).send ('OK')}).catch (err => javob.status (500). Yuborish (xato))});

Bulutli funktsiyalarni joylashtirish, bu buyruqni bajarish kabi oddiy.

olov bazasini joylashtirish

Keyin cron-job.org saytida har soatda ushbu so'nggi nuqtani ishga tushirish uchun ish yarating. Oxirgi nuqta shunga o'xshash bo'ladi

us-central1-project_id.cloudfunctions.net/cleanup

6 -qadam: Ilovani ishga tushiring

Ilovani simulyator yoki iOS qurilmasida ishga tushiring va fotosuratlar bilan bo'lishishni boshlang!

Tavsiya: