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

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

【Xcode14】Storyboardを削除してコードベースで開発する

# はじめに
以前[Stroyboardを削除してコードのみで開発する方法](https://qiita.com/SNQ-2001/items/d680d8bb4a73106bdefb)の記事をあげましたが、Xcode14でやり方が変わっていたので紹介します。

# Storyboardを削除
「Main」を右クリックして「Delete」を選択
![スクリーンショット 2022-10-05 19.13.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/ff81293e-a969-7760-4735-68e3be33a287.png)
Move to Trashを選択
![スクリーンショット 2022-05-17 0.46.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1e98c549-eb4c-fb73-41c2-910082437a58.png)

|Move to Trash|

元記事を表示

Cookpad Summer Internship 2022 体験記

## はじめに
都内のスタートアップで一年ほど従事していました、学生iosエンジニアのにいまるです。

クックパッドのインターンが4ぬほど楽しかったので紹介しちゃいます
[Cookpad Summer Internship 2022](https://internship.cookpad.jp/)

## 応募したきっかけ
毎日の料理を楽しみにするという、クックパッドのサービス開発の思いや社風が好きで気になっていたからです。研究室の友人が就業型のインターンに参加をしていて、そのきっかけで自分も応募しました。

techブログでよく見かけるため技術力の高い会社という認識はあり、それなりに準備して選考に取り組みました。

## 選考
こわいので細かく言いませんが面白い技術テストと普通の面接でした〜

選考の中でも、社員さんは皆同じ志を持っていて、み

元記事を表示

Flutter Mac iOSデバッグ時にシュミレーターでキーボードを表示&入力指定

普段実機でデバッグ作業をしていると、エディタの`iOSシュミレーター`で検証をお願いされた時、テキストフォーム入力時にあれ? シュミレーター上でキーボードが出ない。。。なんてことがあります。

しばらく使っていなかったせいか、`iOSシュミレーター`のデフォルトでは`Mac本体`のキーボードが指定されているので
# command + shift + K

を同時押しすることで切り替えて出現させることを忘れていました。

![スクリーンショット 2022-10-05 12.08.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1134006/da86b0bc-4b20-4904-1a76-57974137d58b.png)
![スクリーンショット 2022-10-05 12.25.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1134006/c430471c-e269-0e5e-6b40-713c472c195

元記事を表示

【Swift】RxGestureでのスワイプ検知がまじ簡単

# はじめに
いまRxSwiftの勉強中でして、RxSwiftを使ってアプリを1個リリースするという目標を立てて頑張っています。
勉強中に出会ったRxGestureがめっちゃ便利だったので記録しておきます。

# スワイプの監視
### 上方向スワイプ
“`swift
view.rx
.swipeGesture(.up)
.when(.recognized)
.subscribe(onNext: { _ in
print(“上方向にスワイプしました”)
})
.disposed(by: disposeBag)
“`
### 下方向スワイプ
“`swift
view.rx
.swipeGesture(.down)
.when(.recognized)
.subscribe(onNext: { _ in
print(“下方向にスワイプしました”)
})
.disposed(by: disposeBag)
“`
### 右方向スワイプ
“`swift
view.rx

元記事を表示

【Coremltools】PyTorchのモデルをCoreMLに変換する際にハマりまくった話

# 背景??

CoreMLとは、iPhoneやMac上で動く機械学習ライブラリです。
このライブラリが優れているのは、端末内で機械学習を行えるだけではなく、
TensorFlowやPytorchのモデルを変換してスマホに搭載することもできるんですね。

モデルの変換にはCoremltoolsというものを使います。[公式のサイト](https://coremltools.readme.io/docs)のチュートリアルを見れば、
変換するところまでは簡単です。しかし、今回、変換させたCoreMLが正しい分類結果を出してくれずに
数日間悩んだので、解決策を載せておきます。

ハマったのは以下の点です。
– 分類における確率が「1100%」とかとんでもない値になる
– PyTorchのモデルで分類したときの結果と一致しない
– 変換できたけれどSwiftUIでエラーが出て動かない

# PyTorchのモデル → CoreMLのモデル

[公式のサイトのPyTorch conversion](https://coremltools.readme.io/docs/p

元記事を表示

【Swift】文字列を分割して配列にする

# はじめに
Pythonの`split`みたいなことをSwiftでしたいと思った時にやり方がわからなかったので記録しておきます。

# やりかた
### Pyhton
“`python
str = “1 2 3 4 5″

print(str.split(” “))

# [“1”, “2”, “3”, “4”, “5”]
“`

### Swift
“`swift
import Foundation

let str = “1 2 3 4 5″

print(str.components(separatedBy: ” “))

// [“1”, “2”, “3”, “4”, “5”]
“`

# おわり
似てるからごっちゃになる!

元記事を表示

【Swift】Dateは扱いにくい!!

# はじめに
Dateは扱いにくい!!
こんなふうに使いたい!!!
“`swift
Date(string: “2022/05/10 12:00:00”)
“`

# 実装
“`swift
extension Date {
init(string: String, format: String = “yyyy/MM/dd HH:mm:ss”) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = format
dateFormatter.locale = Locale.current
dateFormatter.timeZone = TimeZone.current
dateFormatter.calendar = Calendar(identifier: .gregorian)
guard let date = dateFormatter.date(from: string) else {

元記事を表示

【Xcode】プロジェクト名を変更する

# はじめに
あとからプロジェクト名を変更したくなることがあると思います。
プロジェクト名の変更の仕方と躓きポイントを紹介できたらと思います。

YubikiriMaster → Metronome

# やりかた

### プロジェクトをリイネームする
プロジェクト名をリネームモードにします。
![スクリーンショット 2022-10-01 20.28.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/5dc05443-e8e5-7f7e-8a77-136c55006bd7.png)
`Metronome`にリネームします。
![スクリーンショット 2022-10-01 20.37.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/5e24d1be-c266-3fe6-dd61-18d2c18d74b1.png)
「Rename」を押します。
![スクリーンショット 2022-10-0

元記事を表示

日記アプリリリースしました!

## はじめに

この度、初めてのスマホアプリである「テンプレ日記」という日記アプリをリリースしたので紹介します!

「**テンプレ日記**」で検索すると一番上に出てくるので、興味を持った方は是非インストールして見てください!

## ios版

https://apps.apple.com/jp/app/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E6%97%A5%E8%A8%98/id1638009071

## Android版

https://play.google.com/store/apps/details?id=com.hayatosato.diary

## 「テンプレ日記」の特徴

早速ですが、今回リリースした「**テンプレ日記**」の特徴を紹介します。
「**テンプレ日記**」の特徴は以下の通りです。

1. テンプレート機能付き
1. csv&text形式でのダウンロード可能
1. csvファイルによってデータ引き継ぎを行うため、ios ⇄ Android間の移行もできる!
1. 完全無料(バナー広告のみ)
1. 最低限の機能しか

元記事を表示

Firebase Firestore Flutterでの環境設定

`Firebase`のプロジェクトを作成したら、[Firebaseコンソール](https://console.firebase.google.com/?hl=ja)で`Cloud Firestore`に移動し、ワークフローに従って開始モードの選択(`テストモード`or`ロックモード`)→[ロケーションの設定](https://firebase.google.com/docs/firestore/locations?hl=ja#types)→`完了ボタン`の順に進めて頂いたら、

**1.**[FlutterとFirebaseの初期化と紐付け](https://qiita.com/ume-bar/items/fb5162b21d95e0c0bc42)
**2.プラグインのインストール**
“`
flutter pub add cloud_firestore
“`
**3.`flutter run`で再ビルド**
**4.`CocoaPods`が`1.9.1`以降にアップグレードされているか確認。**
“`
gem install cocoapods
“`
**5.**[パッケー

元記事を表示

PWA(Progressive Web Apps)とは -Qiitaをスマホで快適に見る-

## QiitaをiPhoneで快適に見たい
1. でも公式アプリってないよね?
1. とりあえずホーム画面に追加するか…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882988/7832dae2-6e7d-f6df-bda1-1b16d05adb48.png)
1. で、生成されたこれを押す。
![S__70516744.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882988/5e1e897f-ecd6-4c39-1c3a-7f789015bf0b.jpeg)
1. するとSafariで開かれず、アドレスバーも何もないネイティブアプリのような画面で表示される。
![S__70516740.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882988/e34c7afe-9f89-c31f-965b-2214c7

元記事を表示

AndroidエンジニアのためのiOSライブラリ選定シート

Qiita初投稿です!:joy:

## 目的
本ページはAndroidアプリ開発経験者がiOSアプリを開発し始める上で必ず確認したくなる~~はずの~~**Androidでいうとこのライブラリなんだけど、それのiOS版は何か**をまとめたものです。主に自分で調べた備忘録として残します。
誰かの労力の削減になれば幸いです:open_hands:

## 比較表(2022/9/30 時点)
| 役割 | Android(kotlin) | iOS(Swift) |
|:-:|:-:|:-:|
| ログ | [Timber](https://github.com/JakeWharton/timber) | [SwiftyBeaver](https://github.com/SwiftyBeaver/SwiftyBeaver) |
| HTTP クライアント | [Retrofit2](https://square.github.io/retrofit/) | [Moya](https://github.com/Moya/Moya)※1 |
| 画像読み込み | [coil](https://

元記事を表示

【Swift】guard letについて改めて復習

## guard letの利点
– 早期リターン(さっさと処理を抜けたい時に使える)

## 使い方

サンプルコード1
定数(変数)のnilチェック

“` swift
let soga = nil

guard let soga = soga else {
// nilの場合はreturn
return
}
“`

サンプルコード2
定数(変数)のnilチェック(複数版)

“` swift
let soga1 = nil
let soga2 = nil

guard let soga1 = soga1,
let soga2 = soga2, else {
// soga1がnilの場合、soga2の判定をせずにreturn
return
}
“`

サンプルコード3
定数(変数)の値の比較

“` swift
let soga1 = nil
let soga2 = nil

guard soga1 == soga2 else {
// soga1とsoga2が同じでなければreturn
return
}
“`

元記事を表示

Unity Google Sign-In iOSクラッシュ

# 環境
Unity2021.3.5
macOS 12.5 Montery
Xcode14

# 前提
Firebase Unity導入 [[firebase](https://firebase.google.com/download/unity?hl=ja)]、
googlesamples/google-signin-unity [[github](https://github.com/googlesamples/google-signin-unity/releases)]導入、
cocoapods導入、
pod対応 [[github](https://github.com/googlesamples/google-signin-unity/pull/126)] (ビルド出来ないとか v4だとUIWebView使ってるのでv5に変更とか)
Firebaseコンソールでの Authentication設定 [[console](https://console.firebase.google.com/)]
全て済んでいて ビルドして 一応Google認証が出来ている前提です。

# 問題

元記事を表示

【SwiftUI】アクセシビリティ設定によってフォントサイズが変わってしまう

# はじめに
iPhoneの設定にアクセシビリティはとても優れており、様々な設定が存在します。
今回はそんなアクセシビリティに関する落とし穴について紹介できたらと思います。

# 問題点
このようなUIのアプリがあったとします。
![スクリーンショット 2022-09-29 18.19.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/410396f6-40a7-45ca-7cbe-39cc12484d66.png)

現在は信号の表示であることが容易にわかります。
しかし、アクセシビリティで文字の大きさを大きくしていた場合はどうなるでしょうか。

このような表示になってしまいます。
これでは信号であるという事がユーザーに伝わりません。
![スクリーンショット 2022-09-29 18.20.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/80475eba-5ee8-0ae4-34

元記事を表示

SwiftUIにて画面の向きを固定、また画面回転の許可をコードにて制御する方法

## 画面を固定するのか、回転させるのか?

– 回転する画面に対応するのか?
– それとも画面は固定にするのか?

Xcodeの設定で画面を固定したりする記事はよく見かけるのですが、画面ごとに設定を変更したい時はコードで設定する必要がありましたので、コードで制御しました。

>ちなみに、どういう仕様だったかというと、普段の画面は縦型固定にして、Web表示する時だけ回転可能にしました。

:::note
UIKitだと記事が多いのですが、SwiftUIだと少ない気がしたので自分の備忘録的に書きました。
:::

## 開発環境
– Xcode:Version14.0
– Swift:Swift5
– 対応OS:iOS15.6

## まずAppDelegateにapplicationデリゲートを用意する

この時回転を許可するかどうかも最初に決めておきます。

“`swift:sampleApp.swift

class AppDelegate: NSObject, UIApplicationDelegate {
// 回転可能か設定する。外部から変更できるよう静的

元記事を表示

UICollectionViewの行セル、ヘッダー、フッター、またはUITableView内でSwiftUIビューを使用(iOS 16, UIHostingConfiguration)

iOS 16では、UIKitのコレクションビュー(UICollectionView)やテーブルビュー(UITableView)の中で、行セル(cell)、ヘッダー、フッターにSwiftUIビューを使用することができます。

![swiftui-collectionview-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/635330/2cc3d42b-6860-58c0-4076-1ea736b88f5e.png)

これは新しい `UIHostingConfiguration` を使用することで実現できます。

この記事では、UICollectionViewの行コンテンツ、ヘッダービュー、フッタービューとして、
またUITableViewの行コンテンツとしてSwiftUIビューを使うことについて説明します。

# `UICollectionView` と `UITableView` の違い

`UITableView` が簡単にテーブルを表示できるのに対し、 `UICollectionView` は

元記事を表示

ブラウザーだけで使えるインストール不要の完全無料オンラインPDFツール、Windows/Mac/Linux/iOS/Android対応

最近、リモートワークやペーパーレス化の拡大につれて、デジタル文書の形式であるPDFがますます重要な役割を果たしています。デスクワークが仕事の方々は誰でもPDFに関する知識やツールの使い方を学ばなければなりませんが、ほとんどのPDFソフトは高価で、無料のものは制限が多く、なかなか大変です。昔使っていたsmallpdfさんはなぜかいろいろ制限が増えて、使いづらくなりましたから、代替のものをずいぶん検索しました。それでは、見つかったOSを問わず、インストール不要、広告なしのクラウドベースのフリーオンラインPDFツールサイトである「LightPDF」を紹介します。

# LightPDFオンラインPDFツール

使用するには、お使いのデバイスのブラウザーでLightPDFのPDFツールサイト(https://lightpdf.com/jp/tools) にアクセスすれば、下記の画像のようなPDFツールの画面が表示されます。中から使いたいものを選べばいいです。
![lightpdf-online-tools-interface.jpg](https://qiita-image-store.s3.

元記事を表示

UIActionを使ってUINavigationItemの右にボタンを追加する例

iOS 14からのUIActionを使ってUIViewControllerのUINavigationItemの右にボタンを追加する短い例。

# とにかくボタンを置いてアクションを記述するだけの例

“`swift
import UIKit

class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

navigationItem.rightBarButtonItem = .init(
title: “ボタン名”,
image: nil,
primaryAction: .init { _ in
print(“タップされた”)
},
menu: nil
)
}
“`

なんとなく覚えててググると、ぐちゃっと説明を読まされるが自分はこれで思い出せる。さ

元記事を表示

StoreKit 2 でのアプリ内課金の基本

# 概要
StoreKit 2 でのアプリ内課金の基本をローカルで動くコードと共にまとめます。
勉強した順にまとめているので分かりにくいかもしれません。

OTHERカテゴリの最新記事