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

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

[React Native] MacでReactNativeプロジェクトの環境設定 (iOS&Android)

# はじめに
アプリを開発するために必ずSwiftやKotlinを学ぶ必要はありません。Dart言語のFlutterフレームワークもあるし、JS基盤のReact Native(今から略でRNで書きます。)フレームワークでもiOSやAndroidのアプリ開発ができます。

それで、今回の記事はMacでRNプロジェクトの環境を構成する方法についてお話しします。

# Mac(OSX)でiOS開発の環境設定
Mac環境でXcodeを使用してiOSアプリをビルドする方法を説明します。

## パッケージ設置

### Homebrew 設置

“`
#設置しているか確認
$ brew –version
– zsh: command not found: brew
$ /usr/bin/ruby -e “$(curl -fsSL

# 設置コマンド実行
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”

#設置完了確認
$ brew –vers

元記事を表示

ViewModelのPublishedな値をViewでBinding<型>で扱う方法

## はじめに
“`ViewModel.swift
class ViewModel: NSObject, ObservableObject {
@Published var isShowAlert: Bool = false

/// 省略 ///
}
“`

“`ContentView.swift
struct ContentView: View {
@ObservedObject var viewModel = ViewModel()

var body: some View {
Button(action: {
/// 省略 ///
}) {
/// 省略 ///
}
.alert(isPresented: Binding) {
Alert(title: Text(“確認”),
message: Text(“これはテストです”),

元記事を表示

iOS の widget を設定可能にする

## 概要

iOS 14 からホーム画面に widget が置けるようになりました。widget には設定可能なものとそうでないものの2種類があります。

設定可能なものの例として Apple の天気 widget があります。天気 widget を長押しして出てくる「ウィジェットを編集」をタップすると編集画面が開き、天気を表示する場所を設定することができます。天気の widget を追加する上ではどの場所の天気を見たいのかをユーザが決めたいでしょうから、この項目が指定可能になっているのは自然に思えます。

設定可能でないものの例としては Apple のマップ widget があります。こちらは widget を長押ししても「ウィジェットを編集」という項目が出てきません。これは、マップ widget では天気と異なりユーザがなにかを設定する余地がないように設計されているからでしょう。

widget を自作する上では、作りたい widget の性質を鑑みて widget を設定可能にするかどうか決める必要があります。この記事では、widget を設定可能にする方法をまとめます。まず設

元記事を表示

iOS用の機械学習ライブラリをつくる

#機械学習モデルを搭載したライブラリをつくる方法

![christmas-6873868_640.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/6634f1b7-cc30-efe3-0de3-cd208b9cc0ca.jpeg)

機械学習の機能をライブラリに盛り込めます。

#機械学習モデルをライブラリでも使いたい

画像認識、物体検出、セグメンテーション、音声認識、文字認識、画像生成、超解像、深度推定、画像復元など、
機械学習モデルには様々な便利なものがあります。
それらのパワーをライブラリにも搭載したい。

iOSプロジェクトで機械学習モデルを使うときは、CoreMLModelをプロジェクトに搭載しますが、SwiftPackageManagerに対応したライブラリでは直接mlmodelの拡張子のファイルを積み込めない。
といって、ユーザーに別でmlmodelだけダウンロードしてもらってプロジェクトにコピーしてもらうのは手間。
なんとかモデルごとパッケージに組み込めないか。。。

元記事を表示

React Nativeアプリケーション開発にNoSQL組み込みデータベースCouchbase Liteを使ってみる

## はじめに

先日、下記の記事を発表しました。

https://qiita.com/yoshiyuki_kono/items/bffda8fba33839a3e9aa#couchbase-lite

そこで、Couchbase Liteについて、下記のように書きました。

>…チュートリアルが公開されています。提供されているReact NativeのUI実装(スタータープロジェクト)に対して、Couchbase Liteを利用するためのコードを追加していく形になっています。2018年時点のものにて、提供されているReact Nativeのソースコードは、すでに時代遅れなものとなっていますが、提供されているUI実装は無視しても(React Nativeを昔から使っている人は、提供物をベースに最新化してもよいかもしれませんが )、チュートリアルの内容を参考にして実装を行うことができるでしょう(将来別の記事で発表したいと思っています)。

本稿では、「Couchbase Liteを利用するためのコードを追加していく」部分について、見ていきたいと思います。

ここでは、提供されている

元記事を表示

あなたと私の見ている色は同じだろうか?

あすけんの [@sato-shin](https://twitter.com/sankakuButton) です。
哲学的なタイトルですが「カラープロファイルには気をつけようぜ」というお話です。

## はじめに
印刷した画像と、ディスプレイでみた画像を比較して「なんか違う」と思ったことはないでしょうか?
これは表現できる色域の違いから来ています。

色域?カラープロファイル?と思った人のためにざっくり説明を書いておきます。
正確な表現ではないですが、大体合っているはず。

* 色域:表現できる色の範囲
* 印刷物の場合は、プリンターやインク・トナーの性能に依存する
* ディスプレイの場合は、ディスプレイの性能に依存する
* カラープロファイル:表現物(印刷物やディスプレイ)によって、色が異ならないように補正する設定・仕組み

実際に体感して見てみましょう。

## 右と左の色は同じですか?

**ブラウザによっては補正がかかるので、画像をクリック・タップして、生画像を見てください。**
![スクリーンショット 2021-12-23 0.25.34.png](https

元記事を表示

iOSアプリ名のローカライズ対応(Xcode13,1)

## 方法
#### 1. 追加したい言語を追加する
プロジェクト設定から、「Info」→「Localizations」→ 「+ボタン」を押下。
追加したい言語(Japanese)を選択する。
![スクリーンショット 2021-12-22 22.11.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/667331/b1d8e99e-0900-a59a-b4c0-db87e8084bfb.png)
#### 2. ローカライズ用のファイルを作成する
「New File…」より「Strings File」を選択。
「InfoPlist.strings」という名前でファイルを新規作成。
![スクリーンショット 2021-12-22 22.12.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/667331/79070f50-2ee0-c615-8f5c-28d70c89c194.png)
#### 3. 対応する言語を

元記事を表示

社内の複数のiOSアプリの証明書をどう管理するのか

# はじめに

この記事は[株式会社Diverse Advent Calendar2021](https://qiita.com/advent-calendar/2021/diverse) 22日目の記事です。

直近、社内で扱っている複数のiOSアプリの証明書の管理方法を整えたのでその内容を共有しようと思います。

弊社ではプロダクトごとにチームが別れており、それぞれのチームのエンジニアが手動で証明書の更新などの対応をしていました。

そのため証明書の管理が属人化してしまい、管理者が特定の人に偏っていました。
また新しくジョインしたメンバーは誰がどのように証明書を管理しているのか分かりづらい状況でもありました。

この課題を解決するために導入したのが [fastlane match](https://docs.fastlane.tools/actions/match/) です。

※この記事ではfastlaneの詳しい使い方については触れません。
詳細については公式ドキュメントと以下の記事をご覧ください。
・[公式ドキュメント](https://docs.fastlane.tools

元記事を表示

顔だけ、体だけを切り抜きたいなら、SemanticImage

#写真から顔や体を自動で切り抜く

自動認識して切り抜く方法です。
iOSで使えます。


【SpriteKit】チワワがB’zからのXmasプレゼントを貰うだけのクソゲーRPGを作ってみよう!

##これを作ります

##はじめに
どうも!反町隆史顔真似芸人

元記事を表示

CarPlayについて簡単にまとめてみました

こんにちわ。iOSアプリ開発をしている[@haseken_dev](https://twitter.com/haseken_dev)です。
[iOS Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ios)の22日目を担当させていただきました。

今回はCarPlayについてちょっと簡単にまとめてみようと思います。
既に知っていることも多々あるかとは思いますが、読んでもらえたら幸いです。

# 1. はじめに
この記事は、Appleが提供するCarPlayについてかんたんにですがまとめてみました。
自分でもCarPlayを実際にドライバーとして利用していたりしますが、これまでどのような流れでCarPlayが発表されて来たのか、またアップデートはどのようなものがあったのかをまとめたことがなかったので、
良い機会だとも思い、まとめてみることにしました。

# 2. イメージする対象の方
本記事の対象者は下記のような方をイメージしています。

– CarPlayって聞いたことあるけど、実際に何ができるのかいまいちわから

元記事を表示

GlobalActorとTaskを使う際の実行スレッドがメインスレッドなのかを速攻で思い出すためのサンプルコード

## はじめに

みなさーん、ActorとTask使ってますかー?
 (ΩΩΩ<使ってまーす!!) MainActorとかGlobalActor使ってる時にー、Taskの実行スレッドわけわからんくなりますよねー? (Ω<ない気がするけどなあ。 Ω<あるようなないような。 Ω<それはないでーす!) はい。みなさんわけわからなくなってますねー、ということで今日はGlobalActorとTask使ってる時にTaskの実行スレッドが想定通りかわからなくなったときに、すぐにそれが整理できるコード例を示したいと思います。 ## 概要 コード例で示すことの概要 - 型自体に対するActor isolated指定は型のメソッドに引き継がれる(他にはプロパティにも) - しかしメソッドに別のActor isolatedが指定してあれば指定した別のActor isolatedを優先する - 優先度は `型への指定 < メソッドへの指定` - nonisolated指定されてると引き継がない - TaskクロージャのActor指定はそれが一番優先される -

元記事を表示

iOS 15にアップデート後いくつかのアプリで通知が来なくなった際の対応

##通知が来なくなったアプリ
– +メッセージ
– LINE

###症状
– メッセージが送られているにもかかわらず通知されない
– アプリを起動した時点でメッセージを読み込む

###実施したこと
1. 再起動
1. アプリ退避と再ロード
1. ツールによるリカバリーモード移行と復帰
1. ファームウェアマイナーバージョンアップ
1. アプリ完全削除と再インストール

###結果
上記、5番目で回復

元記事を表示

SwiftUI in UIKit!!!

# A Powerful Declarative layout framework for UIKit written in Swift

If you are interesting in SwiftUI but using UIKit in your project, Puyopuyo is the best choice for you to layout your view in SwiftUI way. Feel free to try it.

## Introduce
Youtube: https://youtu.be/3MOBCtIfRFA
Telegram: https://t.me/swift_puyopuyo

https://github.com/scubers/puyopuyo

元記事を表示

Warning: unable to build chain to self-signed root for signer “XXX” のビルドエラーで実機ビルドできない場合の対処法

# 事象|エラー内容

以下のようなエラーが出て実機ビルドができない場合の対処法についてです。
**結論として対症療法までしかわかっていないので、根本解決方法をご存知の方がいらっしゃったらコメントいただけると嬉しいです。**

`Command CodeSign failed with a nonzero exit code`
※このエラーはコード署名に関するもので、さまざまな原因で表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113553/ebe5db01-dd1a-896c-6140-7bb6f851d80b.png)

さらにビルドログを確認すると、`Warning: unable to build chain to self-signed root for signer “XXX”`と記載されており、コード署名がトラストチェーンを構築できていないことがわかります。
![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

人物画像の背景を1行のコードで差し替えるなら、SemanticImageで

#画像にバーチャル背景をつける方法

Swiftで人物の背景を別の画像にかえます。

#簡単に画像合成したい

人物画像の背景を差し替えるには、下記のステップがあるけど、一発で合成したい。

>1、人物をきれいに切り抜く
2、背景画像のサイズと位置を調整する
3、合成する

#SemanticImageならあっという間

[**SemanticImage**](https://github.com/john-rocky/SemanticImage)というライブラリを使えば、1行のコードで差し替えられる。

https://github.com/john-rocky/SemanticImage

[個人開発アプリをグロースさせるためにやっていること

#初めに

– 10月に個人開発した、[セットリー](https://apps.apple.com/us/app/settly-%E3%82%BB%E3%83%83%E3%83%88%E3%83%AA%E3%83%BC/id1585803361)というアプリをリリースした。
– このアプリはポートフォリオというつもりではなく、実際に便利に使ってもらえるはずという仮説のもと開発しており、リリース後の現在ではどうしたら多く使ってもらえるかを試行錯誤している。
– この記事ではそのために現在進行形でどのようなことを行っているかを紹介する。
– 同じ様にリリース直後のアプリのグロースを考える人の参考になれば幸いだし、コメントでアドバイスを頂けたらとても嬉しい。

![Twitter.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/268579/09058abf-24b3-fcd2-5c8c-53aab334f9c0.png)

– セットリーはセトリ(セットリスト)と呼ばれる、ライブで演奏した曲の曲名一覧をもとに

元記事を表示

【Swift】安全にアンラップするために 〜!(強制アンラップ)とif letとguard letと??(Nil coalescing operator)の使い分け〜

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

株式会社レコチョクで、iOSアプリの開発をしている新卒1年目の後藤です。
米津玄師・スキマスイッチ・BUMP OF CHICKENのみなさんに、日々活力を頂いております。

Swiftにはオプショナル型という`nil`を許容した型があります。これを非オプショナル型の値として取り出すためには、アンラップという作業が必要です。

この記事では

– !(強制アンラップ)
– if let
– guard let
– ??(Nil coalescing operator)

を使ってどのようにアンラップするか、どう使い分けるかを中心にまとめます。

## 2. オプショナル型とは
Swiftでは通常のデータ型(Int型やString型など)には、`nil`を代入することができません。
そこで、オプショナル型を使うと変数に`nil`を代入することができるようになります。

`

元記事を表示

【SwiftUI】NavigationBar に表示された Scrollable な Tab と コンテンツのページングが連動するサンプル実装

## はじめに

SwiftUI での開発できてますか?
私は業務ではまだまだ触れていないです?
なので個人開発のアプリで取り入れてみたり,
このデザインいいなって思った画面を実際に作ってみたり,
的な感じで空き時間見つけて少しずつ触っています。
iOS 14 以上だとある程度ストレスなく(マジ?)開発できるようになりましたね。

今回は,最近サンプル実装したものをネタに書いてみようと思います。
難しい実装はないので気楽に見ていただけたら幸いです。

## 今回作るもの

### 実装イメージ

`NavigationBar` に表示された Tab と
コンテンツのページングが連動するサンプルアプリを作ります。
Tab 部分はスクロール可能になっていて,
コンテンツ部分のページングにより対応する Tab が
画面中央にアニメーションありで移動して表示されます。
GIF アニメだとこんな感じです。

|ページ追加・ページング|Tab 側の選択|
|:–:|:–:|
|![SwipePageChanger_1](https://user-images.githubusercontent

元記事を表示

サイトのメタ情報を教えてくれる Safari Extension (機能拡張) の作り方

![IMG_0055.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/48027/283ce576-b5d1-13db-0881-f1b7984124b7.png)

2021年9月にリリースされたiOS 15から、**Safari Extensions**が導入されました。
このアップデートによってiPhoneやiPadのSafariに、よりブラウジングを快適にするための機能拡張を追加できるようになりました。

Safari ExtensionsはHTML, CSS, JavaScriptなどの技術で実装を行うため、Webエンジニアにとって開発がしやすいものとなっています。
これはiOS開発に明るくないWebエンジニアでもApp Storeにアプリケーションを配信するチャンスが広がったと言えるのではないでしょうか。

私自身もSwift, Obj-Cを書いたことはおろか、Xcodeも数える程度しか触れたことがありませんでしたが、iOS 15が配信されてからSafari Extensionを実装し、App

元記事を表示

OTHERカテゴリの最新記事