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

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

WindowsとMacのショートカットキー対応表

#執筆の動機
今後、学んだことをQiitaでアウトプットしていきたい。
しかし記事を作成した経験が無く、まずは投稿してみたかった。
そんな中、人生で初めてMacを購入しました。
Ctrlキーが無かったり、入力方式(かな、半角英数)を切り替える方法が分からなかったりと操作感が異なり興奮の連続です。新しいことを学ぶのって楽しいですよね。
Qiita初投稿には良い題材ではないかと考え、私がWindowsでよく使用するショートカットキーをMacではどのように使用するのか調べてまとめることにしました。

#ショートカットキー対応表
|操作|Windows |Mac |
|:—–|:———-|:———-|
|テキストをコピー |Ctrl + C |command + C |
|コピーしたテキストを貼り付け|Ctrl + V|command + V|
|テキストを切り取り|Ctrl + X|command + X|
|操作を戻す|Ctrl + Z|command + Z|
|操作を戻すを取り消し|Ctrl + Y|command +

元記事を表示

U-2Netをつかう。

![u2netqual.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/44a7eb2d-8202-89b5-6ae4-85bdef08b244.png)

画像内の顕著なオブジェクトをセグメントしてくれるモデル。

#手順

#####1、[U2-NetのGitHubリポジトリ](https://github.com/NathanUA/U-2-Net)をクローン

“`shell

git clone https://github.com/NathanUA/U-2-Net.git
cd U-2-Net/
“`

#####2、事前学習済みモデルを[リポジトリのリンク](https://drive.google.com/file/d/1rbSTGKAE-MTxBYHd-51l2hMOQPT_7EPy/view)からダウンロードし、指定のディレクトリに配置

“`shell

mkdir saved_models/u2netp/
“`

#####3、とりあえずPythonで試してみる

元記事を表示

PytorchモデルをONNX経由でCoreMLモデルに変換する(あえてね)

CoreMLTools4.0からPytorchモデルを直接(Traced_Model経由で)変換できるようになりました。
旧式のONNX経由で変換するやりかたは非推奨になったのだけど、とはいえ「直接変換はできない」かつ「旧式ONNX方式だと変換できた」ケースもあったので、書いておくです?

1.PyTorchモデルをONNXにエクスポート

