Мазмуну:
- 1 -кадам: Орнотуу талаптары
- 2 -кадам: Орнотуу долбоору
- 3 -кадам: IOS кодун жазыңыз
- 4 -кадам: Колдонуучу интерфейсин түзүү
- 5 -кадам: Булут функциясын жазыңыз
- 6 -кадам: Колдонмону иштетүү
Video: Жакындыкта сүрөт бөлүшүү IOS колдонмосу: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Бул көрсөтмөдө биз 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ге кириңиз жана жаңы долбоор түзүңүз.
Маалымат базасы бөлүмүн чыкылдатып, Cloud Firestore тандоо менен Firestore иштетүү. Булут функцияларын иштетүү үчүн Функцияларга чыкылдатыңыз.
3. Долбоорду карап чыгуу бетинде iOS колдонмоңузду орнотуу аркылуу иштетиңиз
Сиз Xcode долбоорунун Орнотууларындагы Жалпы өтмөгүнөн Bundle Идентификаторуна муктаж болосуз. Podfile түзүлгөндөн кийин, pod орнотууну иштетүүдөн мурун, төмөнкү көз карандылыктарды кошушуңуз керек болот.
Долбоор үчүн # Pods
pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Storage'
4. Акыркы Chirp Connect iOS SDKсын admin.chirp.io/downloads сайтынан жүктөп алыңыз
5. Chirp Connectти Xcodeго киргизүү үчүн developers.chirp.io сайтындагы кадамдарды аткарыңыз.
Баштоо / iOS'ко өтүңүз. Андан кийин ылдый жылдырып, Swift орнотуу көрсөтмөлөрүн аткарыңыз. Бул алкакты импорттоону жана көпүрө башын түзүүнү камтыйт.
Эми орнотуу аяктады, биз код жаза баштайбыз! Орнотуунун ар бир этабында долбооруңуздун түзүлүшүн текшерүү жакшы идея.
3 -кадам: IOS кодун жазыңыз
1. Firebaseти ViewController'иңизге импорттоңуз жана NSData'ны hexString кеңейтүүсүнө кошуңуз, ошондо биз Chirp Connect жүктөөлөрүн он алтылык сапка айланта алабыз. (Chirp Connect глобалдык деңгээлде көпүрөнүн башына жеткиликтүү болот).
UIKit импорттоо
Firebase импорттоо
Кеңейтүү маалыматы {
var hexString: String {return map {String (формат: "%02x", UInt8 ($ 0))}.joined ()}}
2. ViewControllerге ImagePicker делегаттарын кошуңуз, жана connect деп аталган 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?) if if error == nil {if let license = license {connect.setLicenceString (License) connect.start () connect.receivedBlock = {(data: Data?) -> () in if let data = data {print (String (format: "Received data: %@", data.hexString)) let file = Storage.storage (). Reference (). Child (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, ката кетсе ката = ката {басып чыгаруу ("Error: %@", ката).localizedDescription)} else {self.imageView.image = UIImage (data: imageData!)}}} else {print ("Decode fail"); }}}}
4. Эми UIде тандалгандан кийин сүрөт маалыматын жөнөтүү үчүн кодду кошуңуз.
func imagePickerController (_ тергич: UIImagePickerController, didFinishPickingMediaWithInfo маалыматы: [String: Any])
{let imageData = info [UIImagePickerControllerOriginalImage] катары? UIImage берилиштерди берсин: Data = UIImageJPEGRepresentation (imageData !, 0.1)! self.imageView.image = imageData let metadata = StorageMetadata () metadata.contentType = "image/jpeg" if let connect = connect {let key: Data = connect.randomPayload (withLength: 8) Firestore.firestore () коллекциясы (") addDocument (маалыматтар: ["key": key.hexString, "timestamp": FieldValue.serverTimestamp ()]) {ката болсо, ката = ката {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.dississ (анимацияланган: чындык, аяктоо: нөл)}
Эскертүү: Камераны, Фото китепкананы жана Микрофонду колдонууга уруксаттарды берүү үчүн Купуялыкты - Фото китепкананын колдонулушунун сүрөттөлүшүн, Купуялыкты - Фото китепкананын колдонулушунун сүрөттөлүшүн жана Купуялыкты - Микрофонду Сүрөттөө маалыматын Info.plistке кошууңуз керек.
4 -кадам: Колдонуучу интерфейсин түзүү
Эми UI түзүү үчүн Main.storyboard файлына өтүңүз.
1. ImageView жана эки баскычты өйдө оң бурчтагы Object Library панелинен Storyboardго сүйрөңүз.
2. Ар бир баскыч үчүн компонентти тандап жана Жаңы чектөөлөрдү кошуу баскычын (Star Wars галстук муштумуна окшош) басып, болжол менен 75 пиксель бийиктик чектөөсүн кошуп, анан бийиктигин киргизип, Enter баскычын басыңыз.
3. Үч компоненттин баарын тандап, Stack Embed In Stack баскычын басуу менен аларды стек көрүнүшүнө коюңуз.
4. Эми редактордун жардамчысын ачыңыз, жана CTRL баскычын басып, ар бир компоненттен Outlet түзүү үчүн ViewController кодуна чейин ар бир компоненттен сүйрөңүз.
@IBOutlet var imageView: UIImageView!
@IBOutlet var openLibraryButton: UIButton! @IBOutlet var openCameraButton: UIButton!
5. Азыр CTRL жана камера/китепкана UI'лерин ачуу үчүн Аракетти түзүү үчүн эки баскычтан сүйрөңүз.
6. Китепкананы ачуу иш -аракетине төмөнкү кодду кошуңуз
@IBAction func openLibrary (_ жөнөтүүчү: Ар кандай) {
көрөлү imagePicker = UIImagePickerController () imagePicker.delegate = self; imagePicker.sourceType =.photoLibrary self.present (imagePicker, анимацияланган: чыныгы, аяктоо: нөл)}
7. Камераны ачуу аракетинде
@IBAction func openCamera (_ жөнөтүүчү: Ар кандай) {
көрөлү imagePicker = UIImagePickerController () imagePicker.delegate = self imagePicker.sourceType =.camera; self.present (imagePicker, анимацияланган: чыныгы, аяктоо: нөл)}
5 -кадам: Булут функциясын жазыңыз
Сүрөттөрдү булутта түбөлүккө сактоонун кажети жок болгондуктан, биз тазалоону аткаруу үчүн Cloud Функциясын жаза алабыз. Бул cron-job.org сыяктуу cron кызматы тарабынан саат сайын HTTP функциясы катары иштетилиши мүмкүн.
Биринчи кезекте биз firebase инструменттерин орнотушубуз керек
npm орнотуу -g firebase -куралдары
Андан кийин долбоордун түп каталогунан чуркаңыз
firebase init
Булут функцияларын баштоо үчүн буйрук сабынан функцияларды тандаңыз. Ошондой эле Firestore'ду конфигурациялоону кааласаңыз, Firestore иштете аласыз.
Андан кийин функцияларды/index.js ачып, төмөнкү кодду кошуңуз. Өзгөрүүнү унутпаңыз
Firebase долбоорунун идентификаторуна.
const функциялары = талап кылуу ('firebase-functions');
const admin = талап кылуу ('firebase-admin'); admin.initializeApp () export.cleanup = functions.https.onRequest ((өтүнүч, жооп) => {admin.firestore ().collection ('uploads').) жерде ('timestamp', '{snapshot.forEach (doc = > {admin.storage ().bucket ('gs: //.appspot.com').file (doc.data ().key).delete () doc.ref.delete ()}) жооп кайтаруу.статус (200).send ('OK')}).catch (err => жооп.статус (500).send (err))});
Булут функцияларын жайылтуу бул буйрукту иштетүү сыяктуу жөнөкөй.
firebase жайылтуу
Андан кийин cron-job.org сайтында бул чекитти саат сайын иштетүү үчүн жумуш түзүңүз. Акыркы чекит ушундай болот
us-central1-project_id.cloudfunctions.net/cleanup
6 -кадам: Колдонмону иштетүү
Колдонмону симулятордо же iOS түзмөгүндө иштетип, сүрөттөрдү бөлүшө баштаңыз!
Сунушталууда:
Бөлүшүү велосипединин IOT чечими: 6 кадам
IOT Solution for Sharing Bike: Бөлүшүү велосу ушул күндөрү Кытайда абдан популярдуу. Базарда велосипедди бөлүштүрүүчү 10дон ашык бренддер бар жана “ mobike ” эң атактуусу, анын 100 миллиондон ашык колдонуучулары катталган жана башка шаарларга тараган
OpenWrt роутериңизге алыстан кирүү үчүн Android/iOS колдонмосу: 11 кадам
OpenWrt роутериңизге алыстан кирүү үчүн Android/iOS колдонмосу: Мен жакында жаңы роутерди сатып алдым (Xiaomi Mi Router 3G). Жана, албетте, бул жаңы, укмуш аппараттык бөлүк мени бул долбоордун үстүндө иштөөгө шыктандырды;)
BLE модулдары үчүн жөнөкөй IOS колдонмосу: 4 кадам
BLE модулдары үчүн жөнөкөй IOS тиркемеси: Бул көрсөтмө сиз эң негизги функциялары бар iOS колдонмосун кантип түзө алсаңыз болот. Бул Instructable iOS BLE тиркемесин түзүүнүн бардык процессинен өтпөйт. Бул бир гана кээ бир маанилүү элементтерге жогорку деңгээлде обзор берет
Сүйүүнү бөлүшүү: 4 кадам
Сүйүүңүздү бөлүшүңүз: Биз бардык эсептөөчү класстарда жасаган бардык LED жумуштары менен мага JUMBOTRONду эске салат. Менин Sparkfun комплектиндеги LEDлер менин сүйүктүүм болду. Мен жаркыраган жарыктарга жана ар кандай жаркыраган нерселерге жакынмын. Биздин үйдө эки чоң неон бар
Secret Spy Сүрөт Сүрөт Көчүрүү Топтом File: 5 кадам
Secret Spy Сүрөт Сүрөт Көчүрүү Топтомдук Файл: Ошентип, биринчи кезекте, бул көрсөтмө берүүчү эмне жана эмне үчүн.Бул көрсөтмө сизге компьютердеги бардык сүрөттөрдү эстутум таякчаңызга көчүрө турган пакет файлын түзүүгө мүмкүндүк берет. ал муну башка программа катары көрсөтүп, дискреттик түрдө жасайт