Swift,SwiftUI備忘録

Swift_logo Swift
  1. シュミレーターでキーボードが表示されない時の対処
  2. build時に”Unable to log in with account ”というエラーが出たらどうするか
  3. Identifiableとは
  4. Certificateの更新
  5. 旧SwiftUIからの変更
  6. Propety Wrapper
  7. Viewの大きさを指定する
  8. バックスラッシュ( \ )の入力方法(Mac)
  9. 文字列内で変数を使用する方法
  10. 文字列を数値型に変換
  11. get{} と set{} の定義
  12. TextFeildの使い方
    1. 表示スタイルの変更
    2. テキストの配置を変更
    3. キーボードの種類を変更
  13. Sectionの使い方
  14. Pickerの使い方
    1. 基本例
    2. ForEachとの組み合わせ
  15. 条件分岐
    1. if文
    2. switch文
      1. switch文で範囲指定をする場合
  16. UIViewのdrawで線を描写する
  17. UIColorのチートシート
  18. CGReactを用いたサイズ指定
  19. NSAttributedStringの使い方
  20. tap gestureを指定
  21. borderの角を丸くする
  22. 画像やViewに角丸をつける
  23. Listの削除
  24. NavigationLink
  25. NavigationBarItem
  26. キーボードの上げ下げ
  27. Colorの使い方
  28. strokeの使い方
  29. Alertの使い方
  30. @State, @ObservedObject, @EnvironmentObjectの違い
  31. .onAppearのタイミング
  32. .onReceiveの意味
  33. UNUserNotificationCenter(通知の監視)を使ってバックグランドでもアプリの動作を続ける
  34. UNNotificationPresentationOptions
  35. バックグラウンドでのオーディオ再生
  36. terminalからiCloudへの移動コマンド
  37. CocoaPodsの使い方
  38. vimコマンド
  39. GoogleAdmob(広告)の導入方法
  40. The Google Mobile Ads SDK was initialized without AppMeasurement. の解決方法
  41. AppleDeveloperへのアップ方法
  42. アプリアイコンでエラーが出る場合
  43. アプリのスクショサイズ
  44. Gitコマンド
  45. icon作成
  46. 完成したアプリ

シュミレーターでキーボードが表示されない時の対処

build時に”Unable to log in with account ”というエラーが出たらどうするか

The operation couldn’t be complete…【Xcodeで実機buildエラー】 | kamiblog
The operation couldn’t be complete...はアカウントが見つからない。No profiles for 'Origanization Identifi...

Identifiableとは

クラスやstructにidを与えて、識別可能にする。

【SwiftUI】ForEachの使い方(2/2)
ForEachの繰り返し処理にて出力したデータを変更(削除、並び替え)できるようにするには、SwiftUIが該当データを識別する為に、各要素の一意性が保証されている必要があります。本記事(2/2)では、各要素の一意性を保証したデータコレクシ

Certificateの更新

こんなメールがAppleから来たときのために

[Your Distribution Certificate will no longer be valid in 30 days. To generate a new certificate, sign in and visit Certificates, Identifiers & Profiles. ]

iOS 証明書 & Provisioning Profile & Apple Developer Program の更新をやったメモ(1年ぶりn回目) | DevelopersIO
年に1回やる作業ですが、「あれ、どうやるんだっけ?」と毎回なるので、ブログ化してみました。 「Apple Developer Program の更新」「iOS 証明書の更新」「Provisioning Profile の更新」

旧SwiftUIからの変更

https://qiita.com/zizi4n5/items/be9d655da79cd3dcec2a#textfieldの仕様変更

Propety Wrapper

