iOS関連のことを調べてみた2022年06月21日

iOS関連のことを調べてみた2022年06月21日

【Swift】WidgetExtensionのバグ

# 問題点
全角と半角を連続で入力すると強制的に省略される
![Simulator Screen Shot – iPhone 12 mini – 2022-06-20 at 14.03.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/d4b456a8-1c3f-19f6-aa23-3b79895835e0.png)
“`swift
struct widget_bugEntryView : View {
var entry: Provider.Entry
var body: some View {
Text(“あいう123abc”)
}
}
“`

# 対策法1
全角と半角の間にスペースを入れる
![Simulator Screen Shot – iPhone 12 Pro Max – 2022-06-20 at 13.58.10.png](https://qiita-image-store.s3.ap-northeast-1.amazona

元記事を表示

4K画質のAR

# iOSで4K画質のARコンテンツを作れる

従来ARKitでキャプチャできるカメラ画質は1920*1080が最高でした。
しかし、もっと高画質でキャプチャしたいケースもあります。

# 4K画質が使えるようになった

2022年のiOS16から、ARKitで4K画質が使えるようになりました。

# 使い方

recommendedVideoFormatFor4KResolutionがサポートされていることを確認し(nilを返さない)、videoFormatに指定します。
iPhone11以降、M1 iPadで使えます。

“`swift
let config = ARWorldTrackingConfiguration()
if let hiResFormat = ARWorldTrackingConfiguration.recommendedVideoFormatFor4KResolution {
config.videoFormat = hiResFormat
}
“`

違いが出るかわかりませんが、スクショ載せておきます。

1920*1080

元記事を表示

いつ、どこで、誰が、何をした?のことばを使って長い文章を作成する試み

# はじめに
皆さんは、「いつ、どこで、誰が、何をした?」という遊びをご存じでしょうか。
これは、参加者がそれぞれ、「いつ」「どこで」「誰が」「何をした」の4種類の言葉を紙に書き、ランダムに組み合わせてできた文章を楽しむ遊びです。

最近、この遊びをiOS上で遊ぶことができる「いつどこ語り」というアプリをリリースしました。
このアプリはもともと小学生の娘たちと遊ぶためだけに作ったもので、追加した言葉で短文を作る機能しかありませんでした。
しかし、あるとき「長文も作れたら結構面白くなるのでは?」と思い機能追加したところ、かなり面白いもの(主観)ができたのでストアにリリースしてみることにしました。

本記事では、長文作成機能を組み込むにあたって苦労したこと・面白かったことを紹介しようかと思います。

# できあがったもの
技術的な話に入る前に、まずは、完成したものをお見せします。

**長文作成例:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136183/56e8ea81-5bb

元記事を表示

SwiftUIのViewThatFitsを使ってレスポンシブWebデザインっぽいレイアウトを実装してみる

Webの世界では多くのWebページがレスポンシブWebデザインで実装されています。
例えば[Qiitaのホームページ](https://corp.qiita.com/products/)も下記のようにブラウザの横幅に応じてデザインが変わります。
![スクリーンショット 2022-06-19 13.09.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42150/38906b91-d4bd-306a-9ed4-5e532484ebae.png)
こちらのデザインは、横幅が小さいときは縦に並び、長いときは横に並ぶようになっています。

iOS SwiftUIの世界でもWWDC22で発表された`ViewThatFits`を使ってWeb同様のレスポンシブデザインを実装できるようになったので試してみました。

## ViewThatFitsとは

[ViewThatFits](https://developer.apple.com/documentation/swiftui/viewthatfits)はWWD

元記事を表示

【SwiftUI】Previewを端末指定する

# iPad (8th generation)
“`swift
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.previewDevice(PreviewDevice(rawValue: “iPad (8th generation)”))
}
}
“`

# iPad (9th generation)
“`swift
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.previewDevice(PreviewDevice(rawValue: “iPad (8th generation)”))
}
}
“`

# iPad Air (4th generation)
“`swift
struc

元記事を表示

Cronetのxcframeworkを作成してiOSでQUICする

# Cronet の xcframework を作成して iOS で QUIC する
* Cronet を利用することでiOSアプリで QUIC を使った HTTP 通信(HTTP/3)ができるようになります

> HTTP/3 とは
> HTTP/3 は次世代のインターネット プロトコルで、QUIC の上に構築されています。QUIC は、Google が開発し、インターネット プロトコルの規定を担う標準化団体 IETF に提唱したプロトコルです。HTTP/3 と QUIC を組み合わせることで、ヘッドオブライン ブロッキング、セキュリティ(TLS 1.3 は QUIC の基盤)、信頼度の低い接続での信頼性など、HTTP/2 での以前の課題に対処しています。
[https://cloud.google.com/blog/ja/products/networking/cloud-cdn-and-load-balancing-support-http3](https://cloud.google.com/blog/ja/products/networking/cloud-cdn-and-l

元記事を表示

iOSネイティブでGeospatial APIを動かす手順

Google I/O 2022にて発表されたGeospatial APIをiOSネイティブで動作させる手順です。
macOC Monterey。Unityは使いません。

公式ドキュメントはこちら。
https://developers.google.com/ar/develop/ios/geospatial/quickstart

![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/63205/9628cb15-6280-06d4-f6ba-2f48593243e6.gif)

以下が注意ポイントです。
1. Google Cloud Platformでプロジェクト作成、API有効化、APIキー作成が必要
1. M1 MacではCocoapods実行でTerminalにRosseta設定が必要

# iOS 向け地理空間クイックスタートをなぞる

基本的に公式ドキュメントのクイックスタートを進めるだけで動きます。

## ダウンロード
https://github.com/google-

元記事を表示

iPhoneで日本語OCR、文字認識が使える

# 文字認識をかんたんにつかえる
iPhoneで文字認識できたら、板書の書き起こしや、標識認識アプリなど便利につかえます。

![Jun-19-2022 12-07-44.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/5de37e08-2ecf-a599-74b1-bc6ea98647fa.gif)

# 2022年のアップデートで日本語が利用可能に
2022年のiOS16から、日本語の文字認識が可能になりました。
組み込みのフレームワークのみで可能です。
精度もかなり良く、さまざまなアプリで実用に耐えるレベルだと個人的には思います。

# つかいかた

VisionのVNRecognizeTextRequestをつかいます。
**recognitionLanguages に “ja” を指定します。**
macOS13、Xcode14、iOS16以降が必要です。

“`swift
let request = VNRecognizeTextRequest()
request.recogn

元記事を表示

iOS開発で知っておきたいnilの知識

# 概要
iOSアプリの開発をかれこれ2年以上やってますが、
未だにソースレビューやエラーで引っかかるのが、「nil」や「null」
絡みなんですよね。。

特にSwiftの場合、
“`
unexpectedly found nil〜
“`
といったエラーがによく引っ掛かります。

製造工程にて、nilについてどう扱えばいいのか?
最低限の知識を軽くまとめておきたいな。。

そんなことをふと思ったので簡単にまとめておきたいと思います。

### optionalについて
SwiftにはOptionalという概念があります。
簡単に言えば空の値を保持できるようにした変数を指します。

この空の状態を、Swiftの場合「nil」という表現で表します。
### 例
“`swift
// optional型
var hoge?: String? // nilとして初期化される

// 非オプショナル型
var hoge2: String

hoge = nil    // OK
hoge2 = nil // ERROR
“`
上記のよう

元記事を表示

WWDC22で発表されたSwiftUIのGridとVStack・HStackの違い

WWDC22でSwiftUIにまつわる様々な発表がありました。
NavigationStackやChartsなどが話題ですが、ここではGridについて解説します。
一見、元々あるVStack・HStackとの違いが分かりづらい (Gridを使わなくてもVstack・HStackで完結するように思える) のですが、具体例を交えて紹介していきます。

## 実装するデザイン
今回実装するデザインは以下のようなTextが並んだものです。
17.21.53.png
`Designed in`と`Assembled in`が右揃えで並んでおり (`California`と`China`も同様)、`Designed in`と`California`が下揃えで並んでいます。
また、`California`と`China`は変数であ

元記事を表示

iOSアプリを開発しようと思ったら読むべき記事

iOSアプリの開発ってどうやったらいいのか全くわからなかったので調べてみました。

↓以下のサイトがアプリの開発からリリースまでの流れがとてもわかりやすくまとまっていたのでおすすめです!
https://i-app-tec.com/ios/developer-registration.html

元記事を表示

【CocoaPods】ライブラリのインストール時にバージョンに関して警告が出る

# 警告文
“`
[!] Automatically assigning platform `iOS` with version `15.4` on target `LicensePlist-Demo` because no platform was specified. Please specify a platform for this target in your Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
“`

# 解決方法
警告文で表示されているバージョンを`Podfile`ファイルに記載する
![スクリーンショット 2022-06-14 15.12.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/b4fbe765-58f2-9d97-2d27-0315fffce91f.png)
“`diff_ruby
# Uncomment the next line to

元記事を表示

「Google Maps の検索結果から Yahoo! カーナビで経路案内できる iOS ショートカット」を再復活させた

# はじめに
@otchyさんと、@musubi05さんが作成していた「Google Mapsと Yahoo!カーナビのiOSショートカット連携」の再改修版です.

:::note warn
重要
この記事は明確な解決方法があるわけではありません.
デバッグ途中に動作したため、とりあえず残しておくというような結果となっています.
:::

# 共有URL(2022/06/12)

タップするとショートカットに追加できます

https://www.icloud.com/shortcuts/9280a473a4904845b74f982db7938cd7

# 改修

## 改修点

v4では、緯度・経度をショートカットで取得して、Y!カーナビで表示させるパラメータとして与えていました.ある日から、緯度・経度をショートカットで取得する部分で、緯度・経度が双方とも0になってしまっていました.その部分の修正です.

## やったこと

住所から緯度・経度を取得する前に、現在地を取得するコマンドを追加しました.
追加した理由ですが…、エンジニアあるあるとして有名なことですが、よくわかっていませ

元記事を表示

[Swift]対象のメソッドが呼ばれたかどうかをテストしたい

“`.swift
final class Controller {
private let useCaseInput: UseCaseInput

init(useCaseInput: UseCaseInput) {
self.useCaseInput = useCaseInput
}

func onHogeHogeButtonTapped() {
useCaseInput.hogehoge()
}
}

protocol UseCaseInput {
func hogehoge()
}

final class UseCase: UseCaseInput {

func hogehoge() {
print(“hogehoge”)
}
}

“`
このようにクラスAがクラスBのメソッドを呼ぶコードがあり、テストで呼ばれているかを確認したい場合の対応法について書きます。

結論。インターフェースを使ってモックを作成し、テストを書けばいい。

“`.swift
fina

元記事を表示

【Swift】XXXXX One of the paths in DEVELOPMENT_ASSET_PATHS does not exist: XXXXXXを修正する

# 発生条件
`Preview Content`のファイルディレクトリを初期ディレクトリから変更した場合
![スクリーンショット 2022-06-17 11.56.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/f12a2304-1d0e-7a45-eb8f-60a2a3bff192.png)

# 修正方法
① プロジェクトを選択する
② ターゲットを選択する
③ 「Build Settings」を選択する
④ 「Development Assets」と検索する
⑤ 赤枠の箇所をダブルタップする
![スクリーンショット 2022-06-17 12.00.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/26b7e10e-1abe-baf7-dc3c-db57c3d6243f.png)

ファイルディレクトリ変更後のパスを入力
私の場合、
`”SampleProject/Previe

元記事を表示

windowのrootViewControllerを変更して画面遷移する方法

新しい画面遷移の方法を学んだから半分メモ書き感覚で書いていくで〜
訂正、編集リクエスト、感激やで〜

# 目的
作成したいものは以下のように、ボタンを押したら画面遷移する機能。

これを、Segue等を使わないやり方で画面遷移させる。
要は、RootViewControllerを使ってアニメーションで画面遷移をさせる。

# 環境
– macOS Monterey: Version12.4
– Xcode: Version 13.4.1
– Swift: Version 5.6.1

# 前提
[コチラの記事](https://zenn.dev/nkysyuichi/articles/c3c2a6a63e1404)を参考に、
1. AppDelegateから`// MARK: UISceneSession Lifecycle`以降

元記事を表示

[iOSアプリ審査]証明書まわりについてサクッとまとめてみた

## はじめに
iOSアプリ開発をする上で避けて通れない証明書周り。

個人アプリをリリースする過程では、なんとなーく流れ作業でやってしまったこともあり
あまり理解できていなかったので備忘録としてもまとめておきます。

まず、アプリ提出に必ず必要な`ProvisionigProfile`が何なのかを解説しますね。

## ProvisionigProfileとはなんぞや?
下記の3つをまとめたファイルのことを言います。

`・正規開発者証明書(p12ファイル)`
`・デバイス識別子(UDID)`
`・アプリケーションID(BundleId)`

簡単にいうと「誰がどのようなデバイスを使ってて、どんなアプリを作ってるか」
がわかるファイルです。

じゃあこれがなんで必要なの?

## なぜProvisionigProfileが必要なのか?

直球に言うと

`「ユーザーが実機にアプリをインストールするため」`

はい???? 
 
もっと深ぼると・・・
`・悪意あるアプリをストアに流さないように`
`・本物のアプリであるということを証明するため`

ようするに
`「あなたのアプリが信頼

元記事を表示

【ReactNative】FlatList自体のタップを判別する

# 目次
[1.やりたいこと](#1-やりたいこと)
[2.起きていた問題](#2-起きていた問題)
[3.原因](#3-原因)
[4.解決策](#4-解決策)
[5.まとめ](#5-まとめ)

# 1. やりたいこと
赤枠内の青の部分を「タップした時だけ」イベントを発火させたい
スクロールされた場合はタップと判定したくない
青部分をタップしたときにキーボードを非表示にするという処理をしたい。

# 2. 起きていた問題
FlatListのonPressやonTouchEndやonTouchStartを使用して、
普通にタップのイベントを拾い処理を行おうとしたが、
単純に上記イベントを契機とするとスクロールした際にもイベントが発火してしまう問題が発生していました。

# 3. 原因
おそらくFlatList自体をタップした際

元記事を表示

【SwiftUI】NavigationViewがiPhoneとiPadで見た目が変わる

# 問題点
`NavigationView`にスタイルを設定しないとiPhoneとiPadで見た目が変わってしまう。
|iPad|iPhone|
|-|-|
|![simulator_screenshot_2BC0E84E-1339-48FC-AB61-B1A767296089.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/859e9384-606c-be2c-6f47-929d3536c33c.png)|![simulator_screenshot_47A14FCB-0350-420A-8D03-610540F81D5C.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/95e771f5-40e6-6945-9e21-dcf75db4434a.png)|

# コード
“`swift
import SwiftUI

struct ContentView: View {
var bo

元記事を表示

iOSのステータスバーの色をHTMLのmetaタグで変える方法

こんにちは、ちゅらデータのおーすてぃんやいびーん!

# 概要
iOSのSafariのステータスバーの色を\タグで調整する方法を紹介します。

筆者は、iOS用のPWAを勉強で作っている時に、2022年のSafari仕様でどうやってうステータスバーの色を変えるかを調べていたのですが、情報が古かったり、わかりにくかったりして苦労しました。

なので、わかったことをまとめておきましょうね!

# theme-colorでステータスバーの色を変える
以下のように、HTMLの\タグに\でiOSのステータスバーを色を設定することができます。
“`html





  • OTHERカテゴリの最新記事