- 1. 【SWIFT】Buttonを使った簡単な画面変遷
- 2. 【SwiftUI】URLSessionをCombineで使ってみた
- 3. 【Swift】フォアグラウンド、バックグラウンドに入ったのを検知
- 4. Staticを超絶簡単にまとめてみますた
- 5. SwiftUIでAdMobネイティブ広告を表示する
- 6. 【SwiftUI】長押しでメニューを表示する
- 7. MacBook Pro M1 Max 16インチ 64GBメモリ 2TB SSD で Unity iOS アプリのビルドはどれほど速くなるのか
- 8. AndroidとiOSでSuicaを読み取る
- 9. 【SwiftUI】WKWebViewをSwiftUIで使う
- 10. UIscrollViewについて
- 11. 【SwiftUI】AsyncImageを使ってURL画像を表示する
- 12. 【SwiftUI】RenameButtonってものが追加されてるけどこれ意味なくね??
- 13. URLSession × async await で通信処理を書いてみる
- 14. 【SwiftUI】SFSafariViewControllerを使う
- 15. 【SwiftUI】タグリストを作成できる便利なライブラリ
- 16. SourceTreeで2つ以上のプロジェクトを1つにまとめる方法
- 17. 【Xcode】ターゲット名を変更する
- 18. Flutterで独自のサービスを開発するまで3
- 19. Flutterで独自のサービスを開発するまで2
- 20. Flutterで独自のサービスを開発するまで
【SWIFT】Buttonを使った簡単な画面変遷
概要
———
UIButtonを使った簡単な画面変遷についての備忘録。今回使うMethod
– present(_ :animated: Bool)
– dismiss(animated: Bool)親画面の画像
—
親画面のコード
—-“`class MainViewController: UIViewController{
@IBAction func transitionToAnotherViewButton(_ sender: UIButton) {
transitionToAnotherViewButton()
}
func transition
【SwiftUI】URLSessionをCombineで使ってみた
# はじめに
HTTP通信はいつもAlamofireを使用していて、URLSessionを使ったことがなかったので使ってみました。# サンプルアプリ
![Simulator Screen Recording – iPhone 14 Pro – 2022-11-21 at 20.36.34.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/94d5d19d-4305-4d0b-452d-b37cb2f77ddc.gif)# 実装
## View
“`ContentView.swift
import SwiftUIstruct ContentView: View {
@StateObject var viewModel = ViewModel()
var body: some View {
List(viewModel.repositories.items) { item in
Label {
【Swift】フォアグラウンド、バックグラウンドに入ったのを検知
## はじめに
`viewWillAppear`で日付を取得し、ラベルに表示させていました。アプリをキルしない状態で日付を跨ぐと画面の切り替え等を行わない限り、`viewWillAppear`は呼ばれないためUIが更新されない問題が発生しました。
`viewController`のライフサイクルにはフォアグラウンドやバックグラウンドになる時に呼ばれるものは存在しないため、別の角度からUIを更新できるようにします。※間違った認識等あれば、ご指摘いただけると幸いです。
## 解決策
アプリをキルしないユーザーは一定数存在しているため、解決策として`NotificationCenter`を使い、フォアグラウンドに入った時を検知して特定のUIを更新する処理を実装する。
ほぼ同じ処理なので、バックグラウンドになった時も合わせて記載しています。※`NotificationCenter`がよく分からない人は使用頻度が高いので調べてみるといいと思います。
https://qiita.com/ryo-ta/items/2b142361996657463e5f
## フォアグラウンド、バッ
Staticを超絶簡単にまとめてみますた
## はじめに
Staticに関して簡単にまとめてみた。また、Staticキーワードと同じような概念にClassキーワードというものがある。先に両者のキーワードの違いを下記にまとめる。| 比較項目 | Static | Class |
| :— | :—: | :—: |
| オーバーライド | NG | OK |
| ストアドプロパティの定義 | OK | NG |
| コンピューテッドプロパティの定義 | OK | OK |## 対象者
この記事は下記のような人を対象にしている。– プログラミング初学者
– Staticを聞いたことがある## Staticプロパティとは
– Static(スタティック)は静的であり、タイプ(型)とも呼ばれる。
→ スタティックプロパティ = タイププロパティみたいな感じ
– インスタンスを作らなくてもアクセスできる。
→逆に言うと、インスタンス単位でアクセスすることができない。= 値の変更は可能だが、再度初期化することができない
→インスタンスを生成する必要がないため、メモリ消費を抑えること
SwiftUIでAdMobネイティブ広告を表示する
# 要約
SwiftUIで`UIViewRepresentable`を用いてAdMobのネイティブ広告を表示します。
# はじめに
SwiftUIでAdMobのネイティブ広告を表示します。いわゆるSwiftUI life cycleでの表示例です。
AdMobのネイティブを含む広告はSwiftUIではサンプルがないので、表示できた実装例を示します。
公式での実装ではないので何かしら問題が起こる可能性があります。
AdMobの導入が済んでいる事が前提となります。
https://developers.google.com/admob/ios/quick-start?hl=ja# コードと説明
## AppAdMobはAppDelegateでの初期化が必要なので、Appで`UIApplicationDelegateAdaptor`を実装してAdMobの初期化対応を行います。
後程SceneDelegateの対応も必要になるので実装します。
SceneDelegateではwindowやwindowSceneを取得できるように用意しておきます。このAppDelegateやSc
【SwiftUI】長押しでメニューを表示する
# はじめに
ContextMenuは長押しした時に出るメニューです。
意外と知られてなさそうなので紹介します。# 動画
![Simulator Screen Recording – iPhone 14 – 2022-11-20 at 21.50.34.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/0aef788c-d1f4-ea34-f032-aca52b1219cd.gif)# データ
“`swift
struct Weather: Identifiable {
let id = UUID()
let iconName: String
let iconColor: Color
let title: String
}let weathers: [Weather] = [
.init(iconName: “sun.max.fill”, iconColor: .orange, title: “晴れ”),
.init(iconNa
MacBook Pro M1 Max 16インチ 64GBメモリ 2TB SSD で Unity iOS アプリのビルドはどれほど速くなるのか
## はじめに
快適にUnityが使えるマシンが欲しくなったので表題のスペックのMacBook Pro M1 Max(10コアCPU 32コアGPU 16コアNeural Engine搭載Apple M1 Max)を2週間ほど前に購入しました。
(近々発売されると噂されているM2 Max MacBook Proも視野に入れていたのですが、2023年3月以降になる見込みということを知り、私はいまこの瞬間にUnityが快適に使えるマシンが欲しかったので今回は見送りました)この記事では、そのMacBook Pro M1 Maxと、もともと利用していたMacBook Air(Intel Core i5 16GBメモリ 500GB SSD)で Unity iOSアプリのビルド(+α)に要する時間を比較してみます。
ここ数週間ほど使ってみて、体感としてUnity関連の作業が非常に快適になったことは明らかではあるのですが、ふとメモがてら比較して残しておきたくなってきたのでやってみます。## 前提
ある2DゲームUnityプロジェクトが今回のビルド対象です。
厳密に比較するのであれば、上
AndroidとiOSでSuicaを読み取る
ICOCA やねんけどね
# 概要
– **今回の目的**
Android と iOS で Suica を読み取ります。
– **将来の目的**
Suica は NFC TypeF でマイナンバーカードは TypeB だそうです。役所系の案件を獲得できるかも知れません。## 用語
– **NFC**
Near field communication の略で近距離無線通信と訳されています。主に非接触型カードに搭載され、近年のスマートフォンにも搭載されています。
– **Type**
運転免許証やマイナンバーカードなどに使用されています。
– **Type F (FeliCa)**
Suica PASMO Edy nanaco などに使用されています。
– **IDm**
カード固有の ID です。スマートフォンをピッって当てるだけで読み取れ
【SwiftUI】WKWebViewをSwiftUIで使う
# はじめに
SwiftUIも便利になってきましたが、WebViewはいまだに対応されていません。
今回はSwiftUIでWKWebViewを使用する方法を紹介します。# やりたいこと
– カスタムユーザーエージェントを設定
– WKWebViewConfigurationを使ってJavaScriptを実行
– URLを監視この辺りができれば、UIKitで使用する時と同等のことができるのではないでしょうか
# 参考
ベースはこちらのライブラリです。
`WKWebViewConfiguration`の設定ができなかったのでPRを投げてみました。https://github.com/danielsaidi/WebViewKit
# 実装
“`swift
#if os(iOS)
typealias WebViewRepresentable = UIViewRepresentable
#elseif os(macOS)
typealias WebViewRepresentable = NSViewRepresentable
#endif#if os(iOS) || os(
UIscrollViewについて
# UIScrollViewの超基本使い方イメージ
1\. Viewの上にScrollViewを載せる(addSubViewする)
2\. ScrollViewにcontentView(スクロールさせたい対象)を載せる(addSubViewする)
3\.scrollViewのcontentSizeにcontentViewのサイズを教える![名称未設定のノート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519519/795f2d99-5943-d68d-46ee-962d6b7e2903.png)
【SwiftUI】AsyncImageを使ってURL画像を表示する
# はじめに
iOS15から[AsyncImage](https://developer.apple.com/documentation/swiftui/asyncimage)が使用できます。
これを使用することでURL画像が表示できるようになります。
便利ですねーただiOS15からなので使えるようになるのはまだ先になりそうです。
# 実装方法
### 標準
“`swift
import SwiftUIstruct ContentView: View {
private let url = “https://s3-ap-northeast-1.amazonaws.com/qiita-image-store/0/1745371/16fffb96aaa9ea64e44d21f407f053ca3445a99b/x_large.png?1633600430”
var body: some View {
AsyncImage(url: URL(string: url))
}
}
“`
![スクリーンショット 2022-11-18 13.42
【SwiftUI】RenameButtonってものが追加されてるけどこれ意味なくね??
# はじめに
SwiftUIに[RenameButton](https://developer.apple.com/documentation/swiftui/renamebutton)というUIコンポーネントが追加されていました。
iOS16から使用できます# デザイン
![スクリーンショット 2022-11-17 20.01.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/9eb152c0-6940-7a52-9b1f-1e280cbcb298.png)
ボタンスタイルが使用できます。
しかし、アイコンやテキストは変更できないっぽいです。# 使い方
“`swift
import SwiftUIstruct ContentView: View {
var body: some View {
RenameButton()
.renameAction {
// ここにアクション
URLSession × async await で通信処理を書いてみる
前回、Combineでエラーハンドリングとかも含めた比較的丁寧な通信処理を書いたのですが、
`async await`について今更ながら勉強したし、比較も兼ねて、`async await`バージョンも書いてみました。前回のCombine版はこちら!
https://qiita.com/kamomeKUN/items/fc6f1ed512f90d5df47c
Request/Responseの共通化に関する説明はこちらの記事にしか載せてないので、その部分を知りたい方はぜひこちらの記事をご覧いただけると幸いです。
## async awaitについて
* Swift5.5から使えるようになった新しい技術
* `async` `await`キーワードを使うことで、非同期処理についてネストが深くならないような書き方ができる
* `completion`を使う方法だと複雑な処理になったときに、`completion`忘れ、コードを追うのが大変になるが、`async await`はその心配がない
* コンパイラーによるコードチェックが手厚い
などのメリットがあります。こちらの解説サイ
【SwiftUI】SFSafariViewControllerを使う
# はじめに
昨日に引き続き、KeyboardKitでお世話になっている[danielsaidi](https://github.com/danielsaidi)さんのライブラリを見てたら[WebViewKit](https://github.com/danielsaidi/WebViewKit)というものを見つけました。
便利だったので紹介します。ただSFSafariViewControllerを使うためだけにライブラリを使うのは気が引けると思うので中身のコードも載せときます。
# 動画
![Simulator Screen Recording – iPhone 14 – 2022-11-15 at 19.55.26.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/f5f8dcf5-05ac-c048-0f32-df1bb19d4a6d.gif)# 使い方
“`swift
import SwiftUI
import WebViewKitstruct ContentVie
【SwiftUI】タグリストを作成できる便利なライブラリ
# はじめに
1から自作でタグリストを作成するとかなりの労力がかかると思います。
KeyboardKitでお世話になっている[danielsaidi](https://github.com/danielsaidi)さんがタグリストを簡単に実装できるライブラリを公開していたので使ってみました。# ライブラリ
https://github.com/danielsaidi/TagKit# 完成形
![Simulator Screen Recording – iPhone 14 Pro – 2022-11-14 at 20.21.13.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/488cf181-2a3a-9823-a0e7-440db6b11856.gif)# データ
今回はマーベルの映画をタグリストに表示します
“`swift
let marvels = [“アイアンマン”, “インクレディブル・ハルク”, “アイアンマン2”, “マイティ・ソー”, “キャプテン・アメリカ/
SourceTreeで2つ以上のプロジェクトを1つにまとめる方法
## 概要
特に、記事にするまでもないと思いますが、備忘録として便利機能について投稿します。
SourceTreeを使っていて、2つ以上のアプリのウィンドウを稼働すること、ありますよね?
そんな場合に、個々のウィンドウを開かなくていいように1つのウィンドウに2つ以上のアプリのウィンドウをタブによる切り替えで表示を切り替えすることができます!## 使用方法
①SourceTreeで、いくつかのウィンドウを開く
以下の画面で、1つのウィンドウにまとめたいプロジェクトをいくつか選択して開いておきます。
![938f7e9e1c008e127b1cadf7dfb3cfa8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2630898/50b08a36-faab-b1fc-4d9d-84c59b098db6.png)②開いたリポジトリを開いた状態で、メニューバーからウィンドウを選択する
その名の通り、メニューバーにあるウィンドウを選択します。
![メニューバー](https://gyazo.com/ed
【Xcode】ターゲット名を変更する
# はじめに
私が1番最初にリリースしたアプリはApp Extensionをいくつか使っています。
当時はよくわかっていなかったのでターゲット名をActionSheetなどにしていました。
そのおかしなターゲット名を変更したのでその時の方法を記録しておきます。# リネームしたいターゲット
![スクリーンショット 2022-11-13 19.22.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/19bee3fd-57f6-49e1-d552-89ddca712834.png)`ActionSheet` から `PerformConditions`に変更したいと思います
# やりかた
### ターゲットをリネーム
リネームしたいターゲットをダブルクリックして編集モードにします。
編集モードになったら変更したい名前に変えます。
![スクリーンショット 2022-11-13 19.32.50.png](https://qiita-image-store.s3.ap-northeas
Flutterで独自のサービスを開発するまで3
# Firebaseを利用してデータベースを構築する
## 今回の記事で実施すること
– チャット機能作成で必要なデータベースの構築
– FirebaseでのFirestoreデータベース作成
– Firestoreへの接続
– コレクションの作成及びデータの表示と取得## FlutterプロジェクトとFirebaseの接続手順については以下を参照とする。(qiita記事の引用)
[Flutter Firebase 接続 設定方法](https://qiita.com/tatsukikane/items/a54b79cd1fa73f3df2ad)Firebaseトップページ
> マネジメントコンソール上左側の「構築」というタブを表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2922623/da7a74a6-4cf1-9c1b-dd06-642dc2f94ac3.png)> Firestore Databaseを選択する。
![image.png](https://qi
Flutterで独自のサービスを開発するまで2
# Flutterを使うことで得られる技術的知見について
– dart言語の習得
– Flutterを使ってモバイルアプリのバックエンドとフロントエンドの学習ができる
– モバイルアプリ(ios,Android)開発の流れを知る
– リリースまでの流れがわかる
– モバイルアプリの仕組みがわかる
– AndroidStudioの使用方法:追加
– Xcodeの使用方法:追加
– Firebaseの使用方法(主にバックエンドを担うつもりで使用しようと思っています。使わない可能性も。。):追加## 読み手のメリット
– Flutterでの開発方法がわかる。
– iosアプリ開発の過程がわかる。
– dart言語を利用してクロスプラットフォームでの開発がわかる。
– iosアプリのバックエンドとフロントエンドの構成がわかる。
– モバイルアプリのリリース方法までのやり方がわかる。## 対象読者について
– Flutterをやってみたい人
– モバイルアプリの開発に興味がある人
– 柔軟に開発を行いたい人## Flutterのクロスプラットフォームを使ったモバイルアプリの開発方法
Flutterで独自のサービスを開発するまで
# Flutterを使うことで得られる技術的知見について
– dart言語の習得
– Flutterを使ってモバイルアプリのバックエンドとフロントエンドの学習ができる
– モバイルアプリ(ios,Android)開発の流れを知る
– リリースまでの流れがわかる
– モバイルアプリの仕組みがわかる## 読み手のメリット
– Flutterでの開発方法がわかる。
– iosアプリ開発の過程がわかる。
– dart言語を利用してクロスプラットフォームでの開発がわかる。
– iosアプリのバックエンドとフロントエンドの構成がわかる。
– モバイルアプリのリリース方法までのやり方がわかる。## 対象読者について
– Flutterをやってみたい人
– モバイルアプリの開発に興味がある人
– 柔軟に開発を行いたい人## Flutterのクロスプラットフォームを使ったモバイルアプリの開発方法について(随時更新)
開発する手順としては以下の通りです。> ①Flutter開発環境の構築
②dart言語の基礎を学習
③Flutterを実際にいじってみる。
④いじりながら開発を行い修正する