Სარჩევი:

სიახლოვის ფოტო გაზიარება IOS აპლიკაცია: 6 ნაბიჯი
სიახლოვის ფოტო გაზიარება IOS აპლიკაცია: 6 ნაბიჯი

ვიდეო: სიახლოვის ფოტო გაზიარება IOS აპლიკაცია: 6 ნაბიჯი

ვიდეო: სიახლოვის ფოტო გაზიარება IOS აპლიკაცია: 6 ნაბიჯი
ვიდეო: Meghan & Kate: Women Of Windsor (2023) | FULL DOCUMENTARY | HD 2024, ივლისი
Anonim

ამ ინსტრუქციურად ჩვენ შევქმნით iOS პროგრამას Swift– ით, რომელიც საშუალებას მოგცემთ გაუზიაროთ ფოტოები ვინმეს ახლომახლო, მოწყობილობის დაწყვილების გარეშე.

ჩვენ ვიყენებთ Chirp Connect- ს მონაცემთა გასაგზავნად ხმის გამოყენებით და Firebase- ს სურათების ღრუბელში შესანახად.

მონაცემების გაგზავნა ხმით ქმნის უნიკალურ გამოცდილებას, როდესაც მონაცემები შეიძლება გადაეცეს ნებისმიერს სმენის დიაპაზონში.

ნაბიჯი 1: დააინსტალირეთ მოთხოვნები

Xcode

დააინსტალირეთ App Store– დან.

კაკაოს პოდები

sudo gem დააინსტალირეთ cocoapods

Chirp Connect iOS SDK

დარეგისტრირდით admin.chirp.io

ნაბიჯი 2: პროექტის დაყენება

1. შექმენით Xcode პროექტი.

2. შედით Firebase– ში და შექმენით ახალი პროექტი.

გააქტიურეთ Firestore მონაცემთა ბაზის განყოფილებაში დაჭერით და Cloud Firestore- ის არჩევით. დააწკაპუნეთ ფუნქციებზე, რათა ასევე ჩართოთ ღრუბლოვანი ფუნქციები.

3. გაუშვით შექმენით თქვენი iOS აპლიკაცია პროექტის მიმოხილვის გვერდზე

თქვენ დაგჭირდებათ პაკეტის იდენტიფიკატორი ზოგადი ჩანართიდან თქვენი Xcode პროექტის პარამეტრებში. მას შემდეგ რაც შეიქმნება Podfile თქვენ უნდა დაამატოთ შემდეგი დამოკიდებულებები, სანამ პოდ ინსტალაციას გაუშვებთ.

# ბუდეები პროექტისთვის

pod 'Firebase/Core' pod 'Firebase/Firestore' pod 'Firebase/Storage'

4. ჩამოტვირთეთ უახლესი Chirp Connect iOS SDK admin.chirp.io/downloads– დან

5. მიჰყევით ნაბიჯებს developers.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))}. შეუერთდა ()}}

2. დაამატეთ ImagePicker დელეგატები თქვენს ViewController- ში და გამოაცხადეთ ChirpConnect ცვლადი, რომელსაც ეწოდება Connect.

კლასის 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– დან.

