Мазмуну:

Жакындыкта сүрөт бөлүшүү IOS колдонмосу: 6 кадам
Жакындыкта сүрөт бөлүшүү IOS колдонмосу: 6 кадам

Video: Жакындыкта сүрөт бөлүшүү IOS колдонмосу: 6 кадам

Video: Жакындыкта сүрөт бөлүшүү IOS колдонмосу: 6 кадам
Video: Минет харамба?Минет жасауға болама? 2024, Июль
Anonim

Бул көрсөтмөдө биз 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 түзмөгүндө иштетип, сүрөттөрдү бөлүшө баштаңыз!

Сунушталууда: