StoryboardからSwiftUIの画面を表示
StoryboardからSwiftUIで作ったUIを呼び出す方法 - Qiita
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
【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
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)
}
}