iOS関連のことを調べてみた2023年02月09日

iOS関連のことを調べてみた2023年02月09日

【Xcode】検索機能をフル活用しよう

# はじめに
最近は忙しくて時間がないのでなるべく作業を効率化したいです。
最高に作業を効率化できるXcode検索コマンドを記事にします。

# 検索方法
### ファイル内検索
`command` + `F`

![スクリーンショット 2023-02-08 20.47.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/e7ddb1bb-aaa9-e2bb-608f-a289223dfed4.png)

### プロジェクト内検索
`command` + `shift` + `F`

![スクリーンショット 2023-02-08 20.50.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/e7974ef0-79c2-b39b-b2cd-16ee568b2f57.png)

### Open Quickly
`command` + `shift` + `O`

![スクリーンショット

元記事を表示

【Flutter】スプラッシュスクリーンにアニメーションを導入する

## 完成物はこちら
engolf_splash_compress.gif

## Lottieとは

https://lottiefiles.com/

Lottieはオープンソースのアニメーションファイル形式です。
このファイルの特徴は、ファイルサイズの軽量化、高品質、インタラクティブ、実行時に操作が可能な点です。

現在、App Storeのトップ500のアプリケーションは、ユーザーを引き付け、コンバージョンを高めるためにLottieを使用しているそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261934/e41c091c-b03f-4bf0-9f50-889cb2d502c3.png)

## 構

元記事を表示

AR FoundationのAR Occlusion Managerを使ったときって実機でどこまで動くの?

## 事の始まり
AR FoundationにAR Occlusion Managerってあるなぁ
でもAR CoreとAR Kitでオクルージョンの処理は別ものなのにどうやって共通化しているんだろ?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/705249/84616200-b776-3946-38b0-0970b137149c.png)

実機で見たときにどんな動作の違いが出るんだろうか??

検証しました!

## 環境
Unity 2019.4.29f1
AR Foundation 4.1.7

Device:
* Android
* SONY Xperia 1 III (Depth API対応機種)
* Huawei P20 Pro(Depth API非対応機種)
* iOS
* iPhone 13 Pro Max (LiDAR搭載機種)
* iPhone 11 (LiDAR非搭載機種)

## やったこと
ARアプリを作成、AR Occlus

元記事を表示

[iOS]Excluded Architecturesにarm64を指定するとArchiveできなくなる解決法

