LoginSignup
4
15

More than 5 years have passed since last update.

【iOS】プログラミング素人の俺が、Swift + Firebaseを使って、インスタクローンを作る!【新規登録・ログイン編】

Last updated at Posted at 2018-03-04

目次

  • Firebaseを使用して、インスタクローンを作る
  • 感想
  • 次回

Firebaseを使用して、インスタクローンを作る。

元々、何かiOSアプリを作りたいと思い、インスタクローン制作を決意した俺。
最初はRealmしようかと思っていたが、後々Firebaseとなる物を発見。
今回は、それを使って制作することにした。

① Firebase登録

これは、以下のサイトを参考にしました。
ありがとうございますm(_ _)m
Swiftで始めるFirebase入門

② 新規登録・ログイン画面を作る

次に、新規登録・ログイン画面を作る。
今回はシステムの制作が最優先なので、UIはガン無視した。

ViewController.swift
import UIKit
import Firebase

//ディスプレイサイズ取得
let w = UIScreen.main.bounds.size.width
let h = UIScreen.main.bounds.size.height
class ViewController: UIViewController {

    var DBRef:DatabaseReference!

    //メールアドレス入力欄
    let user_id = UITextField(frame: CGRect(x: (w - 160) / 2, y: 50, width: 160, height: 30))
    //パスワード入力欄
    let user_pass = UITextField(frame: CGRect(x: (w - 160) / 2, y: 100, width: 160, height: 30))

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        //メールアドレス入力欄設定
        user_id.text = "メールアドレスを入力"
        user_id.clearsOnBeginEditing = true
        user_id.layer.cornerRadius = 5.0
        user_id.layer.borderColor = UIColor.black.cgColor
        user_id.layer.borderWidth = 1.0
        view.addSubview(user_id)

        //パスワード入力欄設定
        user_pass.text = "パスワードを入力"
        user_pass.isSecureTextEntry = true
        user_pass.clearsOnBeginEditing = true
        user_pass.layer.cornerRadius = 5.0
        user_pass.layer.borderWidth = 1.0
        user_pass.layer.borderColor = UIColor.black.cgColor
        view.addSubview(user_pass)

        //新規登録ボタン
        let b1 = UIButton(frame: CGRect(x: (w - 80) / 2, y: 150, width: 80, height: 30))
        b1.setTitle("追加", for: UIControlState())
        b1.backgroundColor = .red
        b1.addTarget(self, action: #selector(ViewController.add(_:)), for: .touchUpInside)
        view.addSubview(b1)

        //ログインボタン
        let b2 = UIButton(frame: CGRect(x: (w - 80) / 2, y: 200, width: 80, height: 30))
        b2.setTitle("ログイン", for: UIControlState())
        b2.backgroundColor = .blue
        b2.addTarget(self, action: #selector(ViewController.SignIn(_:)), for: .touchUpInside)
        view.addSubview(b2)

        //DBインスタンス変数の生成
        DBRef = Database.database().reference()
    }

    //新規登録
    @objc func add(_ :UIButton) {
        Auth.auth().createUser(withEmail: user_id.text!, password: user_pass.text!, completion: { (user:User?, error:Error?) in
            if let error = error {
                print("Creating the user failed! \(error)")
                return
            }

            if let user = user {
                print("user : \(user.email) has been created successfully.")
            }
        })
    }

    //ログイン
    @objc func SignIn(_ : UIButton){
        Auth.auth().signIn(withEmail: user_id.text!, password: user_pass.text!) { (user, error) in
            if let error = error {
                print("login failed! \(error)")
                return
            }

            if let user = user {
                let storyboard: UIStoryboard = self.storyboard!
                let nextView = storyboard.instantiateViewController(withIdentifier: "Image")
                self.present(nextView, animated: true, completion: nil)
                print("user : \(user.email) has been signed in successfully.")
            }
        }
    }


}

③完成品

スクリーンショット 2018-03-05 1.34.44.png

感想

簡単にユーザ管理ができるのは、便利ですね!
登録・ログイン処理もあっという間!
これは、管理しやすいですね。

次回

【iOS】プログラミング素人の俺が、Swift + Firebaseを使って、インスタクローンを作る!【写真投稿編】

4
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
15