Property Wrapper 入門 - Qiita
Rx を使ってプロパティの変更通知をしたい、だけどクラス外からは値の変更を許したくないというユースケースがよくあると思います。 そうしたとき、以前までは以下のように書いていました。 struct Person { privat...
SwiftUIのProperty Wrappersとデータへのアクセス方法 - Qiita
2019/7/17 @GestureStateについて追記しました。 2019/7/19 BindableObjectがdidChange->willChangeなど変更されていたので修正しました。

Viewの大きさを指定する

【SwiftUI】Viewのフレームサイズ指定(frame)
(2022/03/26 更新)Viewのフレームサイズを指定する方法を解説します。

バックスラッシュ( \ )の入力方法(Mac)

(option) + (¥)

文字列内で変数を使用する方法

var dog = "チワワ"

let message = "私は\(dog)が好きです。"

print(message)

文字列を数値型に変換

String型から Int , Double , Float への変換のやり方です。

Int型への変換
let int = Int(String)

Double型への変換
let double = Double(String)

Float型への変換
let float = Float(String)

get{} と set{} の定義

[Q&A] SwiftUI : get{}とset{}の定義 - Qiita

TextFeildの使い方

(アーカイブ)【SwiftUI】TextFieldの使い方
(2020/09/26 更新)本記事で使用しているTextFieldの使い方はiOS14以前の仕様を元に解説しています。最新の情報はこちらの記事を御覧ください。テキスト入力に使うTextField()の使い方を解説します。

表示スタイルの変更

TextField()に長方形の枠を追加。

.textFieldStyle(RoundedBorderTextFieldStyle())

テキストの配置を変更

テキストの配置を指定。

.multilineTextAlignment(配置指定)

配置は以下の種類があります。

.center中央寄せ
.leading左寄せ
.trailing右寄せ

キーボードの種類を変更

以下のコードでキーボードのスタイルを指定。

.keyboardType(キーボードのタイプ)

キーボードのタイプには以下の種類があります。

.numberPad数値のみのキーボード
.decimalPad小数点も使用できる数値のみキーボード
.phonePad電話番号入力用のキーボード
.URLURL入力用のキーボード
.asciiCapableASCII文字キーボード
.numbersAndPunctuation数字と句読点キーボード

Sectionの使い方

SectionはFormと同時に使用することが基本です。

Sectionを使用することでForm内の部品をグループ化することができます。

また、headerやfooterを追加することが可能です。

Section{
    //コンテンツビュー
}header:{
   //ヘッダービュー
}footer:{
  //フッタービュー
}

Pickerの使い方

基本例

複数の選択肢から項目を選んでもらう際にピッカーは便利な機能です。

Picker(selection:$selection,label:Text("ラベル")){
       Text("選択肢1").tag(1)
       Text("選択肢2").tag(2)
       ......
       Text("選択肢n").tag(n)
}

selectionの引数には、値の変更を受け取れるように、@Stateで宣言した値を渡します。

引数に$がついているのは、@Stateを受け取れるようにするためです。

labelにはPickerに表示するラベルを引数として渡します。

具体例

struct ContentView:View{
  @State private var selection = 0

  var body:some View{
     Picker(selection:$selection,label:Text("犬種を選択")){
          Text("チワワ").tag(1)
          Text("ポメラニアン").tag(2)
          Text("ダックスフンド").tag(3)
    }
  } 
}

ForEachとの組み合わせ

繰り返し構文およびリストと組み合わせることで、ピッカーが使いやすくなります。

上記の具体例をForEachとリストを使用して書き換えてみます。

struct ContentView:View{
 let species = ["チワワ","ポメラニアン","ダックスフンド"]
  @State private var selection = 0

  var body:some View{
     Picker(selection:$selection,label:Text("犬種を選択")){
          ForEach(0..<species.count){ num in
               Text(self.species[num])
      }
    }
  } 
}

条件分岐

if文

if 条件A{
   //条件Aに合致した時の処理
}else if 条件B{
  //条件Bに合致した時の処理
}else{
 //条件Aにも条件Bにも合致しなかった時の処理
}

switch文

switch 式{

case 条件A:
     //条件Aに合致したときの処理
case 条件B:
     //条件Bに合致したときの処理
default:
     //条件Aにも条件Cにも合致しないときの処理
}

switch文で範囲指定をする場合

switch文のcase内で数値の範囲指定をする場合、caseの中で新たに変数を作る必要があります。

let number = 100

switch number{

case let n where n >=80:
     print("すごい!")

case let n where n >=50:
     print("まずまず")

default:
     print("もう少し")

}

UIViewのdrawで線を描写する

UIColorのチートシート

【Swift5/Xcode】【チートシート】Swiftでカラーを指定する方法をまとめてみました。
  先ほども言った通り、カラー指定の方法は、以下のようにたくさんあります。 一つ一つ丁寧に解説して行…

CGReactを用いたサイズ指定

サイズ指定(CGRect CGPoint CGSize) - iPhoneアプリ開発の虎の巻

NSAttributedStringの使い方

https://qiita.com/shu223/items/c2eb639976154a491d19#影と文字色

tap gestureを指定

How to read tap and double-tap gestures - a free SwiftUI by Example tutorial
Learn Swift coding for iOS with these free tutorials

borderの角を丸くする

SwiftUIでborderの角を丸くする方法(cornerRadius) - Qiita
はじめに どうもSwiftUI大好きエンジニアです 今回ご紹介するSwiftUI tipsはborderの角を丸くする方法です。 簡単なのですが、ちょっと素直にできなかったのでメモとして残しておきます 実行環境: Xcode...

画像やViewに角丸をつける

SwiftUIでViewに枠線、角丸を適用する - Qiita
はじめに SwiftUIでImageやTextに枠線や角丸を適用する方法を書きます。 UIKitで言う所のUIImageViewやUIButtonに枠線や角丸を適用する方法のSwiftUI版です。 環境について Ma...

Listの削除

【SwiftUI】 Listを使ってUITableViewをなくす! - Qiita
やりたいこと ・Listの背景色をつける ・削除可能にする ・タップ時のアクションを作る ・ContextMenu で長押し/3D Touch時のアクションを作る Listを作成 🐶、🐱、🐊の3つを表示する高さが 50 の...

NavigationLink

NavigationBarItem

(アーカイブ)【SwiftUI】ナビゲーションバーのボタン配置
本記事で使用しているnavigationBarItems()はiOS14以降では非推奨となっています。最新の情報はこちらの記事を御覧ください。ナビゲーションバーにボタンを配置する方法を解説します。

キーボードの上げ下げ

キーボードを閉じる・開閉を検知する - SwiftUIへの道
テキスト入力で開いたキーボードを閉じる実装方法とキーボードの開閉を検知する方法を紹介しています。テキスト入力後に適当な場所をタップしてキーボードを閉じるのも実装する必要があります。

Colorの使い方

【SwiftUI】色の指定方法(Color)
(2022/10/20 更新)SwiftUIでの色の指定方法を解説します。色の指定にはColor構造体を使用します。

strokeの使い方

【SwiftUI】図形の輪郭描画(stroke)
(2020/8/22 更新)図形の輪郭を描画する.stroke()の使い方を解説します。

Alertの使い方

(アーカイブ)【SwiftUI】アラートの使い方(alert)
(2020/8/13 更新)本記事の説明はiOS14以前の使用方法です。iOS15以降の情報はこちらの記事を御覧ください。ユーザーに確認を促すアラートダイアログを表示する、.alert()の使い方について解説します。

@State, @ObservedObject, @EnvironmentObjectの違い

SwiftUIの機能 @State, @ObservedObject, @EnvironmentObjectの違いとは| 開発者ブログ | 株式会社アイソルート
「SwiftUIの機能 @State, @ObservedObject, @EnvironmentObjectの違いとは」 SwiftUIにて登場する@State, @ObservedObject,

.onAppearのタイミング

.onReceiveの意味

Apple Developer Documentation

UNUserNotificationCenter(通知の監視)を使ってバックグランドでもアプリの動作を続ける

Timer Using SwiftUI
This tutorial teaches you how to develop Timer using SwiftUI

UNNotificationPresentationOptions

iOS 14からUNNotificationPresentationOptionsの「.alert」が「.banner」と「.list」に分かれた - Qiita
はじめに プッシュ通知の表示オプション( UNNotificationPresentationOptions )に .alert がありますが、iOS 14 から非推奨になりました。 代わりに .banner と .list の...

バックグラウンドでのオーディオ再生

terminalからiCloudへの移動コマンド

cd ~/Library/Mobile\ Documents/com~apple~CloudDocs/

CocoaPodsの使い方

【Swift入門】CocoaPodsでライブラリをインストールする
はじめに iOSアプリ開発において、だいたいのアプリには何かしらのライブラリが入っているのではないかなと思いま…

vimコマンド

viコマンド(vimコマンド)リファレンス - Qiita
起動 基本 $ vi ファイル名 ...指定して起動 $ vi ファイル名1 ファイル名2 … ファイル名n ...複数ファイル起動 $ vi -R ファイル名 or $ view ファイル名 ...読み...

GoogleAdmob(広告)の導入方法

[SwiftUI] XcodeProjectにAdmobを導入する方法
目次1 環境1.1 AdMobを使うための条件2 CocoaPodsの導入2.1 作成したPodfileを開き、以下のようにpod ‘Google-Mobile-Ads-SDK’行を追加します。2 ...
SwiftUIでAdMobを実装する方法 - Reasonable Code

Google公式

スタートガイド  |  iOS  |  Google Developers
iOS アプリを開発している AdMob パブリッシャー向けのモバイル広告用 SDK です。
バナー広告  |  iOS  |  Google Developers

The Google Mobile Ads SDK was initialized without AppMeasurement. の解決方法

info.plit

内に以下のコードを入れる

<key>GADIsAdManagerApp</key>
<true/>
[Admob]起動時にアプリがクラッシュする
Admob導入アプリを起動時にクラッシュします。 Firebase/Admobを使用しています。 ### エラー内容 Thread 2: "The Google Mobile Ads SDK

AppleDeveloperへのアップ方法

[iPhone] アプリ申請のためXcodeでアップロードする | iOS アプリ開発
Appleへのアプリ申請のため、Provisioning Profile をXcode に設定して、Archive の後、App Store Connect (旧 iTunes Connect) にアップロードします。 概要 iOS Cer

アプリアイコンでエラーが出る場合

AppStoreアイコンの設定が上手くいかない
### AppIconアイコンを設定し、 ArchiveするがValidateの時にエラーが発生し先に進めない いつもお世話になっております。質問失礼致します。 現在AppStoreでアプリを出そ

アプリのスクショサイズ

【iPhoneアプリ作成】App プレビューとスクリーンショットの画像サイズについて
審査へ提出審査へ提出をしようとした時に、App プレビュー、スクリーンショットの枚数が不足しているとエラーが出てしまいます。スクリーンショットを少なくとも1つ追加する必要があります。iPhone6.5インチディスプレイ・5.5インチディスプ

サイズトリミング

オンラインで様々なPNG画像をサイズ変更
オンラインで様々なPNG画像を透明度を維持しながらサイズ変更。パーセンテージまたはピクセル単位でPNG画像をサイズ変更できます。

Gitコマンド

【Git】基本コマンド - Qiita
基本コマンド ローカルリポジトリの作成 初期化して、現在あるファイルを追加して、コミットすればOK ファイルがなければgit initのみでOK git init git add * git commit -m "init...

git initのトラブルシューティング

[Git] fatal: refusing to merge unrelated historiesを解決する話 - Qiita
TL;DR git merge --allow-unrelated-histories origin/masterをする! ※ 2020/12/01追記 2020年10月より, デフォルトブランチがmasterからmainに変...

icon作成

iconトリミング

https://www.iconcutter.com/ja/

iconサイト

iconmonstr - Free simple icons for your next project
Free simple icons for your next project

完成したアプリ

https://apps.apple.com/jp/app/犬猫飲水量計算機/id1549678512

コメント

タイトルとURLをコピーしました