こんにちは。[virapture株式会社](https://virapture.com)でCEOしながら[ラグナロク株式会社](https://ragna-rock.com)でもCKOとして働いている[@mogmet](https://twitter.com/mogmet)です。

今回はトラブルシュート記事です。

M1 MacなどのAppleSiliconなmacを使ってiosアプリをemulatorでビルド・起動しているとこんなエラーに遭遇すると思います。

> In /project/Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(aligned_new_bca0ac320467a2457b3e306bfed17856.o), building for iOS Simulator, but linking in object file built for iOS, file ‘/project/Pods/FirebaseAnalytics/Framew

元記事を表示

【Xcode】シュミレーターにペーストしたい

# はじめに
iOS開発をしているときに、Macでコピーした内容をシュミレーターにペーストしたい時があると思います。

https://wayohoo.com/article/4088

このようなやり方でできるそうですが、私の環境ではできませんでした。
他にやり方がないか調べていたらstackoverflowにあったので記録しておきます。

最初に言っておきますが、日本語入力はできませんでした笑

# 設定方法
下記のリンクを開きます。

https://www.icloud.com/shortcuts/603da847b5dd48eebe010be1c056639e

「ショートカットを入手」を選択します。
![スクリーンショット 2023-02-07 21.55.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/3296f1a2-e310-b664-5ebb-b9116b5ff7d8.png)

「ショートカットを開く」を選択します。
![スクリーンショット 2023-02-07

元記事を表示

【Swift】Lazy Propertiesについて、AIに聞いてみた

## 今回書いたきっかけ
自分のなんとなく使ってるものについて、誰かに聞こうと思ったけど上司がいない!!
ので、AIに教えてもらいました。

## AIに指示出し
わかりやすく、簡潔に指示を出す
主は英語ができないので日本語で指示出しをした。
“`
SwiftのLazy Propertiesについて、コードを用いて説明してください
“`
## AIからの返答
SwiftのLazy Propertiesは、必要になるまで初期化されないプロパティです。
これは、初期化することによって処理に多くの時間がかかるような大きなプロパティの場合に特に便利です。
Lazy Propertiesは、以下のように宣言します:

“`Swift
class MyClass {
lazy var heavyComputation: Int = {
// ここで重い処理を行う
return 42
}()
}
“`

## 結論
View生成時に重くなり画面遷移に支障がある場合に使うのが良さそうですね。
さすがAI。Swift歴4年目の俺よりわかりやすい説明

元記事を表示

【SwiftUI】Previewで@Stateを使用したい

# はじめに
SwiftUIでBindingを使用するとPreviewの時にどうすればいいのか迷いますよね。
私が初学者の時はどうするのかわからずにPreviewを消してました。
同じような問題で困ってる人のために記事にします。

# やりかた
“`diff_swift:ContentView
import SwiftUI

struct ContentView: View {
@Binding var text: String
var body: some View {
Text(text)
}
}

struct ContentView_Previews: PreviewProvider {
+ @State static var text: String = “テスト”
static var previews: some View {
ContentView(text: $text)
}
}
“`

:::note info
**ポイント**
`@State`に`static`を付けます。
:::

元記事を表示

【Swift,iOS】いい感じのアドバイスをくれるアプリを作ってみた

# やりたいこと
* いい感じのアドバイスをくれるAPIを使って、いい感じのアドバイスを画面に表示させたい

1\. Advice Slip JSON API というものを使っていい感じのアドバイスを英語で取得
2\. 取得した英語のアドバイスをDeepLのAPIを使って翻訳
3\. 画面に表示
この流れでやっていきます。

## 完成図

画面をタップするとアドバイスが更新されます。

## やってみる

https://api.adviceslip.com/advice

Swift ファイル情報の備忘録

# **Swiftでファイルサイズを取得**

FileManagerのattributesOfItemを使って、ファイルサイズを取得することができます。
NSDictionaryに型をキャストすることによって、用意された関数を使用することができます。
[Apple attributesOfItem](https://developer.apple.com/documentation/foundation/filemanager/1410452-attributesofitem)

使い方

“`swift
import Foundation
let fileManager = FileManager.default
guard let attribute = try? fileManager.attributesOfItem(atPath: “パス”) as NSDictionary else { return }
print(attribute.fileSize())
“`
# Swiftでファイル作成日を取得
“`swift
print(attribute.fileCrea

元記事を表示

クラッシュリティクスをSlack通知する(10分で設定できるヨ)

# はじめに

毎朝毎朝、手作業でクラッシュリティクスを確認している明田です。
確認してはクラッシュが出ていない。
クラッシュが出ていない
クラッシュが…..

み、見つけた!クラッシュだ!!と本来喜んではいけないのに高ぶる気持ちを抑えられません。
まるで事件現場を発見したどっかの少年探偵団みたいな気持ちです。
![コナン.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1967088/37ca6674-df89-2804-d3db-3f7ce6560b77.jpeg)
そこから犯人(原因)探しをし修正してクラッシュ解決となるのですが、なんといっても
– 手作業での確認作業が面倒
– 発見して課題化したのに誰かが解決済み
– これは連携ミス。
– 確認が属人化してしまっている
– 運用しているサービスが多いと確認数が増える

など確認作業には多くデメリットが存在します。

くそー何か何かいい方法は…
ざわ…何かいい方法はないのか。
ざわ…:bulb:!!
圧倒的閃き・・・!僥倖

元記事を表示

SwiftUIの技術選定まとめ

# Overview

iOS13から SwiftUIとCombineが導入され、Swift5.5から async awaitが導入され、既存のUIKitの実装から大きく変化が求められてきています。

SwiftUIの紹介から数年が経ったことで、大分関連記事や事例紹介が増えてきました。iOS13未満をサポート対象にしていたアプリも徐々に減り、これらのリファクタリングタスクが必要となってきています。

# 技術選定の観点

この記事の大きな焦点は2点です。

– SwiftUIの提唱する “Single Source of Truth” と Combine実装の共存
– Combineの非同期処理と Swiftのasync/awaitによる非同期処理の使い分け

私はこれらの問題をUI アーキテクチャで綺麗に実装することで、それぞれの強みを最大限に生かすことができると考えます。以下の図のようにMVVM アーキテクチャを設計します。
![MVVM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/168714/

元記事を表示

ジェネリクスを簡単にアウトプット

## はじめに
ジェネリクスを利用すれば複数の型においても汎用的な処理を実装できる。また、ジェネリクスのコンセプトとしては入力値の型も任意にすることによってプログラムの汎用性をさらに高めるものである。尚、今回はジェネリクス「関数」を例にして記載する。

## 対象者
この記事は下記のような人を対象にしている。

– プログラミング初学者

## 詳細
– 超簡単に言うと IntやStringなど型に捉われず汎用的に型の定義や処理を実装できる
– ジェネリクスの基本定義
– func 関数名<型引数>(引数名: 型引数) -> 戻り値の型 { 関数の呼び出しに実行される文 }
– 戻り値にもジェネリクスを定義できる。
“`swift:Swift
//Tというジェネリクスを引数に取り、Tというジェネリクスを返す
//が意味するのは、「AdditiveArithmeticプロトコルに準拠したあらゆる型」と言う意味。加算などを可能にするプロトコル。
func sum(a: T

元記事を表示

【Xcode】ライブラリが認識されていない時の対処法

# はじめに
WWDC2019の「[Creating Swift Packages](https://developer.apple.com/videos/play/wwdc2019/410)」を見ていたら新発見があったので記録しておきます。
SwiftPMでライブラリを導入してもimportできない時ないですか??
Xcodeが重い時に多い気がします。

それを解決できるコマンドをWWCDでしれっと披露してました笑

# コマンド
`command` + `option` + `P`

# 該当場面
4:30くらいでした。
![スクリーンショット 2023-02-05 21.46.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1dc080a6-54d2-fd99-a72a-4d4f022bbc19.png)
![スクリーンショット 2023-02-05 21.46.30.png](https://qiita-image-store.s3.ap-northeast-1.amazon

元記事を表示

【初心者向け】Flutter, SolidityでDappsを作る方法 (Metamaskとも連携)

今回の記事では、Solidity & Flutterを使って、Dappsを作る方法を解説します。

アプリの内容としては、「アプリ→メタマスクに接続→口座にトークンを発行する」というFaucetアプリを作るというものになっています。
画像ではこんな感じ。
SwiftUIでスプラッシュ画面を実装してみた

## はじめに
今回、アプリの初期起動時のみに表示される画面を実装したので、メモします。

## 実装方法
やったこととしては、とてもシンプルで画面起動時にContentView内で分岐処理をして切り替えただけです。

“` swift:code
import SwiftUI

struct ContentView: View {

@State private var isLoading = true
@State var selectedTag = 1

var body: some View {
if isLoading{
// 画面起動時に呼ばれる
// StartUpViewは、別で作ったViewになります
StartUpView().onAppear {
// 画面が起動してから1.5秒後に[isLoading = false]を代入
DispatchQueue.main.asyncAfter(de

元記事を表示

LinuxでiPhoneを接続して写真などを転送する方法

# LinuxでiPhoneとデータ転送を行う

今回はLinuxでiPhoneをUSB接続してデータ転送(差分バックアップ)を行います。

## 用意するもの
– iPhone
– Linuxマシン (今回はArch Linuxを使用します。)
– USB A => Lightningケーブル
– パッケージ [libimobiledevice](https://www.archlinux.jp/packages/?name=libimobiledevice)

マシン詳細

“`sh:Terminal
$ uname -a
Linux haruki 6.1.7-hardened1-1-hardened #1 SMP PREEMPT_DYNAMIC Thu, 19 Jan 2023 00:16:46 +0000 x86_64 GNU/Linux

$ cat /etc/os-release
NAME=”Arch Linux”
PRETTY_NAME=”Arch Linux”
ID=arch
BUILD_ID=rol

元記事を表示

【SwiftUI】特定の条件でのみアニメーションをループさせる

# はじめに
特定条件の場合のみ、ループアニメーションを付与します。

# サンプルアプリ
![Simulator Screen Recording – iPhone 14 Pro – 2023-02-04 at 20.16.09.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/faa55b56-cd37-17fb-418a-d5e86db9e477.gif)

# やりかた
“`swift:ContentView
import SwiftUI

struct ContentView: View {
@State var isAnimation: Bool = false
var body: some View {
VStack(spacing: 50) {
Toggle(“”, isOn: $isAnimation)
.labelsHidden()

Button {

元記事を表示

Push通知の証明書だけ切れた場合(p12形式)

# はじめに
「あれ?急にiOSアプリにPush通知が届かなくなった」、そんなことないでしょうか?

私は今週ちょうどありました。

色々調べてもらって、原因っぽいのがFirebaseに登録している証明書が期限切れになっていたこと。
「じゃあ、証明書更新するか(管理上の問題でPJで更新作業ができるのは私だけ)…」
「あれ?前どうやったっけ?Wikiに書いたけど、Wikiを読んでも記憶が…」

ってことになりました。
キャプチャ付きでWikiを書いておけばいいのですが、前回はトラブルシューティングとしてあれこれやった結果、解決した…って感じだったので、テキストで要点しか残っておらず…

今回もそうなりそうですが、ひとまずOutputすることで記憶の定着に役立てばと思い記事を書いています。

※この記事は主に自分自身の備忘録です。
※iOSはメインスキルではないので、理解が誤っている部分もあるかもしれません?

# やったこと(テキストメモ)

– 認証局に証明書をリクエスト(使用するメールアドレスは管理者権限のアドレスを使用)
– AppleDeveloperでCerti

元記事を表示

超旧式 iOS でストレージが不思議に一杯に?!

10年以上前に購入した iPad 2 をまだ使っている。iOS はこのモデルの最終版 9.3.5。最新のアプリはもちろんのこと、普通のネットのブラウジングもほぼ全く不可能。
でも、音楽の再生には充分。Music アプリの他、LAN のストリーミングサーバー Jellyfin をブラウザーでアクセス(Jellyfin アプリは使えない)、そして NHK のラジオアプリを使っている。Jellyfin はたまに落るが、NHK アプリ全く問題ない。

それが、数ヶ月前から「ストレージ一杯」の警告が出始めた。いらないメディアやテータ、古いアプリを消してみた。でも時間が経つとまたストレージが減って行く。更に削減。全ての写真と音楽ファイルを削除。

それでも。結局消せるものを全て消しても、64GB のストレージの残量が 0 バイトに。アプリの一時的データも保存できないので、操作がガクっと遅くなる。もう使い物にならない。詳細を見ると、ストレージを所有しているのは90%以上が「その他」。(古い OS でデバイス上では見れないが、iTunes で見れる。)。つまり、OS が内部で取っている一時データで、設

元記事を表示

【SwiftUI】複数行のLinkを左寄せにしたい

# はじめに
先日SwiftUIの[Link](https://developer.apple.com/documentation/swiftui/link)を使用した際に、複数行の要素を**左寄せ**(=alignmentをleft)にしたかったのですが、少し実装に苦戦したので備忘録です。

以下のキャプチャの、1枚目の状態から2枚目の状態にする為の実装方法について書きます。URLが左寄せになっています。

# 上手くいかなかった方法
まず思い浮かぶのは下記の様

元記事を表示

OTHERカテゴリの最新記事