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

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

iOSで「拡大表示」の設定を行うとUIScreen.main.boundsのサイズが変わる

## TL;DR – 「拡大表示」設定を行うと論理的な解像度( `UIScreen.main.bounds` )が一段階小さくなる – iPhone 8は320×568になる – 「拡大表示」設定になっていても `UIScreen.nativeBounds.width / UIScreen.main.scale` で拡大表示ではないときの解像度と同じ画面幅を取得できる | Device | bounds.width | nativeBounds.width | scale | nativeScale | |:-:|:-:|:-:|:-:|:-:| | 8 | 375 | 750 | 2 | 2 | | 8(拡大) | 320 | 750 | 2 | 2.34375 | | 13 Pro | 390 | 1170 | 3 | 3 | | 13 Pro(拡大) | 320 | 1170 | 3 | 3.65625 | | 13 Pro Max | 428 | 1284 | 3 | 3 | | 13 Pro Max(拡大) | 375 | 1170 | 3 | 3.424 |
元記事を表示

【iOS】simulatorで@(アットマーク)を入力する。

`Shift + 2` よく忘れるので忘備録です。 以下未確認ですが、キーボードの配列や言語によって更に変化するそうです。 上記でも変化なければお試しください。 `alt+shift+2` `alt-G` https://stackoverflow.com/questions/21477516/in-iphone-simulator-how-to-type-the-sign-on-a-macbook-with-german-keyboard
元記事を表示

Unity iOSビルド時に輸出コンプライアンス情報をinfo.plistに記載する

以下のスクリプトを適当な`Editor/`下に配置の上ビルドすると、 TestFlightアップロード時に輸出コンプライアンス情報を提出する必要がなくなる。 “` CSharp using System.IO; using UnityEditor; using UnityEditor.Build; using UnityEditor.Build.Reporting; using UnityEditor.iOS.Xcode; public class PostprocessBuild : IPostprocessBuildWithReport { public int callbackOrder { get { return 0; } } public void OnPostprocessBuild(BuildReport report) { if (report.summary.platform == BuildTarget.iOS) { string plistPath = Path.Combin
元記事を表示

iOSのAudioSessionを理解するのに役立ったサイト5選

仕事でiOSのAudioSessionについていろいろ調べる機会がありまして、その際に役になったサイト様を紹介します。 # AppleDeveloper(公式) – https://developer.apple.com/documentation/avfaudio/avaudiosession – https://developer.apple.com/documentation/avfaudio/avaudiosession/mode – https://developer.apple.com/documentation/avfaudio/avaudiosession/category まずは公式を抑えておきましょう。 # iOSアプリ開発 入門 (6) – AVAudioSession – https://note.com/npaka/n/nfaf451311d56 AudioSessionについての説明と扱い方のとてもわかりやすい説明がされています。入門記事としておすすめです。 # iOS Apps Developer’s Note – https://moz
元記事を表示

SwiftPMのpreviewでBundle.moduleにアクセスしてクラッシュした話

# 概要 * Swift Package Manager の Preview で Bundle.module にアクセスしてクラッシュした状況と、手元の環境で解決できた方法の話です ## 環境 * Xcode 13.1 * macOS 11.3.1 # 何があったのか? * SwiftPM を使って AppMain と Assets のターゲットを作成しました * Assets の Resources の中に、Assets.xcassets を配置し、`aka` の Color Set を追加しました * [SwiftGen](https://github.com/SwiftGen/SwiftGen)を利用して、`Asset.aka.color` で追加した `aka` にアクセスできるようにしました * AppMain 内の preview で、`Asset.aka.color` を使って View を表示させようとしました ![スクリーンショット 2021-11-13 22.05.42.png](https://qiita-image-store.s3.ap-northe
元記事を表示

[Flutter] CodeMagic で自動で build_number を更新できない時の対処法。build number が更新されない。 –build-number=$(($BUILD_NUMBER))

https://kaedeee.com/flutter-codemagic-build_number/ CodemagicでFlutterを利用する際に、Github にデプロイ後、自動でbuild numberを更新するように設定したにも関わらず、iOSで自動更新が反映されませんでした。 対応を以下に示します。 #対処法 ##Codemagicの設定を見直す。 build > build arguments を –build-number=$(($BUILD_NUMBER)) と設定する。 ![スクリーンショット 2021-11-12 17.49.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1900756/24fd56ef-c082-f3d8-b787-83342dcb7035.png) ##Xcodeの設定を見直す。 Xcode > Info.plist より、 key CFBundleShortVersionString key CFBundleVersion 部分の
元記事を表示

SwiftでMoyaを使う

Moyaを使用して簡単な参考ソースコードを作成します。 今回は下記URLのAPIを例として使用しました。 https://www.themoviedb.org/ 人気映画、映画の詳細、検索などが利用できるAPIです。 # Moyaとは Moyaはネットワーク抽象化レイヤーです。 MoyaはAlamofireを使用しており、ネットワークマネージャーを素早くセットアップできます。 必要な依存関係を追加することで、プロジェクトでMoyaを使用することができます。 プロジェクトをインストールする方法はいくつかあり、下記リンクにインストールに関する詳細が入手できます。 https://github.com/Moya/Moya#installation # API Moyaをインストールしたら、まずAPI.swiftファイルを作成し、さまざまなリクエストをもつ列挙型(enum)を作成します。 API列挙型をMoyaのTargetTypeで拡張し、必要な変数に準拠する必要があります。 baseURL, path, sampleData, taskやheaderなどです。 “` import
元記事を表示

