iOS関連のことを調べてみた2021年10月03日

iOS関連のことを調べてみた2021年10月03日
目次

【Unity】スマホXR開発の現在について

# はじめに
昨今はOculus QuestシリーズやPico Neoシリーズなどの非常に安価なVRデバイスが市場に流通し始めたため、AndroidやiOSなどのスマホVRはあまり使われなくなってきました。
しかし、現在でもスマホでできるVRは最も小さいVRデバイスであるため、最も普及しているVR対応デバイスであることには変わりがありません。
その点についてもっと注目を集めてもいいんではないか?と考え、スマホVRの現状について調査してみました。

# 開発環境Cardboard SDK
## GoogleVR(GVR)
スマホVRの最盛期で最も人気があったSDKです。
2014年にGoogle Cardboardという段ボールで作られたスマホを差し込むタイプのVRゴーグルが発売されました。
VRデバイスを体験したことがない人でもこのタイプのデバイスを見かけたことがある人は多いのではないでしょうか?
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1336886/e12b45e9-6b50-

元記事を表示

Make sure you’re running a packager server or have included a .jsbundle file in your application bundle.の対処法

Xcode:13
ReactNative:0.65.1

#エラー
iOS simulatorでビルドしようとしたら以下のようなエラーが…

“`
Make sure you’re running a packager server or have included a .jsbundle file in your application bundle.
“`

####<解決方法>
実機でのビルドを試したときに、AppDelegate.mの一部をコメントアウトした事が原因だった。

“`:変更前[AppDelegate.m]
// #if DEBUG
// return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@”index” fallbackResource:nil];
// #else
return [[NSBundle mainBundle] URLForResource:@”main” withExtension:@”jsbundle”];
// #endif
“`

元記事を表示

SwiftUIに関する非推奨のmodifireとその代替を一覧にしてみた

## はじめに
SwiftUIもiOS13から登場して今年で3年目になります。
初期の頃から見るとかなり使いやすく、また意図しない動作も減ってきています。
またその過程で非推奨もどんどん増えてきていますので
2021.10.1時点での非推奨と代替の一覧を作ってみました。
また以下公式ドキュメントにもありますので詳細はこちらをご覧ください。

[Deprecated Modifiers](https://developer.apple.com/documentation/swiftui/view-deprecated)

## 一覧
|非推奨|代替|
|—|—|
|colorScheme| preferredColorScheme|
|listRowPlatterColor|listItemTint|
|background(_:alignment:)|background(alignment:content :)|
|overlay(_:alignment:)|overlay(alignment:content:)|
|autocapitalization(_:)|textIn

元記事を表示

[Flutter] iOSのビルド時に Can’t load Kernel binary: Invalid kernel binary format version. のエラーが出た時の対処

## エラー内容
FlutterでiOSの実機でビルドを試みたときに、とあるエラーが出て一向に進まなくなりました。
コンソールには以下のようなエラーが出ていました。

“`
[VERBOSE-2:shell.cc(93)] Dart Error: Can’t load Kernel binary: Invalid kernel binary format version.
“`

## 対処法

まずターミナルで`which flutter`コマンドを流す。

“`
% which flutter
~/flutter/bin/flutter
“`
のようにFlutterのファイルディレクトリがわかるので、該当箇所まで行って
`flutter > bin > cache` をまるごと削除してしまいます。

その後は、`flutter clean`をすると先程削除したファイルが再度生成されるので、`flutter pub get` をしたらビルドが通りました。

Flutterのバージョンを上げて、そのあとダウングレードをしたあとにこのような減少に陥りました。

以上。

元記事を表示

Let’s Encrypt証明書を使ったメールサーバからの送受信がiOSでエラーになる場合の対処方法

# はじめに
無料SSL証明書を発行するLet’s Encryptで従来使用されていたDST Root CA X3証明書が2021年9月30日で使用できなくなり、これに伴い、この証明書で運用していた自身のメールサーバ(Postfix, Dovecot)につき、iOSでのメール送受信(SSL)ができなくなったので対応した。

# 結論
1. Let’s Encrypt証明書をいったん削除し、certbot コマンドに “`–preferred-chain “ISRG Root X1″“` オプションを追加して証明書を再作成する
1. PostfixおよびDovecotで、証明書として cert.pem ではなく **fullchain.pem** を指定する

# 経緯
– [この記事](https://ssl.sakura.ad.jp/column/letsencrypt-root-certificate/)のように、以前からLet’s Encryptで使用されていたDST Root X3のルート証明書は2021年9月30日で使用できなくなることは以前からアナウンスされていた。

元記事を表示

単位換算アプリの作成(swift)

#はじめに

###航空の世界は単位が多い
![83BCF875-DFFB-47F3-91A3-ADFCF12B7C51.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1261100/126eb816-369b-c3eb-0145-7d5e01f73900.jpeg)
>写真はwikipediaより

航空業界は日本では普段使用しない単位を多用します。
また使用する機種によっても単位が違いますので換算が必要です。
(例えば、アメリカ製のヘリコプターは燃料の単位にlbsを使うが
 日本製のヘリコプターは燃料にkgを使用します)

航空単位の例

| | 航空(米) | 通常(日本) |
|:-:|:-:|:-:|
| 高度 | ft | m |
| 重量 | lbs | kg |
| 距離 | NM | km |
| 速度 | kt | km/h |

###単位を間違えたことによる事故も発生している
[ユナイテッド航空173便燃料切れ墜落事故](https://ja.wikipe

元記事を表示

Cocos2d-x v4への移行 iOS編

cocos2d-x v3.17.2のcpp templateをベースに
v4へのmigrationを行う解説を行っていきます

旧バージョンのcocos2d-xからv4へのアップデートに
関心はあるがあまりiOS, Androidには習熟していないよ
という方向けです

私の知見が助力になれば幸いです

## [1.確認環境](#Migration-1)

– XCode 12.5.1
– CocoaPods 1.10.2
– CMake 3.15.3

## [2.Cocos2d-x v4ダウンロード](#Migration-2)

[github](https://github.com)にgithubに履歴を残していますので
差分や動作の確認にお使いください。

cocos2d-x v3.17.2のテンプレートから始めます。

ダウンロードしたcocos2d-xを解凍してフォルダ名をcocos2dに変更後
既存のcocos2dフォルダを置き換えます。

cocos2d-x v4 [ダウンロードリンク](https://www.

元記事を表示

Xcode13 (iOS15 SDK) 対応で UITabBar を修正した際にバッジ表示が崩れた場合の対処法

## 環境

– Xcode 13.0 (13A233)
– iOS 15.0

## 何が起こったのか

Xcode13 (iOS15 SDK) では `UITabBar` に対して、

– 背景色が透過してしまう、適用されない
– タブバー上部のボーダーが表示されない

といった問題が発生するため、 [UITabBar.standardAppearance](https://developer.apple.com/documentation/uikit/uitabbar/3198046-standardappearance) や [UITabBar.scrollEdgeAppearance](https://developer.apple.com/documentation/uikit/uitabbar/3750912-scrolledgeappearance) を設定するといった対応が必要となってきます。

具体的には、以下のようなコードです。

“`swift:UITabBar の Xcode13 対応
// 元々の実装
UITabBar.app

元記事を表示

Xcode(12)アイコン早見表

#
![xcode早見表.001.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1261100/b579c3cb-d1b0-1878-e320-406d56f5da2e.jpeg)

Xcodeの各アイコンの機能をまとめました。
まだ全部を覚えられていない初心者向けです。

元記事を表示

YAHOO! JAPAN Digital Hack Day 2021 参加レポート(チーム「あぐりメタル」)

**@kenmaro**です。
普段は主に**秘密計算、準同型暗号などの記事について投稿しています**。
秘密計算に関連するまとめの記事に関しては以下をご覧ください。

> – [秘密計算エンジニアを始めて1年が経った。](https://qiita.com/kenmaro/items/416657efca2ff296169b)
– [秘密計算エンジニアを始めて2年半が経った。](https://qiita.com/kenmaro/items/48059dd60f79e80f5ef8)

## 概要

![Screen Shot 2021-09-30 at 15.27.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/519792/5b3b38ad-4239-aa45-a1e4-697734dc1cff.png)

**YAHOO! JAPAN Digital Hack Day 2021 (以下ヤフーハッカソンと書きます。)
にチーム「あぐりメタル」として参加し、開発したプロダクト「Yorimic

元記事を表示

CombineとVIPERでアプリを構築する

## はじめに
iOS13以降、Frameworkとして提供されたCombine。
上記のおかげで外部ライブラリに頼らずにリアクティブプログラミングを使うことができるようになり、アプリを構築する上での選択肢の一つとして考えられている方も多いのではないでしょうか?
では、実際にアプリを作る上でどういった形でCombineを使っていくことになるか…
ということで、今回はCombineとVIPERを使って簡単なアプリ作ってみましたので、作ったアプリを元に処理の流れを記載していきます。

## CombineとVIPERとは
まずは、CombineとVIPERについて軽く紹介したいと思います。

*※ CombineとVIPERの詳細については、今回の本筋から逸れるため、詳細な説明はいたしません。
詳しくは知りたい方は別記事をご参照いただきますようお願いいたします。*

### Combineとは
イベントをどのように処理するかを宣言的に記述することができるAPIです。
関数型リアクティブプログラミング(FRP)のフレームワークであり、FRPだと他にはRxSwiftといった外部ライブラリが

元記事を表示

抵抗値のカラーコード表は二度と見たくないので、PyTorchでリアルタイムに物体検出をして抵抗値を計算してくれるスマホアプリをリリースしてみた

## これは何

スマホをかざすと、AIがリアルタイムに物体検出を行い抵抗値を判別してくれる抵抗値AI計算機というアプリを作成しました。

logo
Google Play で手に入れよう

元記事を表示

MVPについて

#はじめに

MVPは

“Model“
“View(View,ViewController)“
“Presenter“

の3つで構成されています。“MVC“では“View“と“ViewController“は分けて考えられていましたが、“MVP“においては“View“として扱われます。

#なぜMVPなのか

“MVC“では“ViewController“の責務が大きくなってしまうため、テストの容易性や作業分担のしやすさといった問題があります。それを解決するためのアプローチが“MVP“です。以下では、“MVP“における役割分担を“MVC“と交えながら確認していきます。(なお今回は“MVP“の中でも“PassiveView“パターンを取り扱います。)

##MVC
![2E0B0170-7948-47E7-BFFB-96A59F001A52.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1170864/961f67fe-ada2-b473

元記事を表示

アニメーションライブラリ「Comets」を使ってみた

# はじめに
Swiftのライブラリで「[Comets](https://github.com/cruisediary/Comets)」というアニメーションライブラリがちょっと気になったので触ってみました。

流れ星のような表現を簡単にできるライブラリで非常に簡単にアニメーションを実現できるので、その方法を記載します。

# 今回作ったアニメーション
早速ですが、今回作ったアニメーションは以下のようなもので、サンプルに沿ってコードを記載するとサクッと以下のようなアニメーションを実現できました。
![comets01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122007/0b16a6f0-d03a-d54c-0c13-2683e4288b59.gif)

# 作り方
## ライブラリのインストール
ライブラリのインストールにはCocoaPodsかCarthageが使えます。

“`:CocoaPods
pod “Comets”
“`

“`:Carthage
github “cruisedia

元記事を表示

iOS で物体の向きをリアルタイムに計算②【方向成分抽出、表示】

前回の記事[『iOS で物体の向きをリアルタイムに計算①【2D FFTでパワースペクトル画像生成】』](https://qiita.com/pic18f14k50/items/6ebba549ff411c11dd2a)の続きです。
パワースペクトルから方向を抽出して表示します。

<完成イメージ>
![demo2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71605/4c02cb64-213e-b775-b7dd-ddc1578b9ca6.gif) ![demo3.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/71605/169b0696-28dc-10ed-f54b-f4249c3a02eb.gif)

左上の赤い線が抽出した方向を表しています。
前回の記事のでは上半分の画像はFFTに入力する画像(周囲を暗くした画像)を表示していましたが、今回は暗くする前の画像を表示しています。

コードはGithubに置いてい

元記事を表示

Flutter&Codemagicを使用してMacなしでiOSアプリを開発および配布する方法

![remote-access-virtual-macos-build-machine.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2028491/232a98a9-8ce6-0e7d-e332-146282e392f6.png)

この投稿から、LinuxでiOSアプリを構築する方法を学びます。FlutterとCodemagicを使用すると、Macを使用せずにLinuxでiOSアプリを開発および配布できます。これにより、LinuxでのiOS開発が簡単になります。
ほとんどの場合、iOSアプリはmacOSマシンから開発および配布されます。macOSなしでiOSプラットフォーム用のアプリを開発することは想像しがたいものです。ただし、Flutterと[Codemagic](http://codemagic.io/)を組み合わせることで、macOSを使用せずにiOSアプリを開発および配布できます。 前回の投稿では、Macを使用せずにiOSアプリに[コード署名するプロセスについて説明しました](https:/

元記事を表示

外部ツール無しでiOS Appが生成されたファイルを取得する方法

iOS アプリの開発にあたって、アプリから生成された実機内のファイルの内容を確認する必要がある。

XCodeを起動する。ケーブルで実機と繋ぐ

以下のようにファイルをMacマシンに落とす。
iOS:Xcode → window → Devices→ Select the corresponding device → Select the corresponding app → Click the Settings button below the app list → Download Container → Right click the downloaded file
落とされたファイルで以下の操作でパッケージ中を開く
and select Show Package Contents → AppData → Library →

アプリの実行中にそれぞれ生成されるファイルが確認できる

元記事を表示

AppStoreリリース申請でGuideline 4.0 – Designによってリジェクトされた件

## 投稿の経緯
個人開発アプリをAppStoreへリリース申請した際に、**`Guideline 4.0 – Design`**によってリジェクトされたので内容と対処法について投稿しようと思います。

## 環境
macOS BigSur バージョン 11.6
Swift バージョン 5.5
Xcode バージョン 13.0

## リジェクト内容
> Guideline 4.0 – Design
We noticed an issue in your app that contributes to a lower quality user experience than Apple users expect:
– Your app included hard to read type or typography.
Next Steps
To resolve this issue, please revise your app to address all instances of this type of issue.
Resources
For information on im

元記事を表示

iOS 15: SNSアプリ向けのインテントにより、通知UIやSiriからの提案を改善。

この機能はSNSアプリ向けです。この機能を実装することで

– アプリのアイコンだけでなく、チャットのアバターが通知に表示されます。

(アプリアイコンは右下に表示されます。このデモではアプリアイコンは空白です。)

– システムの連絡先アプリや共有シートを通して、アプリ内の連絡先をシステムが提案できるようになります。

– ユーザーがフォーカスモードをオンにして、選択した相手だけからの通信を許可すると、これらの人たちがあなたのアプリを通じて送信したメッセージが通知されます。

– 通知サービス拡張機能を使って、あなたのリモート通知を画面に表示される前に編集することができます。

## プロジェクトの設定を行う

まず、あなたのXcodeプロジェクトの `Communication Notifications` の機能を有

元記事を表示

空の配列に対してallSatisfy(_:)を実行するとtrueが返ることとvacuous truth

# allSatisfy(_:)

`allSatisfy(_:)`はSwift4.4で追加された`Sequence`のメソッドで、すべての要素が与えられた条件を満たすかを判定するメソッドなのですが、このメソッドを空の配列で使うと`true`を返します。

このことはアップルの公式ドキュメントにも記載があります。

https://developer.apple.com/documentation/swift/array/2994715-allsatisfy

“`
If the sequence is empty, this method returns true.
“`

# 誤解: falseを返すと思っていた

自分は直感的に`false`を返すだろう、と思ってある判定式に使っていたのですがユニットテストが失敗してこの振る舞いに気が付きました。
空なんだから各要素は何も条件を満たしていないじゃないか、という考えでした。

ググってみるとswiftのフォーラムでも同じ疑問を持った方が質問をしていました。

https://forums.swift.org/t/unexpect

元記事を表示

OTHERカテゴリの最新記事