- 1. 【SwiftUI】タグリストを作成できる便利なライブラリ
- 2. SourceTreeで2つ以上のプロジェクトを1つにまとめる方法
- 3. 【Xcode】ターゲット名を変更する
- 4. Flutterで独自のサービスを開発するまで3
- 5. Flutterで独自のサービスを開発するまで2
- 6. Flutterで独自のサービスを開発するまで
- 7. 【SwiftUI】Gaugeを使ってみた
- 8. 継承
- 9. UnityのiOSビルドで、Xcodeでprovisioning profile設定しているのにしていないエラーが出るときの対応方法
- 10. 【SwiftUI】UIWindowを使うときの注意点
- 11. 【Flutter】モバイルの設定画面へ遷移する
- 12. iOSアプリで端末のシリアル番号を取得する方法(MDM必須)
- 13. iOSアプリで画面上のQRコード部分のみ輝度を上げ(WWDC 2022, iOS 16, Metal, EDRレンダリング)
- 14. macOS Venturaにアップデートしたら、「xcode14.1」を要求された
- 15. 【Xcode】低速通信をテストする
- 16. iOS 秋の新色 2022年版 (iOS16)
- 17. 【SwiftUI】PreviewでRunScriptが走らないようにする
- 18. UnityのiOS版→Xcodeビルド時にccacheを使う
- 19. Swift JSON+CodableでURL変換できない文字列をOptionalにする
- 20. 【SwiftLint】バージョンを指定しないと機能しない設定があるらしい
【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を実際にいじってみる。
④いじりながら開発を行い修正する
【SwiftUI】Gaugeを使ってみた
# はじめに
`Gauge`はiOS16から使用できるUIコンポーネントです。
初めて触ったので記録しておきます。# どんなものか
![Simulator Screen Recording – iPhone 14 – 2022-11-12 at 18.03.29.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/6d84243e-91ce-d262-a060-3f8a1787ad04.gif)# スタイル
### accessoryCircular
![Simulator Screen Recording – iPhone 14 – 2022-11-12 at 18.05.16.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/dbdb7d4f-6f93-da62-120e-93de8cf14903.gif)
“`swift
import SwiftUIstruct ContentV
継承
## はじめに
前回のオーバーライドに引き続き、続編という形で継承について簡単にまとめる。
– 前回の記事
https://qiita.com/RammaruIshii/items/03b068a7f90b8b31df54
## 対象者
この記事は下記のような人を対象にしている。– 駆け出しエンジニア
– プログラミング初学者## 継承詳細
– 継承とは、親クラスの属性を引き継いで、新たなクラス(子クラス)を作ることである。
– 継承「される」クラスを親クラス or スーパークラスと言い、継承「する」クラスを子クラス or サブクラスという。
– 親クラスで定義したプロパティやメソッドは子クラスで自動的に呼び出せる(インスタンス化時も同様)
– 定義の仕方 class 子クラス名: 親クラス名{}
“`swift:Swift
//親クラス定義
class People {
var name: String
var age: Intinit(name: String, age: Int = 10) {
self.name
UnityのiOSビルドで、Xcodeでprovisioning profile設定しているのにしていないエラーが出るときの対応方法
おまじないのような対応方法です・・・。
# エラー
UnityでiOSビルドして、Xcodeで開いて、いざ実機で実行しようとしたら出たエラー。“`text
Showing All Messages
“Unity-iPhone” requires a provisioning profile. Select a provisioning profile in the Signing & Capabilities editor.
“`![Unity-iPhone_—_Unity-iPhone_xcodeproj_と_SampleScene_-_arkitstream-sample_-_iOS_-_Unity_2021_3_0f1__Metal_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506075/58f49d41-9974-83bf-d086-a8983128a9a9.png)
Xcodeで見直してみても設定している。
どうすればと思っていたら・・・。# 対応方法
Unityでお
【SwiftUI】UIWindowを使うときの注意点
# はじめに
UIWindowをSwiftUIで使う際に落とし穴があるので記事にしておきます。# 悪い例
“`swift
let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene
“`# 良い例
“`swift
let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene
“`# 悪い例を使うとどうなるか
iPadでクラッシュする# おわり
何が正解かわかりませんが、
もしかしたら、SceneDelegateから取得する方法が正しい方法かもしれませんhttps://zenn.dev/usk2000/articles/1a1a433500b03a
https://qiita.com/shiz/items/3b829b1521f9723aa875
https://zenn.dev/kon
【Flutter】モバイルの設定画面へ遷移する
# 要件
アプリからOSの設定画面へ遷移したい# SDK
既存のSDKで実現できるかを調べてみました。
下記のSDKでOSのアプリ設定画面が開けます。
– [permission_handler](https://pub.dev/packages/permission_handler)
– [app_settings](https://pub.dev/packages/app_settings)
permission_handlerについて、iOSとAndroidともOSのアプリを開けます。
サンプルソースは下記です。
“`dart
import ‘package:permission_handler/permission_handler.dart’;TextButton(
onPressed: () async {
openAppSettings();
},
style: TextButton.styleFrom(
primary: Colors.blue,
),
child: Text(‘設定を開く’),
),
“`
iOSアプリで端末のシリアル番号を取得する方法(MDM必須)
# そもそも可能?→普通はできない
iOSにおいて、アプリから端末のシリアル番号は取得できません。(UDIDも同様かと思います)
ただし、以下の場合はどうにかできます。:::note info
MDMで管理されたデバイスで、Enterpriseアプリ等を使用する場合
::::::note alert
AppStoreで配布するアプリで一般公開する場合ではできません
:::※MDMというのは企業・学校などが社員・学生用端末を管理するための管理プラットフォームです。
予め管理する端末をMDMに登録しておきます。
Apple Business Managerとか、Apple Configuratorとかで調べると情報があるかと思います。
ちなみに、この仕組でAppleのEnterpriseアプリを配布するには結構敷居が高いです。
(厳しい審査があり、100名以上の社員数などいろいろ条件があります)過去に、Enterpriseアプリを不正利用した会社があるので仕方ないですね。
(Enterpriseアプリを一般公開・配布していた事件)# どうするの?→アプリ管理設定プロフ
iOSアプリで画面上のQRコード部分のみ輝度を上げ(WWDC 2022, iOS 16, Metal, EDRレンダリング)
WWDC 2022で発表されたMetalの新機能では、EDRを使って画面画像の一部分だけを明るく(現在設定されている画面の明るさ以上)することができます。
| 部屋の明かりを消して最小限の明るさの画面 |
|—|
| |
| 一番下のQRコードは通常のImageビューです |:::note
※Apple Developerの公開Session/Documentation/Sample Codeページだけを使ってこの記事を執筆しました。
:::# 背景
QRコード決済画面を表示する場合、通常、画面全体の輝度が高くなり(夜間に開くと気分が悪くなることがある。。。)
また、アプリ側で輝度の設定と復元を手動で行う必要があります。
# WWDC 2022で公開された新機能
Metalフレームワークの新しいダイナ
macOS Venturaにアップデートしたら、「xcode14.1」を要求された
## MacOS Venturaが登場!
2022/10/25にMacの新OSである、「Ventura」がリリースされました!Apple好きな私としては、早速アップデートだ!
しかしhomebrew使用時エラーが出た。。?そこで問題と解決法を簡単にまとめてみました。
## Venturaでは、Xcode14.1を要求してくる
OSをVenturaにアップデートした後、
Homebrewを使っていたところ以下のエラーが出ました。“`
Error: Your Xcode (14.0.1) is too outdated.
Please update to Xcode 14.1 (or delete it).
“`
ああ、xcode14.1を入れろってことかー
てことで今度はAppleのページから最新版をダウンロード
しようとしたところ、最新は「14.0.1」になっている。。なにこれ?詰んでね?
:::note info
2022年11月2日にXcode14.1が正式にリリースされているので、
現在は問題なく動作すると思われます。
:::https://moshb
【Xcode】低速通信をテストする
# はじめに
通信状況が悪い場合にだけ発生する厄介なバグが稀に発生しますよね
低速通信を自分の環境で再現したいと思った時に、「あれ、どうやってやるんだ?」と思ったので方法を記録しておきます。# やりかた
[ここ](https://developer.apple.com/download/all/)て「 Additional Tools for Xcode」と検索します。
自分が使用しているXcodeのバージョンを探してインストールします。
![スクリーンショット 2022-11-01 18.51.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/80480929-3292-7f23-9256-65b4e893d303.png)私はXcode14を使用しているので「Additional Tools for Xcode 14.dmg」でインストールします。
![スクリーンショット 2022-11-01 18.51.43.png](https://qiita-image-store.
iOS 秋の新色 2022年版 (iOS16)
## はじめに
iOSでプリセットされている色を調査していたところ、“`iOS14以降“`でも新色が追加されていることに気が付いたのでまとめてみました。## iOS 16
新色なし## iOS 15
### UIColor (UIKit)
#### Tint color| Name | Light mode | Dark mode |
|:—|:—|:—|
|tintColor|
(0, 122, 255)
#007AFF |
【SwiftUI】PreviewでRunScriptが走らないようにする
# はじめに
Preview時にRunScriptが走ってPreviewが長くなるという問題に直面したので、Previewの時はRunScriptを実行しないようにします。# 現在のスクリプト
[こちら](https://qiita.com/SNQ-2001/items/4ad7600e1bc9d90c839a)のスクリプトをサンプルとして使います
“`shell
export PATH=/opt/homebrew/bin:$PATHif which mint >/dev/null; then
# SwiftFormat
xcrun –sdk macosx mint run swiftformat .
else
echo ‘warning: mint not installed.’
fi
“`# 修正後のスクリプト
“`shell
export PATH=/opt/homebrew/bin:$PATHif which mint >/dev/null && [ \”$ENABLE_PREVIEWS\” == \”NO\” ]; then
UnityのiOS版→Xcodeビルド時にccacheを使う
Unityで出力したiOS版プロジェクトからccache使う方法がわかってきたのでメモ。
# 作業環境(2022.11.08時点)
– MacOS Ventura 13.0
– Xcode 14.1
– xcode-select –install を実行してあること
– Homebrew 3.6.9
– ccache 4.7.3
– Unity 2020.3.37f1
– iOS 16.1### 参考URL
ccache で Unity の生成する Xcode プロジェクトのビルドを高速化する
https://zenn.dev/pobo380/articles/1a5d838ee857e1M1 環境で Homebrew 導入コマンドを Xcode から叩けない場合の対処法
https://qiita.com/hugehoge/items/0f805c1a264488f7807c## ccacheのインストール
`brew install ccache`
## ccache_wrapper の作成
“`bash
#!/bin/bashif [ -d “
Swift JSON+CodableでURL変換できない文字列をOptionalにする
# 環境
Xcode 14.1# 概要
以前も[似たような記事](https://qiita.com/hyuga_amazia/items/7d2f7f4ae48ec37c1292)を書いていますが、JSONのレスポンスを解析するとき、`Codable`が使われますが、このときCodable対応したstructにURL型が含まれていて、それに対応するJSONのパラメータが`URL(string:)` で結果がnilになる文字列(空文字、日本語、スペースetc)の場合、DecodingErrorとなってしまいます。
エラーにならない対応とするため、URLとして変換できないものはOptionalにしたいと思います。
以前のコードでは別クラスを作っての対応を行なっていましたが、別クラスを使わずに対応できる方法を紹介します。## エラーになるCodable
“`swift
let json = “””
{
“id”: 1234,
“name”: “Hello World!”,
“url”: “”
}
“””.data(using: .utf8)struct M
【SwiftLint】バージョンを指定しないと機能しない設定があるらしい
# はじめに
SwiftLintを使っていたら警告文が出てきたので原因と修正方法を記録しておきます。# 警告文
![スクリーンショット 2022-11-05 23.35.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/4e4d5d1e-d35d-2e4e-cb33-d92a15ab9780.png)
“`
No Swift version was specified, so some formatting features were disabled. Specify the version of Swift you are using with the –swiftversion option, or by adding a .swift-version file to your project.
“`# 原因
Swiftのバージョンが指定されていない為、一部の書式設定機能が無効になっている# 解決方法
“`:ターミナル
cd プロジェクトフォルダ
“`
“