დაკავშირება = ChirpConnect (appKey: APP_KEY და და საიდუმლო: APP_SECRET) if let connect = connect {connect.getLicenceString {(ლიცენზია: String ?, error: Error?) in if error == nil {if licence = license {connect.setLicenceString (ლიცენზია) connect.start () connect.receivedBlock = {(მონაცემები: მონაცემები?) -> () in if let data = data {print (String (ფორმატი: "მიღებული მონაცემები: %@", data.hexString)) let ფაილი = Storage.storage (). Reference (). Child (data.hexString) file.getData (maxSize: 1 * 1024 * 2048) {imageData, error in if let error = error {print ("Error: %@", error.localizedDescription)} else {self.imageView.image = UIImage (მონაცემები: imageData!)}}} else {print ("დეკოდირება ვერ მოხერხდა"); }}}}

4. ახლა დაამატეთ კოდი სურათის მონაცემების გასაგზავნად, როდესაც ის შერჩეულია ინტერფეისში.

func imagePickerController (_ ამომრჩევი: UIImagePickerController, didFinishPickingMediaWithInfo ინფორმაცია: [სიმებიანი: ნებისმიერი])

{let imageData = info [UIImagePickerControllerOriginalImage] როგორც? UIImage მონაცემებს: მონაცემები = UIImageJPEG წარმომადგენლობა (imageData !, 0.1)! self.imageView.image = imageData მიეცემა მეტამონაცემები = StorageMetadata () metadata.contentType = "image/jpeg" if let connect = connect {let key: Data = connect.randomPayload (withLength: 8) Firestore.firestore () კოლექციის კოლექცია (" ატვირთვები "). addDocument (მონაცემები: [" გასაღები ": key.hexString," დროის ნიშნული ": 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 (გასაღები)}} } self.dismiss (ანიმაციური: ჭეშმარიტი, დასრულება: ნული)}

შენიშვნა: თქვენ უნდა დაამატოთ კონფიდენციალურობა - ფოტო ბიბლიოთეკის გამოყენების აღწერა, კონფიდენციალურობა - ფოტო ბიბლიოთეკის გამოყენების აღწერა და კონფიდენციალურობა - მიკროფონის გამოყენების აღწერა აღწერილობები თქვენს Info.plist– ში კამერის, ფოტო ბიბლიოთეკისა და მიკროფონის გამოყენების ნებართვის მისაცემად.

ნაბიჯი 4: შექმენით მომხმარებლის ინტერფეისი

შექმენით მომხმარებლის ინტერფეისი
შექმენით მომხმარებლის ინტერფეისი

ახლა გადადით Main.storyboard ფაილზე, რომ შექმნათ ინტერფეისი.

1. გადაიტანეთ ImageView და ორი ღილაკი Storyboard– ში ობიექტის ბიბლიოთეკის პანელიდან ქვედა მარჯვენა კუთხეში.

2. თითოეული ღილაკისთვის დაამატეთ სიმაღლის შეზღუდვა დაახლოებით 75px კომპონენტის შერჩევით და ღილაკზე Add New Constraints (ის, რაც ვარსკვლავური ომების ჰალსტუხის მებრძოლს ჰგავს) დაჭერით, შემდეგ კი შეიყვანეთ სიმაღლე და დააჭირეთ Enter.

3. შეარჩიეთ სამივე კომპონენტი და განათავსეთ ისინი დასტის ხედში ღილაკზე Embed In Stack დაჭერით.

4. ახლა გახსენით ასისტენტი რედაქტორი და დააჭირეთ CTRL და გადაიტანეთ თითოეული კომპონენტიდან ViewController კოდში, თითოეული კომპონენტისთვის Outlets შესაქმნელად.

@IBOutlet var imageView: UIImageView!

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

5. ახლა CTRL და გადაიტანეთ ორივე ღილაკიდან კამერის/ბიბლიოთეკის ინტერფეისის გასახსნელად მოქმედების შესაქმნელად.

6. ღია ბიბლიოთეკის მოქმედებაში დაამატეთ შემდეგი კოდი

@IBAction func openLibrary (_ გამგზავნი: ნებისმიერი) {

ნება imagePicker = UIImagePickerController () imagePicker.delegate = თვით; imagePicker.sourceType =.photoLibrary self.present (imagePicker, ანიმაციური: ჭეშმარიტი, დასრულება: ნული)}

7. ღია კამერის მოქმედებაში

@IBAction func openCamera (_ გამგზავნი: ნებისმიერი) {

ნება imagePicker = UIImagePickerController () imagePicker.delegate = თვით imagePicker.sourceType =. კამერა; self.present (imagePicker, ანიმაციური: ჭეშმარიტი, დასრულება: ნული)}

ნაბიჯი 5: დაწერეთ ღრუბლის ფუნქცია

იმის გამო, რომ ფოტოებს ღრუბელში სამუდამოდ შენახვა არ სჭირდება, ჩვენ შეგვიძლია დავწეროთ Cloud ფუნქცია, რომ გავაკეთოთ გასუფთავება. ეს შეიძლება გააქტიურდეს როგორც HTTP ფუნქცია ყოველ საათში cron სერვისით, როგორიცაა cron-job.org.

უპირველეს ყოვლისა, ჩვენ უნდა დავაყენოთ სახანძრო ინსტრუმენტები

npm დააინსტალირეთ -g firebase -ინსტრუმენტები

შემდეგ გაუშვით პროექტის ძირეული დირექტორია

firebase init

აირჩიეთ ფუნქციები ბრძანების სტრიქონიდან ღრუბლის ფუნქციების დასაწყებად. თქვენ ასევე შეგიძლიათ ჩართოთ firestore თუ გსურთ Firefore– ის კონფიგურაციაც.

შემდეგ გახსენით ფუნქციები/index.js და დაამატეთ შემდეგი კოდი. გახსოვდეთ შეცვლა

თქვენი Firebase პროექტის id.

const ფუნქციები = მოითხოვს ('firebase- ფუნქციები');

const admin = მოითხოვს ('firebase-admin'); admin.initializeApp () export.cleanup = ფუნქციები. > {admin.storage ().bucket ('gs: //.appspot.com').file (doc.data ().key).delete () doc.ref.delete ()}) return response.status (200). გაგზავნა ('OK')}). დაჭერა (err => პასუხი. სტატუსი (500). გაგზავნა (err))});

ღრუბლოვანი ფუნქციების განთავსება ისეთივე მარტივია, როგორც ამ ბრძანების გაშვება.

სახანძრო ბაზის განთავსება

შემდეგ cron-job.org– ზე შექმენით სამუშაო, რომელიც გამოიწვევს ამ საბოლოო წერტილს ყოველ საათში. საბოლოო წერტილი იქნება მსგავსი

us-central1-project_id.cloudfunctions.net/cleanup

ნაბიჯი 6: გაუშვით აპლიკაცია

გაუშვით აპლიკაცია სიმულატორზე ან iOS მოწყობილობაზე და დაიწყეთ ფოტოების გაზიარება!

გირჩევთ: