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

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

cordova-plugin-firebasexでiOSのみFirebase Cloud Messagingのプッシュ通知が届かない場合の対処

# 前提条件

cordova-plugin-firebasexがプロジェクトに含まれている
– GoogleService-Info.plistがプロジェクトに含まれている
– APNs認証キーまたはAPNs証明書がFirebaseにアップロードされている

# iOSだけFCMのプッシュ通知が届かない

MonacaIonicのドキュメント通りにコードを記述して、Androidではプッシュ通知が届くけど、iOSだけはプッシュ通知が届かない。
コンソール上には、FCMのトークンが表示されていて、 プラグインが正常に動作しているはずなのに、プッシュ通知が届かないことがあ

元記事を表示

self.navigationController is nilが調べても解決できない

## 結論

その偏移先のViewController, init使ってませんか?その中身はviewDidloadに移動して、init使うのはやめましょう。

## 経緯

 viewDidLoadではself.navigationControllerはnilになる、偏移先のViewControllerは偏移元のviewControllerのnavigatoinControllerのスタックの範囲外という情報が出てきますが、どれも効果なし。少し趣旨にはずれた質問の内容ですがこの記事の回答を見てinitをやめたところ解決しました。

https://www.generacodice.com/en/articolo/1696197/self.navigationcontroller-is-nil-even-if-called-with-initwithrootviewcontroller

元記事を表示

【Swift】プロトコル(protocol)の使い方

この記事は[レコチョク Advent Calendar 2021](https://qiita.com/advent-calendar/2021/recochoku)の18日目の記事となります。

## 自己紹介

はじめまして、株式会社レコチョクでiOSアプリの開発をしている新卒1年目の深山です!
邦ロック・ジャニーズ・ボカロが大好きで、たくさんのアーティストの情報を追うのに必死な毎日です!

そんな私が、10月に配属されてから2ヶ月の間でiOSアプリの開発に触れて学んだ**プロトコル**についてまとめたいと思います。

## 1. はじめに

Swiftには他言語でいうインタフェースに似た、**プロトコル(protocol)**という機能があります。

この記事では、

– プロトコルとは
– プロトコルの使用例
– プロパティ
– エクステンションの使い方

といった内容について解説していきます。

## 2. プロトコルとは

Swiftのプロトコルとは、クラスや構造体が保持するプロパティやメソッドなどの決まり事を定めるものです。
プロトコルを定義することによって、複

元記事を表示

【iOS】UIButtonの状態をコントールする

 UIButtonの[setTitle(_:for:)](https://developer.apple.com/documentation/uikit/uibutton/1624018-settitle)や[setImage(_:for:)](https://developer.apple.com/documentation/uikit/uibutton/1623997-setimage)メソッドを使用する際に、第2引数のforでUIControl.Stateを指定する必要があります。

## 1. UIControl.Stateとは
![スクリーンショット 2021-12-17 10.49.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/773915/a2156809-ce1c-46e6-820e-6cf646460084.png)
 [公式ドキュメント](https://developer.apple.com/documentation/uikit/uicontrol/state)では以下のよ

元記事を表示

[flutter]iOS実機テストを行おうとした際の`xcode doesn’t support xx’s iOS 15.1 (19B74).`エラーの解決方法

## この記事の目的

以下のエラーを解決し、実機テストを行う。

`xcode doesn’t support xxxxx’s iOS 15.1 (19B74).`

## 解決方法

– 以下のページから、該当versionのファイルをダウンロードする。

https://github.com/filsv/iPhoneOSDeviceSupport
![スクリーンショット_2021-12-18_0_50_57.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/270898/1cc78f75-8c37-cd5f-8e6e-aec4a29fa302.jpeg)

– ダウンロードしたファイルを解凍して、以下のフォルダに移動する。

“`
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
“`

![kota-ninomiya_—_-bash_—_122×31.jpg](https

元記事を表示

【Apple Store Connect】iPad用のスクリーンショット無しでiOSアプリをリリース申請する

#はじめに

iOSアプリとしてApple Store Connectで申請作業を進めていたら、通常だと下記のiPad用のスクリーンショットの提出を促され、審査に進めないかと思います。
> 12.9 インチ (第 2 世代 iPad Pro) 2048 x 2732 ピクセル(縦向き) 2732 x 2048 ピクセル(横向き)
>12.9 インチ (第 3 世代 iPad Pro) 2048 x 2732 ピクセル(縦向き) 2732 x 2048 ピクセル(横向き)

今回iPad用には提供しないため、わざわざスクリーンショットを用意するのは煩わしいと思い、どうにかならないか調べていたら下記方法でビルドすることでiPad用のスクリーンショットを用意しなくても審査を進めることが可能になりました:star:

# 対処法

### XcodeからDeploy Infoの設定を変更する
Xcode > Runner > TARGETS Runner > Generalタブから**Deployment Info**の設定項目から**iPad**のチェックを外す。

![スクリーンショット

元記事を表示

超簡単版iPhoneをWebex Deviceのリモコンにする方法【ノーコード】

#0.はじめに

滑り込みですが、Webex Advent Calendar 17日目に参加させていただきます。

実はQiitaで記事を書くのも初めてで、このためにアカウント作成したのですが、Webex Deviceの活用が盛り上がればいいなと思い書かせて頂きました。

本記事の着想および見出しについては、
[Webex Advent Calendar 2021 |15日目 @kunqi 様の記事](https://qiita.com/kunqi/items/090d1c59b9444832ea55 “iPadをWebex Deviceのリモコンにしてみた”)
を参考にさせて頂いております。
#1.背景

前提として、以下の実装を行うユーザアカウントと同じWebex組織にレジストしたWebex Deviceが必要になります。
(Webex Board, Webex Desk, Webex Roomkitなど)

Webex Deviceは見た目が非常にスタイリッシュでカッコイイこともあり、
お客様の注目を引きやすいです。(~~そのまま購入に繋がればなおいいのですが…~~)
製品紹介

元記事を表示

[Flutter] 動画プレイヤーを再実装する形でTexture Widgetについて調べてみた

この記事は「[Flutter Advent Calendar 2021](https://qiita.com/advent-calendar/2021/flutter)」の17日目の記事です。

FlutterにはiOS/Androidと言った「プラットフォーム側で用意されているView」や「ネイティブ側で再生した映像」などをWidgetとして表示する仕組みとして、「**[Texture Widget](https://api.flutter.dev/flutter/widgets/Texture-class.html)**」や「**[Platform Views](https://docs.flutter.dev/development/platform-integration/platform-views)**」と言った機能が存在します。

今回、前者の`Texture Widget`について調査してみたので備忘録序に纏めてみようと思います。
もし記事中で間違いや説明不足の箇所などあれば、コメントや編集リクエストなどで教えて頂けると幸いです。

なお、調査する上では以下の

元記事を表示

文字認識をiPhoneで簡単にしたいなら、VisionTextRecognitionで秒

#概要
画像から文字認識をする方法です。

#伝えたいこと
機械学習を使って文字を認識するのは、Visionのフレームワークで簡単にできます。

#解決したい課題
画像のテキストが難しい手続きなしで、パッと読み取れれば、たとえばOCRアプリなど、いろんなサービスに応用できます。

#解決手法
Visionを使います。
アップルのフレームワークで、機械学習ベースの文字認識が簡単に使えます。

###留意点
ただし、現在のところ日本語はサポートされていません。
>2021年 12月 現在のサポート言語
英語
フランス語
イタリア語
ドイツ語
スペイン語
ポルトガル語
中国語 簡体
中国語 繁体

“`swift
let request = VNRecognizeTextRequest()
let handler = VNImag

元記事を表示

ARKitのFaceTrackingを使ってゲームでよくみるあの入力を実装

こんにちは.株式会社ZOZOでiOSエンジニアとして内定者アルバイトをしている[@thenagain](https://github.com/thenagain)です.
本記事は[ZOZO Advent Calendar 2021](https://qiita.com/advent-calendar/2021/zozo)のカレンダー5の17日目の記事です.

#はじめに
ナンバリングが増すごとにワクワクする機能もどんどん増えていく[ARKit](https://developer.apple.com/jp/augmented-reality/arkit/)ですが,今年にリリースされたARKit 5の主なアップデートは以下の2点です.4と比べるとちょっと寂しい?

* **フェイストラッキングの対応拡大**
* A12 Bionicチップ以降を搭載したすべてのデバイスのフロントカメラで利用可能に
* **ロケーションアンカー**
* 街中や人気のスポットなど,特定の場所にAR体験を配置

今回はその対応拡大したという**フェイストラッキング**を使って**ゲームでよくみる

元記事を表示

2021年12月 iOS Human Interface Guidlineの翻訳版 vol.1

## 読み方
日本人はまず日本語で読むのが早いでしょ…英語で頑張って読まないで。という思いのもと、日本語訳をDeepL先生に訳してもらったものを掲載していきます。日本語がおかしいと思ったところは英語で読めるように英語も記載しておきます。基本的に日本語だけ読めばOK

後ほど図もこちらに差し込みます(いいねしておいてもらえば後で見返せるように。少々お待ちを。)

2021年12月現在のiOSのHuman Interface Guidlineの翻訳になります。

## iOSデザインテーマ

アプリデザイナーには、App Storeのランキングで上位に食い込むような、優れた製品を提供するチャンスがあります。そのためには、品質と機能に対する高い期待に応えなければなりません。

iOSは、3つの主要なテーマによって他のプラットフォームと差別化されています。

わかりやすさ。システム全体を通して、テキストはどのサイズでも読みやすく、アイコンは正確かつ明瞭に、装飾は控えめかつ適切に、そして機能性を重視したシャープなデザインが動機となっています。ネガティブスペース、カラー、フォント、グラフィック

元記事を表示

最低限困らない SwiftUI を指定した Xcode プロジェクトを XcodeGen で生成する

この記事は、[ゆめみ Advent Calendar 2021](https://qiita.com/advent-calendar/2021/yumemi) の17日目の記事です。

# はじめに
XcodeGen に入門しようと SwiftUI を指定した Xcode プロジェクトを題材にしたら、ビルドするためにちょっとした設定が必要でした。
この記事ではその原因と対応策を紹介します。

# 環境
– macOS 12.0.1
– Xcode 13.1
– XcodeGen 2.25.0

# 成果物
[gist](https://gist.github.com/macneko-ayu/2621414f90189f76c49bfc404e637d1d) にあげていますが、Qiita では展開されないので貼っておきます。

“`yml
# 任意のProduct Nameに置き換える(Targetも同様)
name: FooProduct

options:
bundleIdPrefix: com.example
deploymentTarget:
iOS: 15.

元記事を表示

個人開発したマッチングアプリのリリース後日談?

この記事は[個人開発Advent Calendarの17日目](https://qiita.com/advent-calendar/2021/personal-project)の記事です。

# 人生初の個人開発アプリ
人生初の個人開発アプリでマッチングアプリを開発しました。
ざっくり作ったアプリを説明しますと、`オンラインゲームをしたいユーザーを結びつけるiOSアプリ`です。

https://apps.apple.com/jp/app/clan-%E3%82%AF%E3%83%A9%E3%83%B3/id1570006169

以前リリース記事を書いたのでよかったらこちらをご覧ください。

https://qiita.com/smizuno2018/items/1ead475e760bc1b9bd9c

# リリース後の結果
個人開発でアプリをリリースするとどれくらいのダウンロード数になるのかを
`App Store Conncect`、`Firebase`のアナリティクスで確認していきましょう。

## App Store Conncect アナリティクス
まず、App Stor

元記事を表示

Swift Type Alias から学ぶ開発指針と雑学

# はじめに
iOS15 対応時に遭遇したとあるライブラリに対する **技術的対応方法** と、そこから学べる **雑学** をご紹介します。
Advent Calendar も後半に突入しましたので、気分転換として読んでいただければと思います。

# iOS15 対応
とあるプロジェクトで [BonMot](https://github.com/Rightpoint/BonMot) という Swift 製ライブラリを利用していました。
BonMot は文字の装飾をサポートするライブラリで Foundation.NSAttributedString を拡張して作られています。

結論、この BonMot 内のオブジェクト名と同様のオブジェクトが Foundation にも iOS15 から定義されることになったのです。それが StringStyle です。このように **Framework 間で名前の衝突** が発生した場合、Foundation が優先されるようで、iOS15 対応時にビルドエラーが発生するようになりました。

“`swift
typealias StringSty

元記事を表示

SwiftUI におけるアニメーションの基本的な実装方法について iOS 15 から deprecated になるものも交えて紹介

# はじめに
こんにちは、[アイカワ](https://twitter.com/kalupas226)と申します。
この記事は [Qiita iOS Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ios) の 17 日目の記事になります。

この記事では SwiftUI でアニメーションを実装する際の基本的な実装方法を紹介します。
また、その中で iOS 15 以降では deprecated になってしまっているものについても触れます。

本当はこの記事の中で Combine を利用した時のアニメーションについても触れようと思っていたのですが、記事の内容が長くなりそうだったので、iOS Advent Calendar 2021 のカレンダー2の方で今回の続きの記事を公開する予定です。

# SwiftUI のアニメーションの基本的な実装方法

SwiftUI でアニメーションを実装するとすれば、大きく2つの方法が存在すると思います。
1つは animation View Modifier を利用した暗黙的なアニ

元記事を表示

MethodChannelとPlatformViewを使ってFlutterにネイティブビューを表示しよう

##開発環境
“`
Flutter 2.5.2
Dart 2.14.3
“`

#MethodChannelとは?
Flutterは柔軟なシステムを使用しており、AndroidではKotlinまたはJava、iOSではSwiftまたはObjective-Cで利用できるかどうかにかかわらず、プラットフォーム固有のAPIを呼び出すことができます。

#PlatformViewとは?
PlatformViewを使用すると、ネイティブビューをFlutterアプリに埋め込むことができます。
たとえば、AndroidおよびiOSSDKのネイティブGoogleマップをFlutterアプリ内で直接使用できます。

(ネイティブ側からFlutter側へ受け取るにはEventChannelを使います。今回は割愛します。)

##つまり

元記事を表示

FlutterでシステムのライフサイクルをSwiftで

## はじめに

ここ最近はFlutterをやっていて、業務でSwiftでプログラミングはほとんどやっていないですが、

やっぱり`if-let`とか恋しくなります。(アンラップの処理がDartめんどいというか自作しないといけてない)

そんなこんなですが、ネイティブ側とやりとりすることもあり、Flutterで書いてたSwiftの部分を備忘録的に載せていきます。

## AppDelegateでアプリのライフサイクルを通知

Flutterをやっていると言ってもまだ4ヶ月くらい[(Flutter開発を4ヶ月ほどやっての振り返り)](https://qiita.com/repepe2en/items/d30a545df23a03d32cca)なのでわからないことだらけです。

Flutterでもライフサイクルの概念はあり、全く同じではないのですがモバイル開発をしていればそんなに問題はないのですが、画面のライフサイクルというよりアプリ全体のシステムのライフサイクルで苦戦しました。

アプリ復帰時、アプリをバックグラウンドに移行したときにハンドリングできるライフサイクルメソッドは提供されて

元記事を表示

顕著物検出で、iOSでアニメキャラを華麗に切り抜く

#概要

画像からアニメキャラを細かいところまできれいに切り抜きたい。
顕著なオブジェクト検出を使って、iOSオンデバイスでそれを実現する方法を書きます。



#この記事で伝えたいこと

アニメキャラ

元記事を表示

iBeaconについてとその使い道を考えてみる?

この記事は,フラー株式会社 [Advent Calendar 2021](https://qiita.com/advent-calendar/2021/fuller-inc) の 16 日目の記事です

15日目の記事は @aikosogabe さんによる [Reactで教習所Lifeをちょっと助けてくれるかもしれないアプリをつくってみた](https://qiita.com/aikosogabe/items/4d01d3be294a9611fe2a) でした

この題材を選んだのはiBeaconについて触れる機会があったので調べた内容をまとめておきたいなと思ったのと、そこそこ有名だけど使われている機会に巡り合えないなと思っていたからです
(発信機にコストがかかってしまうので、だいたい同じような機能はGPSでの判定を使っているケースが多いからだと思いますが…)
読んでみて何かいいアイデアが思いついたら、コメントして教えてください

#iBeaconとは
iBeaconについて調べてみると、こんな感じで

– Apple社の商標
– Bluetooth low energy(通称

元記事を表示

iOSの Auto-Renewable Subscription(自動更新サブスクリプション)の値上げ対応は簡単だけど不安になる

# はじめに
本記事は [with Advent Calendar 2021](https://qiita.com/advent-calendar/2021/with) 16日目の記事です。

こんにちは [with](https://with.is/)で iOSエンジニアをしている増田です。

以前、弊社の with iOSアプリにて Auto-Renewable Subscription(自動更新サブスクリプション)の値上げを行いました。
実際対応は簡単ですが、細かい情報が探し辛く想定と違う仕様があったりもして不安になる事が多かったので、いろいろ書いておきます。

所感としては、良い意味でも悪い意味でも:apple:神が全ていい感じにやってくれるので、やらねばならない事が全然無い一方、やれる事も無い。
正しく課金商品の実装が出来ていれば、何も問題は起こりません。

[実際の手順は既にわかりやすい記事を書いてくれている方がいる](https://qiita.com/kirihata/items/d194db14fdb8d9ddb7a6#ios編)ので、本記事では不安になる点や気をつけ

元記事を表示

OTHERカテゴリの最新記事