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

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

動画にバーチャル背景をつけることはできるのか? → SemanticImageでかんたんに

#撮影済みの動画にバーチャル背景をつける方法

既に存在している動画にバーチャル背景をつけられれば、
面白い編集ができる。
#バーチャル背景はリアルタイムでしかつけられないのか?

バーチャル背景は撮影時に設定するものが多い。
既存の動画を処理したい。
しかし、動画の処理を書くのは大変そう。

#[**SemanticImage**](https://github.com/john-rocky/SemanticImage)で秒で解決

[**SemanticImage**](https://github.com/john-rocky/SemanticImage)というライブラリなら、
かんたんに既存の動画にバーチャル背景を適用できる。

#使用方法

###1、SemanticImageをインポートする
SwiftPackageMana

元記事を表示

Swift ユニットテスト とことんシンプルなテスト導入

初めてのQiita投稿です。
間違いあればコメントいただけると幸いです。
よろしくお願い致します。

**Xcode 13.1**

##プロジェクト作成

**Include Testsにチェックを入れてプロジェクトを作成します。**
[![Image from Gyazo](https://i.gyazo.com/6c89a1252bf1b1e8323b51ec15cc5eb1.png)](https://gyazo.com/6c89a1252bf1b1e8323b51ec15cc5eb1)

**UnitTest, UI UnitTestのファイルがデフォルトで生成されます。**
[![Image from Gyazo](https://i.gyazo.com/1a263931707c721e511b43db35a8a9de.png)](https://gyazo.com/1a263931707c721e511b43db35a8a9de)

## ViewControllerにテスト対象のメソッドを追加

**下記メソッドをViewControllerへ追加します。**

元記事を表示

iPhone のカメラでエゴマと蕎麦の実をマハラノビス距離で識別

 iPhoneを使ってエゴマと蕎麦とそれ以外(ごみ)を識別してみました。
 前回記事[『iPhone で円形度を使ってエゴマと蕎麦の実を識別』](https://qiita.com/pic18f14k50/items/5434615031684a4cafc4)では円形度だけで識別したので、今回は円形度と面積でクラスの分布を反映してマハラノビス距離で識別します。
 ※後半でげろしますが前回記事の補足の位置付けの記事です。

 識別結果の青がエゴマ、緑が蕎麦、赤がそれ以外です。

|学習用データの分布|入力画像での識別|
|:-:|:-:|
||iOS Universal Links対応のTipsとハマりどころ

ユニバーサルリンクをQiitaのいくつかの記事も参考になったのでそのまとめと、他のプロダクトへの対応もあるので備忘録的Tipsにまとめました。

# ■Universal Links とは
Universal Links とは、Webサイトのリンクをクリックした時にiOSのアプリを起動させるAppleの手法です。(iOSバージョン9以上で利用可能)。
また、URLスキームによる起動と異なり、「アプリを開きますか?」のポップアップは表示されない。

適用されるとページを開いた場合、少し下にスクロールすると下図のようなボタンが表示され、これをタップすると、アプリが起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/252082/89d122f3-f769-3854-2b44-d1b5f3faefa7.png)

# ■Universal Links の仕組み
Associated Domainsで設定したドメインのapple-app-site-associationファイルが、

元記事を表示

新規プロジェクト作成せずに、既存プロジェクトをUIKitからSwiftUIに移行するまでにやったこと

## 概要

既存UIKitプロジェクトをSwiftUIに移行する機会がありました。

UIKitからSwiftUIへの移行の仕方で調べると、新規でプロジェクトを作成することでの移行のやり方、つまりSwiftUIをUIフレームワークに指定してプロジェクトを新規作成するやり方しかヒットしなかったので、
既存のUIKitプロジェクトを移行することはできないのかと勝手に思い込んでました。

でも、SwiftUIで作成されたプロジェクトを見ると、別に新規でプロジェクト作成しなければいけなそうな理由はなかったので(例えば新規作成したときにしか作成されない必須ファイルがあるとか)、試してみたところ普通にできました・・・

既存のUIKitを使ったプロジェクトをSwiftUIに移行するということ自体、頻繁に発生しないかもしれないですが、今後の自分や誰かのために残しておきます。

ちなみになぜ自分はこれをやりたかったのかというと、訳あってGitの履歴を途切れさせずに、UIKitからSwiftUIへ移行したかったからです。

## 環境

– Xcode13.0

## やってみた

何か正式な手順を踏

元記事を表示

[Xcode/iOS] 実機ビルドでエラーになる unable to build chain to self-signed root for signer “…”

エミュレータではビルドできるけど、実機ビルドしたらエラーになった場合は、証明書を疑いましょう。

今回はエラーログに

“`
unable to build chain to self-signed root for signer “…”
“`

![Screen_Shot_2021-12-29_at_12_50_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92539/c9d7ae93-002a-1412-6219-3ab1875fcd3a.png)

というのを見つけたので、Keychain Accessを開いてみると、 `certificate is not trusted` というのを発見。
いつのタイミングでこうなっていたかは不明。

![Screen_Shot_2021-12-29_at_12_51_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/92539/e934b079-19dc-a

元記事を表示

モバイルサイトのデザイン・動きをお手軽に実機とかで確認したーい

##はじめに
モバイルサイトを作っててお手軽に動作確認するには、chromeとかsafariとかの開発機能を使いますよね。
でもアプリのwebViewでの表示をちゃんと確認したい。ならブラウザだけでは足りないよね。実機でちゃんとなるかは不明だし。

##こうする
#####iOSシミュレータで
自社アプリならソースがあるだろうから、iOSシミュレータ向けにビルドして、localhostでサイトを動かして、確認しよう。iOSシミュレータのアプリから、localhost指定でアクセスできるよ。
webサーバーはご自由に。MANPとか色々あるよ。
#####androidエミュレータで
androidエミュレータからはlocalhost指定ではアクセスできないようで、パソコンのIPアドレスを指定すればアクセスできるよ。
#####iOS/Android実機で
IPアドレスを指定すればiOS/androidの実機からでもアクセスできるよ。これで完璧だね。ポートを開けるのを忘れずに。
##最後に
iOSシミュレータでlocalhost指定以外は、まあ常識なんだけど、なかなか気づかないので、記事に

元記事を表示

5分で機械学習(YOLOv5)によるモバイル物体検出を試してみる

# 超お手軽に画像内の物体検出(ObjectDetection)をする

オブジェクトが画像内のどこにあるのかの位置を返してくれる物体検出。
YOLOv5は高速、高精度を謳う2020年発表のモデル。
この記事ではそれを5分でつかってみる。

スクリーンショット 2021-12-29 11 44 24

# 機械学習ってむずかしい?

機械学習とかAIとかきくと、なんかデータサイエンティストの高尚な方がやっていそうな気がしませんか?
興味はあるんだけど、学習コストがかかりそう、みたいな。

# CoreMLモデルでモバイル用機械学習モデルがすぐにつかえる

しかし、やってみるとかんたんだったりする。
ここでは、CoreMLというアップルの機械学習フレームワークの学習ずみモデルで、手持ちの画像の物体検出をやってみます。

Core

元記事を表示

DockerでFlutterの環境構築メモ

## 開発環境
Docker Engine 20.10.11
macOS Monterey 12.0.1

## Dockerfile と docker-compose.yml と envファイルの作成

### Dockerfile
“`Dockerfile
# build時に使用するARGを定義している部分
ARG ubuntu_version
ARG timezone
ARG web_server_port
ARG app_code_path_container

# https://hub.docker.com/_/ubuntu/
FROM ubuntu:${ubuntu_version}

ENV DEBIAN_FRONTEND=noninteractive
ENV LC_ALL=ja_JP.UTF-8
ENV LC_CTYPE=ja_JP.UTF-8
ENV LANGUAGE=ja_JP:jp
ENV TZ $timezone
ENV WEB_SERVER_PORT $web_server_port
ENV APP_CODE_PATH_CONTAINER $app_cod

元記事を表示

【Flutter】画面を縦向き・横向きに固定したまま表示させる方法!iPadで画面の向きを固定できない時の対処方法

こんにちは。
個人でアプリ開発をしているYuKiOです。

21年12月に12作目となるアプリとして「緊急警告メーカー」をリリースしました。

横画面に固定して使用するアプリだったのですが、iPadでは横向きに固定できない表示不具合が・・・。

別にiPad版はリリース予定はないので問題なしと考えていたのですが、AppStoreの審査に提出したところ、iPhone版だけであっても、iPadに互換インストール可能なため正常に動作する必要があるとのことで、無視できませんでした笑

今回は、Flutterで画面を縦向き・横向きに固定したままにする方法と、iPadのみ発生する画面の向きを固定できないという不具合の解消方法を紹介します。

元記事を表示

【Swift5】アラートを表示

# はじめに
ボタンを押した時の表示されるアラートについて、基本的なことをまとめた技術メモです。
ご指摘等ございましたら、コメント、編集リクエストなどで教えていただけると幸いです。

# 開発環境
– iOS15
– Swift5
– Xcode 13

# アラートを表示(Alert/ActionSheet)
## Alert
ダイアログ風のアラートが表示される
![Simulator Screen Shot – iPhone 11 – 2021-12-28 at 15.44.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/707293/6b2c4a8f-c59e-cb0f-c208-e689f2dce652.png)

サンプルコード

“`swift
let alert: UIAlertController = UIAlertController(title: “Alert表示”, message: “hoge”, preferredStyle: .alert)

元記事を表示

iOSシミュレータで動画撮影+GIF変換してファイル圧縮もするバッチ(.command)

GitHubのプルリクに動画を添付できる機能がベータから正式版になったが、10MB以上だとアップロードできないので、(シミュレータで撮影した)動画をGIF変換してアップロードできる容量まで圧縮するバッチを用意しました。

**参考**

* [GitHubが動画のアップロード機能に正式対応。バグの再現手順や機能のデモなどの説明が動画で容易に - Publickey](https://www.publickey1.jp/blog/21/github_7.html)
* [iOS シミュレータで動画を収録して gif に自動で変換するスクリプトを書いた – Qiita](https://qiita.com/daichidaiji/items/db82f7aacd59b945fe86)


# 前準備

**ffmpegをインストール**

* ターミナルで以下のコマンドを入力して ffmpeg をインストールする
* `brew install ffmpeg`

**バッチファイルを作成**

* テキストエディタなどで [simctl_recordVideo_gif.com

元記事を表示

VideoToolBoxでH.264にswiftでエンコード、デコードする

# はじめに
* [VideoToolBox](https://developer.apple.com/documentation/videotoolbox) を利用して、MTLTexture などの画像形式を H.264 にエンコード、デコードする方法です
* H.264 に変換することで、データのサイズを小さくする事ができます
* 例えば、882×468 の動画の場合、毎フレームごとのサイズが 1.7MB の所を 〜10KB に圧縮できました
* 最終的に、3つの Byte 配列と、1つの Int に変換させることができました
* この形↓とサイズであれば十分にインターネットなどを経由してやりとりさせることができそうです

“`swift
struct EncodedFrameEntity {
let sps: [UInt8]
let pps: [UInt8]
let body: [Int8]
let microSec: Int
}
“`

* ソースコードはこちら↓

https://github.com/fuziki/VideoCre

元記事を表示

ついにめちゃくちゃリアルな架空の顔生成をiOSでできるようになった 【StyleGANをCoreMLでかんたんにつかう】

#リアルな画像を生成する機械学習モデルをiOSでつかう

「この人物は存在しない」というWebページをご存知ですか?
このページにアクセスすると、高画質の人物写真が表示されます。

https://thispersondoesnotexist.com/

リロードすると別の人物が表示されます。これらの人物は、存在しません。
StyleGANという機械学習技術によって生成された画像です。

この記事では、StyleGANをiOSでつかって、かんたんに架空の人物画像を生成する方法を示します。

#超強力画像生成、しかしiOSで使えるのか。。。
StyleGANは人物の顔だけでなく、絵画やアニメの画像も生成できます。
もしもiOSで扱えたら、楽しいアプリができそうです。

しかし、StyleGANは2010年代後半に発表された技術ですが、これま

元記事を表示

[Rails]Webアプリケーションしか作った事ない僕が、ネイティブアプリケーションを作りたい

#はじめに
初学者の私が、2ヶ月でRailsを学びWebアプリケーションを作れるようになりました。
IOSでリリースをするに至って
まずどのような知識が必要かをまとめる記事になっています。

##React Native

React Nativeは、iPhoneとAndroidどちらでも動かすことができる開発用フレームワークです。
JavaScriptで開発することができるため、JavaやSwiftが書けないエンジニアでも、React Nativeを使えばアプリ開発ができます。
React Nativeの開発言語は、JavaScriptです。そのため、JavaScriptのコードを書ければAndroidとiOSの両方で開発が可能になるフレームワーク

“`
Reactに慣れている人にとっては学習コストの低いReact Native
ネイティブエンジニアには、逆に学習コストが高くなると考えられます。
“`
##Flutter

FlutterはGoogleが作ったモバイルアプリ用のフレームワーク。
「Dart」という言語を使って開発をしていきます。

“`
モバイルアプリ開発

元記事を表示

【Swift】APIでサッカー選手検索してみた②

## はじめに
いやあ〜クリスマスですね、思い出に残っているプレゼントはありますか?
僕は小学生の時にサンタさんにもらったガリューンです。(わかる人いますかねっ笑)
![garyuun.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2318159/6d09dc96-7b5c-c05b-3a31-1b32f569ec60.jpeg)
電脳冒険記ウェブダイバーってアニメのキャラなんです、もう内容は一つも覚えてないですが。。。
このおもちゃ、テレビに繋いでゲームができるんですよ!
あの当時、おもちゃがテレビと連動するなんて画期的すぎて、Oka少年は夢中でした。
やっぱりプレゼントっていいですね、クリスマスに限らずいつでもプレゼント募集してますので、皆さんお待ちしております!

はい、では前回に引き続き、API-FOOTBALLを使っていこうと思います。

## 今日のGOAL
完全に自己満で色んな選手のプレーデータを見たいので、
今日は、前回作成した選手検索画面から詳細画面に遷移して色々表示していこうと思いま

元記事を表示

機械学習でかんたんアバター作成 Photo2CartoonをiOSでつかう

#アバター作成モデルがiOSでつかえる

写真にアバター風の漫画エフェクトをかけてくれる機械学習モデル。

#機械学習モデルを扱うのは難しそう?
とはいえ、機械学習モデルをつかうのはたくさん手順が必要なんじゃないの?

#変換済みのCoreML Modelをつかえばかんたん
変換済みのものがこちらにございます。これをつかえばすぐにiOSでアバター変換ができます。

#かんたん手順
[**CoreML-Models**](https://github.com/john-rocky/CoreML-

元記事を表示

Swift Playgrounds「自分だけの物語を選択する」を解説する

# この投稿はなに?
iPadとMac向けアプリの「Swift Playgrounds4」に用意されている「自分だけの物語を選択する」Appプロジェクトを学ぶための解説です。

新しくなったSwift Playgrounds4については、[以前の投稿](https://qiita.com/imchino/items/01d46c27c6a400aad1de)で解説しています。
# 「自分だけの物語を選択する」Appプロジェクトの概要
このAppプロジェクトは、Storyという名前のアプリを作成します。読者となるユーザーは、要所で表示される選択肢を選びながら物語を進めていきます。
下の画像はStoryアプリを起動した直後の画面ですが、物語のテキストの下に選択肢が3つあることを確認できます。

プロジェクトの実行ボタンをクリックし

元記事を表示

Flutterでのバックグラウンド処理のスケジューリング実装が難しいというお話

## 初めに
iPhone純正アラームのような規定時刻&曜日に通知を送って音を鳴らす目覚ましアラームアプリを、Flutterにて個人開発しています。
しかし、作り始めてみたところ思った以上に実装難易度が高く、調べた中で得た知見を共有します。
バックグラウンドって何度も書くのアレなので以降**BG**とします。

また、いやいやこれでいけるんじゃないですか?みたいなコメントは大歓迎です。

## TL;DR (忙しい人用)
– 現状アプリkill状態でのBG処理のスケジューリング実装は**MethodChannel**を用いてOS毎にコードを書く必要がありそう…?(調査中)
– 調査段階の中途半端な状態で投稿すいません。
– アラームアプリ等、BG処理のスケジューリングは**茨の道**。
– 規定時刻&曜日のローカル通知は[flutter_local_notifications](https://pub.dev/packages/flutter_local_notifications)の[zonedSchedule](https://pub.dev/packages/flu

元記事を表示

【Swift】Screen(画面)・StatusBar・NavigationBar・TabBarのサイズ取得を集約

#はじめに
画面の縦横の幅やそれぞれのバーの高さを取得することが割と多く感じたのでまとめました。

#コード

“`swift
import UIKit

struct ScreenBarSizes {

// 画面の縦幅を取得する。
static func screenHeight() -> Int {

return Int(UIScreen.main.bounds.size.height)
}

// 画面の横幅を取得する。
static func screenWidth() -> Int {

return Int(UIScreen.main.bounds.size.width)
}

// ステータスバーの縦幅を取得する。
static func statusBarHeight() -> CGFloat {

return UIApplication.shared.statusBarFrame

元記事を表示

OTHERカテゴリの最新記事