[Swift]CLLocationManagerDelegateをDataStoreへ格納してみた

## 投稿の経緯 iOSアプリ開発でFat ViewControllerはよく知られたアンチパターンです。特にTableViewDelegateやCLLocationManagerDelegateなどのDelegateメソッドをViewControllerに書くことでFatになる印象です。 今回はそんなFat ViewControllerを回避するため、CLLocationManagerDelegateをDataStoreへ格納してみようと思います。 [GitHub Repositoryはコチラ](https://github.com/ken-sasaki-222/LocationManagerInDataStore) ## 環境 Swift 5.5 Xcode 13.1 ## UIの使用 – 初回ボタンタップで位置情報アラート表示(`requestWhenInUse`) ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/643372/dfb22798-d21a-69bf-4455-e9
元記事を表示

スマホを振って、ピア通信で友だちとプロフィールを交換する【MultipeerConnectivity】【iOS】

**サーバーなしでデバイスだけで直接で通信できます。** #ピア通信に必要な最小手順 ### この手順で他のデバイスとデータの送受信ができます。 ###1、Local Network (Bonjour services)をアプリに追加 Info.plistにLocal Network Usage DescriprtionとBonjour servicesを追加します。 ![スクリーンショット 2021-05-27 4.04.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/6102bd5b-c67d-df37-c7db-e2481808d4f0.png) Info.plist のBonjour services に自分のサービ
元記事を表示

iOSで発話認識する最小構成

#iPhoneで発話認識するの手順 ユーザーの発話内容を認識する最小構成です。 本記事のコードをベタ貼りしていけば音声取得してテキストにするまでができます。 [**【参考画像:音声認識を用いたサンプルアプリ(RealityKit-Sampler)】**](https://qiita.com/john-rocky/items/48f95f814b12dd7c853d) [ ](https://qiita.com/john-rocky/items/48f95f814b12dd7c853
元記事を表示

[Unity][iOS] UnityCloudBuild を使って TestFlight にアップロードするお話。

#自分の環境 Unity 2019.4.31 Windows10 (Macでもあまり関係なく使えるはずだけど) #前提条件 ・iPhone/Androidアプリを開発している。 ・UnityCloudBuildを使っている。 **・Build後ipaファイルを落として手動でAppstoreにあげている。** #解決しなくてはいけない事 ・出来上がったipaファイルの場所は? ・それをUnityloudbuildからiOS Devにアップロードする方法あるの? → ありました。 #実装 ## 1.Bashファイルを以下の場所に用意 “`Assets\Editor\post-build-push-ipa-appstore.bash #!/bin/bash echo “Uploading IPA to Appstore Connect…” #Path is “/BUILD_PATH/../.build/last//build.ipa” path=”$WORKSPACE
元記事を表示

【Flutter】コールバックを自分なりにまとめました。

# はじめに iOSメインのスマホアプリエンジニアです。 iOSエンジニア視点からFlutterのコールバックの利用タイミングなどを自分なりにまとめました。 Dartの文化に反していたり、好みや等があるかもしれませんがご了承ください。 その他ご意見ございましたらご指摘ください。 # VoidCallback 最もシンプルで`Flutter callback`と検索すると真っ先に引っかかるコールバック方法です。 その名の通り、「空っぽのコールバック」 https://api.flutter.dev/flutter/dart-ui/VoidCallback.html ### 宣言 VoidCallbackを受ける側の実装。 “` voidCallback = (){ print(“voidCallback”); }; “` ### 呼び出し VoidCallbackを呼び出す “` voidCallback.call(); // 以下でも可能。 voidCallback(); “` ### 利用用途 明示的に「このコールバックには引数がないですよー」と
元記事を表示

For loop の処理が全て終わってから次の処理をする

