Mundarija:
- 1 -qadam: O'rnatish talablari
- 2 -qadam: Loyihani o'rnatish
- 3 -qadam: IOS kodini yozing
- 4 -qadam: Foydalanuvchi interfeysini yarating
- 5 -qadam: Bulutli funktsiyani yozing
- 6 -qadam: Ilovani ishga tushiring
Video: Yaqinlikdagi rasm almashish IOS ilovasi: 6 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
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
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:
50 dollardan past tez almashish! Kazeshifter Arduino sozlanishi tez o'tish: 7 qadam
50 dollardan past tez almashish! Kazeshifter Arduino tez sozlanishi: Salom Superbike yoki mototsiklni yaxshi ko'radiganlar! Men o'z qo'llarim bilan tez almashtirishni baham ko'raman! Bu ko'rsatmalarni o'qishga dangasa odamlar uchun mening videomni ko'ring! Eslatma: Ba'zi velosipedlar uchun. allaqachon yonilg'i quyish tizimidan foydalangan, ba'zida
Bluetooth LED chizilgan taxtasi va IOS ilovasi: 9 qadam (rasmlar bilan)
Bluetooth LED chizish taxtasi va IOS ilovasi: Ushbu qo'llanmada siz biz yaratgan iPhone ilovasidan rasm chizish mumkin bo'lgan Bluetooth LED taxtasini yaratishingiz mumkin bo'ladi. Ushbu ilovada foydalanuvchilar Connect 4 o'yinini yaratishi mumkin, u ham ushbu o'yin taxtasida ko'rsatiladi. Bu ch bo'ladi
OpenWrt routeringizga masofadan kirish uchun Android/iOS ilovasi: 11 qadam
OpenWrt routeringizga masofadan kirish uchun Android/iOS ilovasi: Men yaqinda yangi yo'riqnoma sotib oldim (Xiaomi Mi Router 3G). Va, albatta, bu yangi, ajoyib uskuna meni ushbu loyihada ishlashga ilhomlantirdi;)
BLE modullari uchun oddiy IOS ilovasi: 4 qadam
BLE modullari uchun oddiy IOS ilovasi: Bu ko'rsatma sizga juda oddiy funktsiyali iOS ilovasini qanday yaratishni ko'rib chiqadi. Bu ko'rsatma iOS BLE ilovasini yaratishning butun jarayonidan o'tmaydi. Bu faqat yuqori darajadagi ba'zi muhim elementlarga umumiy nuqtai nazar beradi
Yaqinlikdagi LED orqa sumkasi: 6 qadam (rasmlar bilan)
Proximity LED BackPack: Mening loyiham 27 Egeloo datchiklar to'plami tomonidan taqdim etilgan Proximity IR detektori tufayli yaqinlashib kelayotgan ob'ektni yoki ob'ektni 20 sm gacha aniqlashga mo'ljallangan. Bu erda sizga kerak bo'lgan narsalar ro'yxati: Elementlar ro'yxati: 1. WS2812b Neo Pixel LED 2. Quvvat manbai (men ishlatganman