“`python

x = torch.randn(1, 3, 224, 224, requires_grad=True).cuda() #ダミーインプット(batch_size,color_channel,width,height) モデルがCuda使ってるなら、.cuda()

torch.onnx.export(torch_model, # モデル
x, # ダミーインプット
“torch_model.onnx”, # 保存パス
export_params=True, # モデルの重みも保存するか

元記事を表示

【SwiftUI】Firebaseからデータを読み取り、ListViewのRowを更新する

# はじめに
SwiftUIでFirebaseからデータを読み取り、これまで作成したカード内容を更新することを目的とする。

前回までの記事は以下を参考ください。

**参考記事**
[【SwiftUi】TabViewとListの実装とViewのフォルダ管理](https://qiita.com/m37335/items/00e08d9c34b17a3a38b7)

# 開発環境
OSX 10.15.7 (Catalina)
Xcode 12.2.0
CocoaPods 1.10.0

# Firestoreへのドキュメントの追加
FirebaseのFirestoreデータベースは以下のように設定しました。
今回は書き込みの機能は設定していないため、直接入力しています。
今後はユーザーが投稿できるよう機能を実装します。
![Haiku_-_Cloud_Firestore_-_Firebase_コンソール.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/867981/b99df523-fe93-1b82-

元記事を表示

UE4でIOS/Android用のアイコン画像を爆速で入れる

#UE4でIOS/Android用アイコンを爆速で入れよう

>https://qiita.com/Chi__no_/items/f7d9f8e943d0da0b5f80
この記事は↑の画像作成スクリプトを実行している事が前提です。

UE4は一つ一つの画像を選択する度にプロジェクトルートから辿らないと行けないから面倒くさい。。。
そんな問題を一気に解決しちゃおうって話!

一番上の記事の内容を実行するとこんな画像ファイル達が出来ると思う。
![スクリーンショット 2020-11-22 220132.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500172/326b7275-6811-4cf4-3ab9-692752875ff2.png)

#Engineのデフォルトに設定する。

そしたらEngineのPathに行く。

Androidでは色々ファイルが分かれているから各自でやって欲しい。
参考Directory→C:\Program Files\Unreal

モバイルアプリのアイコン画像用意するの面倒くさくない?自動化しちゃおう!

##PhotoShopでいちいち何十回も解像度を変える作業めんどくさ・・・

####AndroidとiPhone合わせるとこのくらいの画像が必要になる。

![b1d2c8bfdad903f18ac9aa668706984e.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500172/cf87672e-ac78-75c8-2094-ef74eb5b0d95.png)

しかもiPhoneの画像は20@2xみたいな語尾を付けているからややこしい。

だからPhotoshopのスクリプトで自動化してしまおう

###まず出力したいPSDのレイヤーは全てスマートオブジェクトにして下さい。←これ重要
これを忘れると出力された画像がボケるから気をつけて!
レイヤーを右クリック→スマートオブジェクトに変換
![Inked4ec9e66d5b55a3bcdc164078007e697a_LI.jpg](https://qiita-image-store.s3.ap-

Develop in Swift Data CollectionsでiOS開発を学ぶ (2): Lesson 1.3からLesson1.4

https://qiita.com/mk2/items/6091f8eb195fa3237c4e の続き

### Lesson 1.3: Model-View-Controller

iOS/Mac開発といえば、MVCだと個人的には思っています。(SwiftUIの登場で考え方も変わるのかもしれませんが…)

`View Controller`、`Model Controller`はなんとなく知っていたのですが、`Helper Controller`という考え方があるのは知りませんでした。ただ、この説明を見る限り、ユーティリティ的な感じがしますね。

>“Helper Controllers
Helper controllers are useful anytime you want to consolidate related data or functionality so that it can be accessed by other objects in your app. One common example of a helper controller is a Netw

[macOS/iOS] Autolayout覚書

# はじめに
本文書では, macOS/iOSのソフトウェアのautolayout処理に関して、気づいた点/注意すべき点についてまとめます。おそらく目新しい内容はなく、よしなし事を順不同で記載します。

## Autolayout処理
### サイズ変更
* Viewのサイズ変更は、[setFrameSize](https://developer.apple.com/documentation/appkit/nsview/1483530-setframesize)で行われる

### 優先順位

[NSLayoutConstraint.Priorityで定義される定数の値とその意味](https://developer.apple.com/documentation/appkit/nslayoutpriority?language=objc)です(macOS 10.15)。説明はマニュアルのgoogle翻訳です。

|名前 |即値 |説明 |
|:– |:– |:– |
|requ

構造体について【Swift】

# 構造体とは?
* 変数、定数、関数を1つのグループとしてまとめる仕組み。
* 構造体の中で作られた変数・定数を __プロパティ__ 、関数を __メソッド__ という。
* 構造体の中で作られた変数・定数を初期化することを __イニシャライズ__ という。
* 構造体を利用するにはインスタンス化が必要。
* データ型は全て構造体である。( `Int`、 `Float`、 `Double`、 `String`、 `Bool` )

# 実装例
“`Swift
struct Human {
// プロパティを定義
let name: String
let age: Int

// initを使用することでイニシャライザ定義
init(name: String, age: Int) {
self.name = name
self.age = age
}

func introduction() {
print(“私の名前は\(name)です。年齢は\(age)歳で

[iOS/Swift]Alamofire を利用したアプリ実装(郵便番号検索アプリを例に)

### 書くこと
Alamofire を利用した API 呼び出しを利用してアプリを実装する

### 書いた理由
Alamofire を利用した API 呼び出し方法を忘れた時に確認する

### 参考にした記事
[標準とAlamofireでAPIコール処理を書き比べてみる(Swift)](https://qiita.com/uhooi/items/c0e083f916dc516175bd)

上記記事に紹介されていたコードに、UIを実装した
(すごくわかりやすい記事です)

### 前提条件
1. テキストフィールド、ボタンおよび検索結果を表示するラベルは `Main.storyboard` で設定
2. 上記要素は、`ViewController.swift` に紐づけている
3. `CocoaPods` を利用して `Alamofire` はすでに導入済である

### アプリの機能
テキストフィールドに郵便番号を入力し[Seach]ボタンをタップすると、ラベル(水色)にその郵便番号に対応する住所を表示する。

同期、非同期処理について

#同期処理と非同期処理の基本

####同期処理とは
あるタスクを順番に実行する方式で、そのタスクが実行されている間は他のタスクが中断される
####非同期処理とは
ある処理を実行する間に他の処理を実行できる

####DispatchQueueとは
GCD(Grand Central Dispatch)の一部
DispatchQueueないにタスクを詰めると非同期で実行してくれる

DispatchQueue自体には、
Serial、Concurrent、mainの3種類がある。

####DispatchQueue.main

OS側で作成済みなので呼び出すだけ。
1つだけ存在。
直列処理タイプ。
UI表示系タスクはここで行わないと動かない。

“`viewController.swift
let mainQueue = DispatchQueue.main
“`

####DispatchQueue.Global
OS側で作成済みなので呼び出すだけ。
5つ存在。(ただし、実質使えるのは4つ)
並列処理タイプ。
用途を指定して呼出し。

“`viewController.

キーボードタイプの種類とコード

##はじめに
キーボードタイプの書き方や種類一旦ここにまとめようかなと思います。

##定義
UIKeyboardTypeの定義をJump to Definition(コマンドキーを押しながら調べたいところをクリック)で調べてみました。
以下の通りです。

“`swift
public enum UIKeyboardType : Int {

case `default` = 0 // Default type for the current input method.

case asciiCapable = 1 // Displays a keyboard which can enter ASCII characters

case numbersAndPunctuation = 2 // Numbers and assorted punctuation.

case URL = 3 // A type optimized for URL entry (shows . / .com prominently).

case numb

Develop in Swift Data CollectionsでiOS開発を学ぶ (1): Lesson 1.2まで

※(1)とついてますが続くかは不明

# Develop in Swift Data Collectionsとは

Appleが高校生や大学生向けに出している学習用教材に含まれる、勉強用のドキュメントです。

https://www.apple.com/tr/education/docs/develop-in-swift-curriculum-guide.pdf

![スクリーンショット 2020-11-21 12.35.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/213719/059d3c3b-c0fb-31f7-934e-9fd6022ee4aa.png)

学生向け学習用カリキュラムがあり、そのカリキュラムの最終段階で学ぶ内容のようです。難しそうですが、まぁ現役のプログラマーならいけるでしょう(多分)。

この本を見つつ、iOS開発について学んでいく、という記事になります。基本は本を読んで、僕の記事はあくまで参考程度に見てもらえると良いと思います。

本自体はApple Booksから無料

Xcode, Pods ProjectName.debug.xcconfig unable to open file.に対する対応方法

#はじめに
Githubからcloneしたプロジェクトの実行を試みた際に` ProjectName.debug.xcconfig unable to open file`というエラーに遭遇したため備忘録をかねて記録として残したいと思います。

以下のようにしていただければ解決できるかと存じます。

“`swift:solved
pod deintegrate
pod install
“`

今回参考にした記事です。
より詳細に記載がりますので、よろしければご参照ください。
https://stackoverflow.com/questions/55558984/xcode-pods-projectname-debug-xcconfig-unable-to-open-file-wrong-directory

ご参考になれば幸いです。

iOSアプリでOSで提供する機能のUI言語の切り替え

OSで提供する機能を呼び出す際にデフォルトのプロジェクト設定ではUIが英語表示になる。
日本語で表示させるためにはプロジェクトの設定からLocalizationにJapaneseを追加する。

![スクリーンショット 2020-11-21 17.43.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104863/7f7807bc-fadf-0b96-c964-923759daca4d.png)

【SwiftUI】TabViewとListの実装とViewのフォルダ管理

# はじめに
SwiftUIでTabViewを作成し、それぞれのTabItemごとにViewを作る。
HomeViewにはListを表示し、前回作成したカード型のRowを呼び出すことを目的とする。

UIのデザインはcakesのnote風のデザインを参考にViewを作ります。

今後は今回作成したカードに前回までに実装した地図と都道府県市町村名を表示できるようにし、Firebaseで更新できるようにすることが目的です。
前回までの記事は以下を参考ください。

**参考記事**
[【SwiftUi】経過時間の表示とListViewのセルデザイン](https://qiita.com/m37335/items/93c9bcbede1c8ac64bb6)

# 開発環境
OSX 10.15.7 (Catalina)
Xcode 12.2.0
CocoaPods 1.10.0

# TabViewの作成とフォルダ管理
![TabBarView_swift.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/8679

Xamarin.FormsにてiOSのビルドエラー。画像がFile not foundとされる問題

以下の問題が発生していましたが解決したので記録しておきます。
同じような問題を抱える開発者もいると思うので参考になれば幸いです。

# 問題
以下のビルドエラーがでる

> File not found: ~/Library/Caches/Xamarin/mtbs/builds/~/AppIcon.appiconset/[画像ファイル名].png

# 前提
* Microsoft Visual Studio 2019 を使用
* iOS ビルド時にエラー
* Macbookの容量がないなどの理由でLibrary/Caches/内の削除など行った
* AppIcons.appiconsetで設定している

# 原因
iOSのプロジェクトファイルにすでに使用されていないAssetの参照先が残っていた。
Macbook内のLibrary/Cachesフォルダ内に対象のファイルが存在しないためエラーを起こしていた。

# 解決策
iOSのプロジェクトファイルにすでに使用されていないAssetの参照先を削除する。

“`xml:ProjectName.iOS.csproj

[iOS・Swift] iPhoneからjsonデータを取得する方法

## はじめに

Swiftでjsonファイルを取り出す過程で詰まるポイントがありましたので、共有したいと思います。

## ①jsonファイルを作成するまで

Export Json Fileというボタンを押して、jsonファイルを吐き出すようにしました。
※Simulatorではなく、実機で動かしています

## ②jsonファイルをXcodeからダウンロードする

Devices and Simulatorsから作成したアプリケーションを選択します。
プログラミング超初心者がFlutterの環境構築をしてみた

やったこと
KBOYさんのYouTubeを見ながら、Flutterの環境構築をしました。

1、Flutterのインストール
2、Flutterのパスを通す

2からすでに、苦戦するという「マジか」と思いつつなんとかできました。

.bash_profile にパスを記載しようとしたのですが、
最近のPCは bash ではなく 

.zshrc っていうのが最近の新しいパス設定の場所らしい

参考にした動画

[Swift5]storyboardとコードでNavigationBarをカスタムする方法

## なぜstoryboardだけでやらない?
Swiftで開発を進める際に、storyboardでUIを構築するか、コードのみでUIを構築するか初学者の方は悩まれるのでは?と私は思います。

storyboardのみで開発しても良いのですが、コードでカスタムした方が作業工数を減らせることや、デザインの変更などが必要な場合に、コードの方が編集しやすい点などからコードでカスタムを行います。しかし、コードのみだと画面遷移などが直感的に理解しずらいので、今回は最低限をstoryboardで構築し、カスタム内容はコードで記述します。

その他にも、storyboardのみで構築するとコンフリクトが発生しやすい問題や、コードのみで構築するとコードの記述量が多くなるなど双方にメリット,デメリットが存在します。

## storyboardでNavigartionControllerの実装
まずstoryboardでNavigationBarを用意します。

①storyboardのiPhoneを選択(下記画像中央)
![image.png](https://qiita-image-store.s3