StoryboardからSwiftUIの画面を表示

StoryboardからSwiftUIで作ったUIを呼び出す方法 - Qiita

f:id:fedora9:20201103174240p:plain

 

import SwiftUI

 

struct SwiftUIView: View {

    var body: some View {

        Text("Hello, World!")

    }

}

 

struct SwiftUIView_Previews: PreviewProvider {

    static var previews: some View {

        SwiftUIView()

    }

}

 

SwiftUIを使って一覧ページ(リスト表示)を簡単に作ってみよう - Qiita

Textを2行表示するには、

Commandを押しながら、Textをクリックしてメニューを表示して、

Embed in VStack を選択するとVStackが追加される。

その後、Text追加。

struct SwiftUIView: View {

    var body: some View {

      VStack {

        Text("Hello, World!")

        Text("Hello, World!")

      }

    }

}

 

Firebase Firestore

2022/2/11確認

SimulatorでFirebaseのViewControllerを開いた時に、Firestore Databaseにデータを追加できた。

Podfileに追加

  pod 'Firebase/Core'

  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.12.1'

 

M1 Macの場合、下記コマンドでpod install

$ arch -x86_64 pod install

Firebaseコンソールにログインして、GoogleService-Info.plistをダウンロードして、

プロジェクトのフォルダにコピーして、Xcodeにドラッグして追加

 

 

AppDelegateにimportを追加

import Firebase

AppDelegateのfunc applicationにFirebaseApp.configure()を追加

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    FirebaseApp.configure()

    return true

  }

 

FirebaseViewControllerにimportを追加

import FirebaseFirestore

FirebaseViewControllerのviewDidLoad()に追加

 

  override func viewDidLoad() {

    super.viewDidLoad()

 

    let db = Firestore.firestore()

    db.collection("users").addDocument(data: ["name": "hoge2"]) { error in

      if let error = error { print("エラーが起きました") }

      else { print("ドキュメントが保存できました") }

    }

 

Firebaseコンソールにログインして、

Firestore Databaseのルールを読み込み、書き込みできるように変更

      allow read, write: if
          request.time < timestamp.date(2022, 2, 15);

上記の設定だと2022/2/14まで誰でも変更・削除できてしまうので注意

pod 'Firebase/Firestore'インストール後のビルドが遅い場合の対処法(iOS) - Qiita

 

 

Firebase FireStore使ってみた - Qiita

 

Firestoreを試してみた - Qiita

 

【Swift】FirestoreにDataを追加してみる|Playground発!アプリ開発会社の技術ブログ

 

Add data to Cloud Firestore  |  Firebase

 

【Firebase×Swift】データ取得とTableView表示(後編)〜取得データの変換とセル表示〜|shion_note|note

 

Podfileに追加

pod 'Firebase/Core'

pod 'Firebase/Firestore'

pod 'Firebase/Firestore'インストール後のビルドが遅い場合の対処法(iOS) - Qiita

 

Firebase FireStore使ってみた - Qiita

AppDelegate.swiftに

import Firebase

を追加

AppDelegate.swiftの

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

の下に

    FirebaseApp.configure()

を追加

 

  @IBAction func tapFirestore(_ sender: Any) {

    creatUserCollectionAutomaticDocument()

  }

 

  // usersコレクションの作成(ドキュメント名自動)

  func creatUserCollectionAutomaticDocument() {

    let db = Firestore.firestore()

    db.collection("users").addDocument(data: ["name": "hoge"]) { error in

      if let error = error { print("エラーが起きました") }

      else { print("ドキュメントが保存できました") }

    }

  }

 

 

QiitaのREST APIでusersを表示、Github users、はてなブックマーク数

swiftでwebAPIを呼び出してjsonデータを表示させる - Qiita

 

REST入門 基礎知識 - Qiita

 

 

    let url: URL = URL(string: "https://qiita.com/api/v2/users/TakahiRoyte")!

    let task: URLSessionTask = URLSession.shared.dataTask(with: url, completionHandler: {(data, response, error) in

      guard let data = data else {

        return

      }

      do {

        let json = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments)

        print(json)

      // コンソールに出力

//      print("data: \(String(describing: data))")

//      print("response: \(String(describing: response))")

//      print("error: \(String(describing: error))")

      }

      catch {

          //print(error)

      }

    })

    task.resume()

 

Users | GitHub Developer Guide

let url: URL = URL(string: "https://api.github.com/users/octocat")!

 

はてなブックマーク件数取得API - Hatena Developer Center

    let url: URL = URL(string: "https://bookmark.hatenaapis.com/count/entry?url=http%3A%2F%2Fwww.hatena.ne.jp%2F")!

 

shareボタン UIActivity

[Swift]UIActivityの使い方まとめ - Qiita

 

  var url: String!

 

  @IBAction func tapSafari(_ sender: Any) {

    // 共有する項目

    let shareText = "Apple - Apple Watch"

    let shareWebsite = NSURL(string: url)!

    

    let activityItems = [shareText, shareWebsite] as [Any]

    

    // 初期化処理

    let activityVC = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

    

    // 使用しないアクティビティタイプ

    let excludedActivityTypes = [

      UIActivity.ActivityType.postToFacebook,

      UIActivity.ActivityType.postToTwitter,

      UIActivity.ActivityType.message,

      UIActivity.ActivityType.saveToCameraRoll,

      UIActivity.ActivityType.print

    ]

    

    activityVC.excludedActivityTypes = excludedActivityTypes

    

    // UIActivityViewControllerを表示

    self.present(activityVC, animated: true, completion: nil)

  }

 

WKWebViewでロードしたページのタイトルを取得

 

  @IBOutlet weak var wkWebView: WKWebView!

 

 

    if let url = URL(string: self.url!) {

      let request = URLRequest(url: url)

      wkWebView.load(request)

    }

 

 

    let shareText = wkWebView.title

 

Safariで開く

【Swift】Table View Cell、外部URLへ飛ぶ方法 - Qiita

 

  var url: String!

  

  @IBAction func tapSafari(_ sender: Any) {

    let url2 = NSURL(string: url)

    if UIApplication.shared.canOpenURL(url2 as! URL) {

      UIApplication.shared.open(url2! as URL, options: [:], completionHandler: nil)

    }

  }