“`swift let dispatchGroup = DispatchGroup() for work in works { dispatchGroup.enter() // Do your work dispatchGroup.leave() } dispatchGroup.notify(queue: .main){ // ループ処理が全て完了したあと呼ばれる。 } “` ? **** フリーランスエンジニアです。 お仕事のご相談こちらまで rockyshikoku@gmail.com Core MLやARKitを使ったアプリを作っています。 機械学習/AR関連の情報を発信しています。 [Twitter](https://twitter.com/JackdeS11) [Medium](https://medium.com/@rockyshikoku)
元記事を表示

Xcode13でInfo.Plistがない。どこ?

Xcode13で新しいプロジェクトを作ると、Info.Plistがない。 CameraUsageDescriptionとか追加できへんやん。 安心してください、**追加方法が変わっただけです**。 #Info追加方法 Xcodeの左のペインのアプリのトップレベルを選択し、**TARGETSでInfoタブを選択**する。 ![スクリーンショット 2021-11-11 2.09.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/1b6384cb-bcf0-4ae0-a23e-50febb9cb5a1.png) ここで、これまで通りPrivacy Camera Usage Descriptionなどを設定すればOKです。 焦
元記事を表示

【Flutter】プラグインでiOSのrootViewControllerを取得する方法

#概要 FlutterプラグインでiOSネイティブ画面を利用するために、rootViewControllerを取得する方法を整理します。 [こちら](https://qiita.com/mkosuke/items/b384035e507ad0208c10)の記事を参考にさせていただきました(ただただ感謝✨✨)。プラグイン作成時にはself経由でrootViewControllerを取得できず、代替手段が必要になるため、その補足記事となります。 #環境 “`shell-session $ flutter –version Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git Framework • revision 18116933e7 (3 weeks ago) • 2021-10-15 10:46:35 -0700 Engine • revision d3ea636dc5 Tools • Dart 2.14.4 “` #実装 UIApplication経由でrootViewContr
元記事を表示

 Flutter :   TextFormFieldでUIを描画できない

#はじめに 現在flutterでアプリを作成中(カレンダーアプリ的なやつ)超初心者で勉強中 アカウント機能 ログイン機能を作成中に本事象に遭遇してなるほどーと思ったのでメモ程度に #開発環境 ・使用言語:dart(flutter) ・AndroidStudio 4.1.2 ・iOS シミュレーター(iOS14.5) #事象 TextFormFieldを使用して入力フォームを作成しようと思ったが、以下のエラーが表示され対象画面へ遷移した際にUIが描画されない “` The following assertion was thrown during layout: A RenderFlex overflowed by 99164 pixels on the bottom. The overflowing RenderFlex has an orientation of Axis.vertical. The edge of the RenderFlex that is overflowing has been marked in the rendering with a yello
元記事を表示

Xcode のSimulator に旧iOS のイメージを追加する[Big Sur]

Xcode のSimulator を使って,iPad OS 14 を動かしたかったのだけど,Xcode インストール時には最新のiOS 15 しか用意されていなかった.

ネット上の情報とはUI とか色々変わっていて,古いOS の追加方法が分からなかったのでメモ.

前提

使用しているMacBook Pro のOS はBig Sur 11.5.2, インストールしたXcode はVersion 13.1 です.

結論

旧OS の

元記事を表示

iOS15.1をXcodeでビルドしたい時にUnsupprted OS versionになってしまうのを回避するやり方

#事象 iOS15.1にアップデートしちゃったけど、Xcode上で「Unsupprted OS version」と表示されビルド出来ない。 前回と同じようなネタだけど再現したため投稿。 ![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90301/a9154dd6-69e0-e00c-62e8-742c40d6820f.png) #対処策 Device Supportのフォルダの”15.0″を複製し、”15.1″にリネームする。 “15.0”が無い場合は、Xcode 13.1をダウンロードしてから抽出する。 #手順 1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ 配下で15.0を複製する ![スクリーンショット 2021-11-09 13.51.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/90301/
元記事を表示

nibを用いて、TableViewを作成(初学者向け、Delegateの説明なし、コード説明あり)

Swift初学者であり、間違っていることも、 記載していますので、ご注意ください。 ##手順1 まずはTableCellクラスで、 Nibの名前、IDをスタティック定数として、記載しておく。 **メリット** コードで管理して、スペルミスを防ぐ+入力変換に表示される  “` final class ItemListTableViewCell: UITableViewCell { static let nibName = UINib(nibName: “TableViewCell”, bundle: nil) static let nibID = “Cell” } “` ##手順2 TableViewCellに、Identifier:Cellを設定。 ![スクリーンショット 2021-11-09 8.34.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/799713/749856e9-51bc-5105-4afb-ae2c72b80afc.png) ##手順3 V
元記事を表示

【Flutter】プラグイン作成時にiOSローカルのライブラリを参照する方法

# 概要 Flutterプラグイン作成時に、プラグイン側でiOS向けローカルライブラリを抱きこむ際の設定方法を整理します。 ユースケースとしては、プラグイン利用者が公開済のpodを利用するのではなく会社独自のiOSライブラリ等をプラグインを通してFlutterで利用することを想定しています。 # 環境 “`shell-session $ flutter –version Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git Framework • revision 18116933e7 (3 weeks ago) • 2021-10-15 10:46:35 -0700 Engine • revision d3ea636dc5 Tools • Dart 2.14.4 “` # 実施内容 ① Frameworkの取り込み  a. iOSプロジェクト直下に利用したいライブラリのframeworkをコピーアンドペースト   - ※frameworkは、exampleのiosプロジェクトを配置し
元記事を表示

OTHERカテゴリの最新記事